这两天一直就像把ucos搞的像linux那样能通过ViVi来下载,当然我已经把ViVi改装为vboot了,调了很久,还是不成功,尝试了很多次,就不明白为什么串口老是没有数据出来,我已经把vboot安装了bootcos的命令专门来下载cos的,其实这抄boot linux的命令的,操作步骤如下:
1. 使用"load flash kernel x"下载ucos.bin文件到Nor Flash的kernel区。
2. 使用"bootcos nor kernel"命令把整个kernel区搬到RAM区,然后关掉I和D缓存,关调内存映射功能,然后把PC设定为RAM的基地址,那么就开始跑ucos内核了。
3. 不过今天遇到问题是我使用了Option.inc中CLKDIV_VAL设定为7时,AXD调式会异常,然后我就修改Target.c的void TargetInit(void)函数里的i = 0,结果可以用AXD调试,不过就是使用vboot把程序拷到ram区,然后跑就串口老是输出乱码,而且把我laptop搞的重启,搞了很久,才发现只要修改option.inc中的CLKDIV_VAL EQU 5就什么问题都没有,真的搞的太累了,记录一下。
FILE: Option.inc
===============================================================================
... ....
(4) Select Clock Division (Fclk:Hclk:Pclk)
CLKDIV_VAL EQU 5(由7修改5) ; 0=1:1:1, 1=1:1:2, 2=1:2:2, 3=1:2:4, 4=1:4:4, 5=1:4:8, 6=1:3:3, 7=1:3:6.
... ...
===============================================================================
还有个地方要提示一下,vboot把ucos拷贝到ram上时,就初始化时把ucos的Entry入口地址通过内存映射表把0x00000000地址映射为ram基地址0x30000000上,所以中断向量表就不用写道真实的Nor Flash的0x00000000地址上,看来映射表还是挺方便的。
阅读(1125) | 评论(0) | 转发(0) |