uboot里面可以让nand和spi同时触发吗?

qiuxin425 2012-01-18 02:23:31
uboot里面可以让nand和spi同时触发吗,启动时从spi启动,但可以用nand命令,求高手?

解决马上结贴,高结贴率!分不够可以另外开贴。
...全文
136 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
jdygrdzh 2012-01-19
  • 打赏
  • 举报
回复
首先这个问题不是uboot的问题,而是x86(我只熟悉x86,ARM的也许类似)上电后,北桥把CPU发出的0xfffffff0内存地址读取请求通过总线传给南桥,南桥传给nand或者nor控制器.南桥必须明确的知道,是传给nand还是nor.如果你想通过改软件或者跳线把两个bit都使能,那结果不可预知,可能前者设置被后者覆盖,也可能出错.
你要实现的功能可以做,但不是通过同时从nor和nand启动来完成的.你可以从其中一个启动,然后将另一个设备做内存地址映射,并使用驱动(无操作系统的裸驱动,uboot应该有).这样就可以通过访问某个内存地址来读取其内容.当然,这个还不是使用它的命令.
要做到使用命令,你必须把内容读出来,得到一个二进制映像,把这个二进制文件拷贝到一个不用的内存空间.然后,解析二进制文件的源代码,找到硬件初始化命令完成以后,开始做loop接受输入的那部分代码,记录下其物理地址.准备跳转.为什么可以跳转?有个前提,nor和nand的初始化代码一致,或者干脆使用同样的源文件编译.由于这时候已大家都在保护模式,未分页,未使用虚拟内存机制,并且在同一个段选择字里,所以可以很容易的跳转而不会崩溃.
还有个前提,就是你编译最后链接二进制映像的时候,必须使用ld脚本指定装到内存后的基地址,不然那些函数在你拷贝到内存后,访问不到别的函数.
做的更高级一点,你还可以在跳转后再跳回来,因为上下文都是一致的(虽然没有进程和操作系统,还是有上下文的).
类似的东西我做过,所以不用担心完全是想像.只要你对编译器和x86足够熟悉,一天就可以完成.
qiuxin425 2012-01-18
  • 打赏
  • 举报
回复
mark! 明天继续等待高手

21,597

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧