我的工作是做一台檢驗XXX的自動化機械 老闆是說我只負責Embedded System就好了 也就是整台機械的每個小小控制器 其實那還蠻ok的 反正不過就是Timer/IO/UART/I2C 只是問題才沒這樣子單純 這14顆MCU中 有一顆叫MASTER的 要負責整個流程的安排和控制 就是說PC只要下指令說"BAR CODE SCAN" Master就要去叫某幾顆MCU 轉轉馬達 掃描BarCode 或是比較麻煩的"Get Sample and Test" 那就有10顆以上的MCU要被控制 好啦 問題來了 我的腦袋大部分的時間都是在搞每一顆MCU的Programming 忽然要轉到控制每顆MCU 就好像本來只寫自己的Program 忽然要管14個人的Team的 Manager 一樣 完全轉不過來 之前已經發生過一次 上次是寫好10顆後 老闆忽然要我做整合 結果完全不知道該如何開始.... 停擺2天 這一次14顆幾乎都好了 又要來個大整合 一樣...完全看不懂之前的Code...不是真的看不懂 而是無法思考.....MCU context switching 一般就是把MCU的主要Register Save起來 約100cycle應該就作的完了 不知道人腦在作Context Switching時 要存哪耶東西後 才能開始新的思考.
Human brain are not designed to do significant multitasking. I will start making mistakes when juggling more than 3 important tasks at once. The only thing we know how to handle multiple processing is through priority. Router and switches have to handled tones of packets from each of it's ports. Usually the packets are classified upon entering the system. The lower priority packets are put in a queue and let the higher priority tasks to be executed real time. I think you might be able to break the tasks in to sub-tasklets and classify it before execution. It might be more flexible than classic interrupt management. Just a thought.
Posted by: Fred | September 06, 2010 at 10:36 AM