免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 7516 | 回复: 3
打印 上一主题 下一主题

u-boot相关powerpc处理器 [复制链接]

论坛徽章:
0
1 [报告]
发表于 2009-12-06 15:09 |显示全部楼层
你这个代码是在rom里面还是ram里面运行的呢?

论坛徽章:
0
2 [报告]
发表于 2009-12-07 13:39 |显示全部楼层
在board_init_f最后会有relocate_code操作,这个地方会把Rom中的代码、数据搬移到Ram中,相关单板信息、堆栈等都会一并搬到RAM,然后运行board_init_r。

所有u-boot分为两段,如果两段运行(Run in ROM/RAM)需要有数据共享,就需要重定位或者通过relocate_code放方式把数据拷贝过去。

RAM/ROM之间一般不共享全局变量。

论坛徽章:
0
3 [报告]
发表于 2009-12-07 22:41 |显示全部楼层
原帖由 readkernel 于 2009-12-7 17:54 发表
把flash的那个全局变量所在的地址块映射到程序需要访问的地址上(虚拟地址),打开MMU


肯定不能这样解决。MMU功能映射到FLASH,这个数据还是不能修改的。
我看看u-boot如何链接,然后在给个答案。

u-boot有个链接脚本u-boot.lds在各board下面,另外和TEXT_BASE一起决定第一条指令定位到哪里。

论坛徽章:
0
4 [报告]
发表于 2009-12-15 22:46 |显示全部楼层
不好意思,这么才回来。

如果关键就是你这个A函数在哪里被执行的呢?而后C语言又是在那个地方执行呢?

从你描述来看,都应该是在RAM中运行了,这样的话最好的调试方法就是将两个函数中globala的地址打印处理,
这样好分析你访问的地址究竟是否是同一个。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP