社区
汇编语言
帖子详情
ARM2440启动代码mov和adr问题想到的编译问题
xiazaifengzi
2014-03-25 12:15:07
一般用adr是使用相对地址,这样即使代码移动到另一地方在编译时,运行也不会出现错误。
如果用mov就会编译成一个具体的地址会出错。
我想问的是,假如nand flash启动,那么代码在nand flash上就编译好了吗?然后拷贝到SDRAM上运行吗?拷贝的是编译好的代码吗
...全文
77
4
打赏
收藏
ARM2440启动代码mov和adr问题想到的编译问题
一般用adr是使用相对地址,这样即使代码移动到另一地方在编译时,运行也不会出现错误。 如果用mov就会编译成一个具体的地址会出错。 我想问的是,假如nand flash启动,那么代码在nand flash上就编译好了吗?然后拷贝到SDRAM上运行吗?拷贝的是编译好的代码吗
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
inurlcn
2014-04-01
打赏
举报
回复
硬件上面只能从NOR \NAND\ROM 上面启动
猪头三小队长
2014-03-27
打赏
举报
回复
U-boot已经是bootloader之后的事了。如果你不用特别的芯片,你也做不到从nand启动,只能从nor,因为nand不能做直接地址读写,而nor可以。 一个问题需要你考虑,如果不从非易失性存储启动,而从易失性存储启动,那么ram中的代码是哪里来的?
猪头三小队长
2014-03-26
打赏
举报
回复
在代码写到nand之前就已经编译(并且链接)好了,然后需要由加载器拷贝到相应的RAM中
xiazaifengzi
2014-03-26
打赏
举报
回复
经过把U-BOOT进行make后,从所生成的两个.map文件来看(~/u-boot.map和 Systen.map),所有的地址标号都是从0x33f80000开始的,就是从SDRAM的高地址开始,等于TEXT_BASE的值,也就是说,链接 器是从0x33F80000开始来链接所编译生成的目标文件的,而不是从0地址开始,经过查看,start_armboot=0x33f80d9c,就是 说void start_armboot (void)函数的入口地址在SDRAM中(链接器决定),所以执行。“ 但是我想问的是我们在make后,既然所有地址的标号都是从0x33f80000开始的,那我们应该是make后才将uboot.bin文件下到ARM板,那应该一开始也是0x33f80000呀!那为什么一开始从nand flash运行呢。
基于
ARM
的嵌入式系统程序开发要点(五)——
ARM
Thumb的交互工作
基于
ARM
的嵌入式系统程序开发要点(五)——
ARM
Thumb的交互工作
ARM
嵌入式系统与应用实验报告.doc
ARM
嵌入式系统与应用实验报告
ARM
嵌入式系统的编程
ARM
嵌入式系统的编程 嵌入式系统的编程
ARM
汇编伪指令与伪操作
ARM
嵌入式系统结构与编程PPT学习教案.pptx
ARM
汇编伪指令与伪操作
ARM
嵌入式系统结构与编程PPT学习教案.pptx
ARM
汇编语言伪指令
ARM
汇编语言伪指令,
ARM
汇编语言伪指令,
ARM
汇编语言伪指令
汇编语言
21,499
社区成员
41,617
社区内容
发帖
与我相关
我的任务
汇编语言
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
复制链接
扫一扫
分享
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章