- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
在RAM中运行-Read
目 录
^_^ 2
一、移植环境 2
1 uC/OS-II版本 2
2 处理器相关代码 2
3 开发工具 2
3.1 编译 2
3.2 调试 3
3.3 下载 3
4 目标板 3
二、修改uC/OS-II 3
三、Diab 4
1 dcc 4
2 das 4
3 dld 5
4 ddump 5
5 windiss 5
四、在RAM中运行 6
1 准备点灯 6
2 准备串口 6
3 生成elf文件 6
4 通过MPCBDM下载 6
5 单任务实验 6
5.1 在0x600处死循环 7
5.2 在DEC_Hdlr中停止 7
5.3 无法切换到IDLE任务 7
6 多任务实验 8
五、烧写FLASH 8
1 规划地址空间 8
2 向量表的位置 8
3 copy_to_ram 8
4 生成bin文件 9
5 使用PPCBoot烧写 9
6 迎头棒喝 9
6.1 部分代码未烧写成功 9
6.2 重新点灯 10
6.3 栈与点灯 10
^_^
不知道这个实验有多大价值,但因为比较熟悉MPC860,又才看了uC/OS-II,所以想把它移植上去跑跑,共花了3周的时间 :-(
这是我第一次做移植实验,发现真正动手和看资料真是不一样。而且,成功之后的兴奋,也是无法铭状的 #_#
在做这个实验的时候,我没用过tornado,所有的开发调试手段都比较落后 :-/ 但也有好处,让我对底层有了更清晰的认识。
搞嵌入式,我还是个新手,发现需要学习的芯片、工具、理论太多,但如果能和大家一起探讨,将会少走不少弯路。因此,与坛子里的xdjm们共勉!
以下,是一个简单的实验的简单的笔记,有自己的一些浅显体会。如果能对你有所帮助,那最好不过,如果没有,就请一笑了之 ^_^
一、移植环境
1 uC/OS-II版本
移植工作本身与uC/OS-II的版本没有太大关系,基于v2.51移植成功之后,没做多少工作就能让v2.62也跑起来。因为修改的是处理器相关的部分,这部分代码并没有体现版本的变化。
2 处理器相关代码
从上可以下载PowerPC8xx的移植代码,BSE版本,基于此做少量更改,就可以满足自己的需求。
3 开发工具
3.1 编译
使用Diab 5.1for PowerPC套件(含编译器、汇编器、链接器、反汇编及仿真工具等)。由Tornado 2.2 for PowerPC附带。我是直接在windows下的命令行进行编译的。先要安装Tornado(如果有单独的Diab,直接用就可以了),然后运行Tornado/host/x86-win32/bin/torvars.bat,这样就可以在命令行使用Diab了。
另,有大侠直接用tornado完成移植工作,我还没有试过,过段时间再看吧。如果能成,当然不需要像我这样折腾了 :-(
3.2 调试
MPC860没有自带的IDE,而Tornado或Single Step能否使用,因为不熟悉也没有尝试。以前用过BDM,所以继续使用,对应的软件是Linux下的MPCBDM。BDM可以看作是GDB的一个target,所以调试的实体就是GDB,版本4.18。
3.3 下载
使用BDM下载程序到RAM,使用PPCBoot烧写程序到FLASH。
这些工具都是Linux下的,而编译又要在windows下,来回的切换很是麻烦。试图在cygwin下使用BDM,编译gdb时没有成功 :-?
Vmware也听说不错,但没时间试了。后来和一同事一起,2台机器方便些了。
4 目标板
使用华恒的HHPPC860-3COM-2ETH-R1开发板。
处理器: MPC860
FLASH: 2片,各2M字节
SDRAM: 16M字节
二、修改uC/OS-II
为了移植到MPC860,需要修改uC/OS-II中与处理器和编译器相关的部分代码。在这里,大部分的修改在BSE的ppc8xx移植版本里已经做好了,其它需要修改的是:
bsestart.s文件:
IMMR、PLPRCR等
修改对UPM的配置(MCR、MDR)
修改片选的配置(OR、BR)
首先要保证正确的配置,860才能跑得起来。
另外,BSE的移植版本,是用于在RAM中运行的,如果要烧写FLASH,要做更多改动,后面再说。
三、Diab
这是个好东东(不比gcc差吧?),对应的手册是《Diab Compiler Users Guide PPC》(tornado里有)。越来越发现,开发调试一定要清楚编译原理,从一个编译器的手册入手是最直接的了,我很多以前模糊的概念都在这里得到了解释。
用到的工具如下:
1 dcc
编译器,据称对代码的优化是最好的。
常用命令:
–c
只进行汇编步骤,生成一个目标文件(默认的后缀是.o);
–
文档评论(0)