Chinaunix首页 | 论坛 | 博客
  • 博客访问: 956783
  • 博文数量: 116
  • 博客积分: 3923
  • 博客等级: 中校
  • 技术积分: 1337
  • 用 户 组: 普通用户
  • 注册时间: 2009-04-23 01:22
文章分类

全部博文(116)

文章存档

2013年(1)

2012年(17)

2011年(69)

2009年(29)

分类:

2011-06-06 22:26:01

这两天一直就像把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地址上,看来映射表还是挺方便的。

阅读(1117) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~