Chinaunix首页 | 论坛 | 博客
  • 博客访问: 21482
  • 博文数量: 9
  • 博客积分: 472
  • 博客等级: 下士
  • 技术积分: 105
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-01 15:38
文章分类
文章存档

2011年(5)

2010年(2)

2009年(2)

我的朋友

分类: LINUX

2010-12-25 15:03:18

手头的9260板子 原本是dataflash启动的,现在为了节省成本,尝试去掉dataflash,采用nand启动。
对于nand启动的方式,其实不需要修改什么代码,每次编译bootstrap都会生成两份二进制,一个是dataflash,一个nandflash,区别无非在于从不同的介质中读取uboot到sram中。但要注意sram大小只有4k,所以要将代码做一些裁减。对于nand方式,修改makefile,把一些无用的库干掉就可以在4096以内了。
接下来把uboot烧到nand的0x20000(块对齐),就可顺利启动系统。但接下来的启动出了问题,因为原本使用dataflash的时候,拔掉跳线是连接samba,不拔正常启动,而现在nand启动跳线完全无法起作用,即使拔掉跳线仍然正常启动。研究soc的spec,发现9260的跳线其实和其他soc有所不同:其他一些soc通过跳线影响bootrom的启动选择,根据跳线信号的不同产生引导的分支;而9260则是单线启动,首先查看dataflash的0地址是否有8个异常向量,有则dataflash启动,否则同样看nand,然后再samba。以前的跳线连在dataflash片选上,拔掉后找不到dataflash,而nand又无8个向量,因而启动samba;改成nand以后,原来的跳线失去作用,自然就无效了。

最近在研究珊瑚的代码,同时对比linux内核,重点关注中断响应与处理,进程切换与调度等,有所收获,等这块研究告一段落并且在板子上验证过后,继续对rtos的进程及内存管理,以及其他驱动进行深入学习。再后面会结合更多的rtos,如djyos,rtems等进行分析
阅读(963) | 评论(0) | 转发(0) |
0

上一篇:一个cache相关的问题

下一篇:vimrc

给主人留下些什么吧!~~