boot+loader 启动文件 学习笔记

源于:B站链接

boot的目的:

跳转到c语言中: 关闭看门狗,中断,MMU,CACHE

配置系统工作时钟

配置SDRAM的控制器(行地址数、列地址数、多少块、周期性的充电)

让SP指向可读可写的设备区间中,满足递减栈的规则SDRAM

代码搬移

执行速度问题,把程序从存储器(nor-flash)搬移到快速的内存

只把存储器的一部分代执行出来,把存储在其他位置上的代码搬移到内存,对应存储器的控制器的初始化

bl main

底层开发主要是启动开发

loader的目的:

执行应用逻辑,点灯,URAT,load linux kernel

.bin  二进制文件

创建接口开发工程

1、Makefile

1.1、通用的Makefile ,支持SD卡启动和在uboot下直接运行在ram

        1)程序运行时的地址不同(根据提供的芯片手册来cha)

                DDR2:0X200000000

                SD卡:0x0,前16k校验

        2)SD 16KB,需要加一个头信息,校验

                RAM:不需要加头信息

1.2、变量集合

        TARGET:DEP

        COMMAND

2、链接脚本(地址安排)

2.1、概念

        告诉编译器如何工作的一个文本文件

2.2、要素

1)、哪一个.o放到代码段的起始位置

2)、所有的.o放到哪个基地址上

3)、代码段、数据段等等是不连续

2.3、基本语法

SECTIONS

.txt  代码段

.rodata  只读数据段

.data 只读只写的数据段

.bss 未初始化数据段
.text :

{
    start.o
    *(.text)

}

. =ALIGN(4);  //代码段结束后以4字节计算

3、文件组成

3.1 inc文件夹(存放头文件)

3.2 Makefile(首字母大写)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值