学UCOS已有一段时间了,核心代码没怎么看懂,但不妨碍把UCOS移植到51单片机里去。
前些天在网找了个移植代码,修改了一下。用KEIL编译,然后用proteus的AT89C51RD2仿真了,弄了三个任务,感觉效果还可以。但是把程序下到我的单片机开发板的时候就跑不了了。后来才知道我的开发板上的AT89S52的RAM是256KB的,而仿真里面的单片机的RAM是512KB的,集成了256KB的XRAM。
问题来了,难道UCOS移植到51单片机里必需要XRAM(外部RAM)吗?众所周知,51的片内RAM最多只有256KB,AT89C51RD2有512KB的RAM,事实上它的片内RAM也只有256KB,另外那256KB是外面数据存储器,所以我编译的UCOS只能在有XRAM的51单片机上跑。
各位DX,有谁能告诉我,能不能在UCOS的内核上做某些裁减,而使得它不用占用外部RAM呢?就是能让UCOS在普通的51单片机上也跑起来。 希望高手赐请,谢谢了!
|