用UBOOT自带loadb命令加载应用程序到SDRAM中运行的方法
来源:互联网 发布:淘宝给差评还能退货吗 编辑:程序博客网 时间:2024/05/17 09:02
S3C44B0开发板中,用UBOOT自带loadb命令加载应用程序到SDRAM中运行的方法
1.开发板说明:
开发板上已有移植好的UBOOT运行。
2.交叉编译工具链为arm-linu-gcc-4.0.4
3.原理:
采用UBOOT自带的命令loadb,加应用程序(.bin)加载至SDRAM中某一地址中,然后用go 命令从某地址处开始执行程序。
操作方法说明:
1.编写一个测试程序,见附上的例程hello.c。
hello.c主要包含以下几个功能,在串口终端打印输出字符串,控制开发板上的LED灯,同时采用等待延时的方法循环执行。
2.编写Makefile文件,方便调试,省得每次都要敲命令行。
3.将得到的hello.bin文件用loadb命令加载至相应的地址(addr),该地址应与Makefile文件中-Ttext指定的地址相同。
4.用go addr命令运行程序。
需要注意的问题:
1.在SDRAM中运行的地址选取问题:
由于UBOOT也是在SDRAM中运行的,因此,要考虑应用程序的大小,加载到某地址后,不要破坏了UBOOT的正常运行。
如果影响到了UBOOT的运行,那结果是不可预知的。因此,要避免此种情况的发生。
2.在地址链接时,需要指定程序入口地址,即arm-linux-ld -Ttext 0x0c400000 -e main hello.o -o hello.elf中-e main这项。
-e指定的是入口点,即名称,应该与应用程序中的主程序名(main)相同。
这里的主程序指应用程序的主运行程序,并不一定是main,可任意指定,比如entry等,但-e指定的名称必须与之相同。
3.如果在应用程序中,有多个函数时,默认情况下,是依据函数的实现顺序分配地址值的。
如此例中,delay函数在main函数之前的话,那delay的分配地址,应该会是0x0c400000,而main的是0x0c400030,要比delay的靠后。
若main在delay前面,则main为0x0c400000,delay为0x0c40006c。
同时,文件中的函数地址值可以通过hello.map文件得知。
4.如果违反了3所述的情况,可通过查看hello.map文件中主程序的地址(main),然后在用go 命令时所接的地址改为主程序的起始地址的话,也是可以正确运行程序的。
资源下载:
http://download.csdn.net/detail/mao0514/6701601
- 用UBOOT自带loadb命令加载应用程序到SDRAM中运行的方法
- 利用串口下载文件到内存(SDRAM)中(loadb命令)
- 运行jasperreports中自带的demo的方法
- 运行jasperreports中自带的demo的方法收藏
- 把自己的应用程序加载到uClinux中运行
- 把自己的应用程序加载到uClinux中运行
- 【记录】s5pv210运行裸机程序的方法之在SDRAM(DDR2)中运行
- c#中自带的排序方法
- WPF中应用程序exe的自带config文件
- 屏蔽windows应用程序中,windows自带的右键菜单
- Cubietruck开发板SPL阶段加载uboot到SDRAM并启动
- Linux系统自带spi驱动加载及应用程序编写方法详解
- Linux系统自带spi驱动加载及应用程序编写方法详解
- Linux系统自带spi驱动加载及应用程序编写方法详解
- Linux系统自带spi驱动加载及应用程序编写方法详解
- 运行main带参数的控制台应用程序方法
- Uboot之四下载sdram运行,ok。
- 关于Tq2440流水灯才行直接下载到sdram和nand中运行的区别
- sql2005无法查看数据库属性:在位置 0 处没有任何行。 (System.Data)
- ssh 登陆主机
- 实现 Lip-sync
- 如何学习Javascript
- 数学专业的数学与计算机专业的数学的比较
- 用UBOOT自带loadb命令加载应用程序到SDRAM中运行的方法
- 漂亮的PPT模板:三步搞定年终报告
- 测试标签
- 数据库恢复(只有*.mdf和*.ldf文件)
- iOS中使用blend改变图片颜色
- svnserve.conf:12: Option expected的问题解决方法
- 怎么配置好jsp的运行环境
- 2013年11月吉林综合性网站及社区网站综合影响力排名
- wave文件(*.wav)格式、PCM数据格式