Re: [問題] 8051 verilog source code
※ 引述《showyoulovex (zombie)》之銘言:
: 因為計畫需求
: 需要8051當作cpu
: 找了一陣子的source code
: 只找到一些可以下載,可是前提示必須要上傳自己的code
: 想問大家還有其他地方找的到verilog code嗎?
: 另外,很可能要boot os上去
: 有搜過相關資訊可以boot uclinux ucos
: po OS上去負擔會很大嗎?
假如你只要接一個device, 而且device是
"CPU送個start啟動device, 而device處理完回個done給CPU"
這種簡單handshake的話不透過OS直接控制會比較好做
用下面這種家電系統常見的無限迴圈就可以了
main() {
while (1) {
start_device();
while (device_not_done);
collect_data();
}
}
這種情況甚至可以不用CPU, 直接用Verilog寫個FSM都辦得到
假如你要接的device不只一個(protocol同上)
還是可以不用OS
把device的done接到CPU的interrupt, 然後改在ISR控制device就可以了
main() {
enable_interrupt();
start_all_devices();
while (1);
}
isr() {
n = check_which_device_is_done();
collect_data(n);
start_device(n);
}
這種情況直接用Verilog寫FSM其實也是可行的
其實決定系統需不需要CPU/OS這個問題
如果你的系統需要比較複雜的控制, 或是希望可以改變控制的流程
這樣就需要CPU, 不然其實直接做成硬體又快又簡單
(風險是一旦做錯就沒救了)
至於需不需要OS要看需不需要多工
如果系統的多工需求如上面例子都是做同樣的事情也不一定要OS
但是如果系統需要同時做不同的事情, 像是同時控制不同的device又要能從UART debug
這樣有OS會比較方便
決定要port OS的話, 或許可以考慮uC/OS-II
原作者出的書裡面幾乎把所有原始碼都解釋了
而且它跟CPU強相關的code不多, 印象中網路上應該找的到port給8051的版本
另外一個優點是它佔的記憶體空間很小
最後附上兩本參考書
[1] Embedded C, Michael J. Pont
[2] MicroC/OS-II, Jean J. Labrosse
第一本的CPU就是用8051, 裡面有討論到沒有OS/有OS的實作
第二本則是uC/OS-II作者自己寫的書
希望對你有幫助囉
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.195.197.188
推
06/07 17:22, , 1F
06/07 17:22, 1F
推
06/07 21:59, , 2F
06/07 21:59, 2F
推
06/08 02:47, , 3F
06/08 02:47, 3F
推
06/08 13:49, , 4F
06/08 13:49, 4F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):