2. GCC开发环境搭建

1. 开发环境介绍

开发

2. 安装环境

1.安装编译器
编译器的安装
2.编译uboot
编译uboot

3. SD卡烧写uboot

图
iROM:一段固化程序 1.初始化硬件,关闭看门狗,初始化协处理器,icache,初始化时钟 2.判断OM开关,即判断是从那个外部设备启动设备

1.先将uboot.bin烧入到SD卡中
2.拨码开关拨到SD卡启动方式
3.设备启动:先将uboot.bin的前面一部分程序拷贝到iRAM中(因为此时只有iRAM能工作),这个程序会初始化外部内存,即DDR内存。外部内存初始化好后,会将uboot本身拷贝到外部内存中。随后运行uboot程序。

4. 裸机程序开发实例

准备工作

uboot编译成功后,会生成uboot.map:地址和标签的映射图
map

进行编程

@修饰符,标签默认为局部,声明外部文件也能使用
.global _start

_start: 
	@apcs规定:传递参数通过r0-r3四个寄存器
	@printf("hello arm n=%d\n",99);
	
	@取str字符串的首地址
	ldr r0,=str
	mov r1,#99
	
	@执行uboot里的printf
	ldr pc,=0x3ff13e54;
	
loop:
	 b loop
str:
	.asciz "hello arm n=%d\n"
	

应该怎么编译呢?

C语言:
1.预处理
2.编译
3.汇编
4. 链接(有OS时,系统自动指定链接地址,没有OS时,需要手动指定链接地址)

ARM裸板编译时:
1-3:arm-linux-gcc -c start.s -o start.o
4.链接

arm-linux-ld -Ttext=0x40008000 start.o -o arm 指定链接脚本 
arm-linux-objcopy -o binary arm arm.bin	符号表不是有效指令,需要去除符号表

发送到开发板

1.在uboot中输入

loadb 0x40008000 指定文件接受存储的地址

2.在pc上,使用串口软件,发送arm.bin程序
3.在uboot中输入

go 0x40008000 作用:把pc指针指向这个地址
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值