我们知道,uboot允许用户添加自己的应用,在指定的地址运行它,同时可以返回到uboot。我们添加自己的应用,用于裸机测试使用,方法如下:
1.找到应用所在目录:
uboot源码树目录下的examples/standalone文件夹下是所有的测试应用
2.按照官方带有的测试hello_world.c修改成自己的应用:
lcd_logo.c,其中修改lcd_logo.c中函数名字为lcd_logo,否则编译会有警告
3.修改此目录下的makefile
在行 ELF-y := hello_world后添加,
ELF-y += lcd_logo 添加了自己的应用项目lcd_logo,不需要其他修改,make自动解决源文件依赖问题
4.修改根目录下的makefile
在行 clean:
@rm -f $(obj)examples/standalone/82559_eeprom /
$(obj)examples/standalone/atmel_df_pow2 /
$(obj)examples/standalone/eepro100_eeprom /
$(obj)examples/standalone/hello_world /
$(obj)examples/standalone/interrupt /
$(obj)examples/standalone/mem_to_mem_idma2intr /
$(obj)examples/standalone/sched /
$(obj)examples/standalone/smc91111_eeprom /
$(obj)examples/standalone/test_burst /
$(obj)examples/standalone/timer /
$(obj)examples/standalone/lcd_logo
添加红色一样,便于make clean 时候,将编译后的应用清除掉
5.注意board/板子目录下的config.mk文件,其中的:
TEXT_BASE = 0x23f00000 表示uboot链接的地址,也就是执行基地址
STANDALONE_LOAD_ADDR = 0x21000000 表示应用的加载地址,也就是执行地址
6.测试执行应用
注意,使用.bin应用,不能使用无扩展名的~
因为应用比较小,所以直接loady STANDALONE_LOAD_ADDR,
之后go STANDALONE_LOAD_ADDR,即可看到应用执行结果
完成实验~