完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
最近一直在看韦老大的书和视频,不过是先从移植U-Boot和Linux开始的,因为之前做过一些裸机程序的验证性试验(使用ADS编译,通过Nor Flash自带bootloader下载到SDRAM中),对裸机程序多少有些了解。就是因为前面做过的这些验证性试验,编译出的bin文件可以直接下载到SDRAM中运行,而韦老大的这些裸机程序还是比较明确的规定要烧到NAND Flash的0地址处的。当然也直接下载到SDRAM尝试过,自然是没有反应的(因为head.s文件几乎就标明了从0地址开始)。
因为对汇编程序了解较少,所以不敢妄下结论。但通过与我做过的验证性实验的程序相比较,感觉是要修改head.s文件和main.c文件。感觉是除了调用main函数外,head.s文件中调用的其他C函数都要挪到main.c中来初始化。 因为现在已经将U-Boot烧到了NAND Flash的0地址处,内核与根文件系统也都烧写好了,再将这些裸机程序烧写到NAND Flash的0地址处的话,恐怕前边做的工作就要返工一遍了。所以请教韦老大,对光盘提供的裸机程序,要做哪些修改以使程序的烧写地址与程序执行无关呢?或者能提供一个思路。谢谢! |
|
相关推荐
9个回答
|
|
|
|
|
|
韦老大在群里简单说了一下,这是我现在的一点看法,不一定对。
链接地址:应该是修改链接脚本(如果有)中的地址为SDRAM的地址。 重定位代码:应该就是copy_to_sdram这部分代码。 不要初始化SDRAM:在U-Boot中见到过SDRAM的初始化,但是裸机程序里还没太注意到,至少“按键中断点亮LED灯”的裸机程序没有用到初始化SDRAM吧。 对于“按键中断点亮LED灯”这个程序,要想在SDRAM中运行,还要复制中断向量表到SDRAM中,具体怎样做还不是很清楚。发生中断时CPU默认的就是去0地址那一块去查询中断向量表,这一点好像是无法改变的,那只能“改变”这个0地址,那是不是要用到MMU呢? |
|
|
|
还是拿“按键中断点亮LED灯”举例子,这个程序中,没有用到链接脚本,没有定位SDRAM的代码,也没有初始化,那么用到的就只有中断向量表了。那是不是说,把中断向量表复制进SDRAM,然后利用***为0x0地址,就可以将程序下载到SDRAM的这个位置运行了呢?
|
|
|
|
LZ说的是不是DNW?
|
|
|
|
回复 5楼richarddia的帖子
我指的意思是:韦老师书中例子不是都要下载到Nand Flah的0地址处吗?这一点是必须的,不能随便放到一个地方,我现在想把代码改成“位置无关码”(这个老大在视频有提到过),我只想想问一下具体的修改步骤。 |
|
|
|
因为现在已经将U-Boot烧到了NAND Flash的0地址处,内核与根文件系统也都烧写好了,再将这些裸机程序烧写到NAND Flash的0地址处的话,恐怕前边做的工作就要返工一遍了。所以请教韦老大,对光盘提供的裸机程序,要做哪些修改以使程序的烧写地址与程序执行无关呢?或者能提供一个思路。谢谢!
1.开发板就是用来烧写的,你还想保留着原来的系统吗?破坏就破坏,开发板就是用来破坏的 2.位置无关码很简单:汇编里用b, bl进行跳转,C里不用全局变量、静态变量 |
|
|
|
回复 7楼thisway.diy的帖子
哈哈,谢谢韦老大。是哈,破坏就破坏,反正已经制作好U-Boot的bin文件,Linux的uImage文件还有可用的根文件系统,完全可以放心“搞破坏”啦。 |
|
|
|
楼主您好。
我刚接触嵌入式Linux开发,有许多问题不明白,想向您请教。 现在用的开发板是Micro2440.我想直接通过HJTAG下载程序到SDRAM中跑裸板程序。 在网上下载了韦老师提供的代码:MINI2440源码MINI2440源码硬件部件实验代码leds,一共有四个文件,即crt0.S、leds.c、leds.lds、Makefile。我新建了一个工程,并将crt0.S、leds.c添加到了工程内(eds.lds、Makefile 这两个不用添加的吧?),如下所示: 在DebugRel Setting中设置如下: 在编译的时候出现如下错误提示: 请问是哪里设置的不对吗?代码本身应该没有问题的吧。 |
|
|
|
回复 9楼tottionly的帖子
首先,韦老师的这些代码是在Linux下运行的;其次要用ADS开发的话,应该不能照搬韦老师的全部代码文件吧。 其实跑马灯的实验很简单,都不需要初始化什么东西,直接在ADS中新建工程,用一个C文件就可以实现跑马灯了。 |
|
|
|
只有小组成员才能发言,加入小组>>
197个成员聚集在这个小组
加入小组为什么点亮LED的例子放在NORFlash上跑会出现奇怪的现象?
2187 浏览 6 评论
1987 浏览 5 评论
韦东山老师推出的《玩转ARM裸机实战》课程将帮你以上问题一扫而光!
4545 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 06:36 , Processed in 0.870040 second(s), Total 95, Slave 75 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号