【嵌入式Linux】12-裸机-IMX启动方式

此笔记由个人整理

塞上苍鹰_fly

课程来自:正点原子_手把手教你学Linux

一、硬件启动方式选择

1、启动方式的选择

  • 6ull支持多种启动方式

image-20201205092959734

  • 启动方式是选择
    • BOOT_MODE0和BOOT_MODE1两个IO用来选择启动方式
    • 选择USB下载还是内部BOOT启动
    • USB下载:可以通过USB或UART将代码下载到板子上的外部存储设备中
    • 内部BOOT启动:执行内部的bootROM代码,这段代码会进行代码初始化,让后从外部设备中将代码复制到指定的RAM(DDR)

image-20201205093341281

  • 核心板

image-20201205093650190

  • 底板

image-20201205093850672

2、启动设备的选择

image-20201205095101753
  • 前提是你要将启动方式设置为内部启动模式

    • MODE1=1,MODE0=0
  • 支持

    • NOR flash,oneNAND、NAND Flash、QSPI flash、SD/EMMC、EEPROM
    • 常用:NAND Flash、SD、EMMC、QSPI Flash
  • 通过BOOT_CFG选择外部设备,有BOOT_CFG1,2,4,每个8位

    • BOOT_CFG是由LCD_DATA0~23来设置的
    • 大部分默认都47K下拉电阻接地
    • LCD_DATA11:用来选择SD卡几启动

    image-20201205101014927

    image-20201205101056493
    • LCD_DATA3-7:配置具体启动设备85/7574

    image-20201205101421097

    image-20201205101445319

    image-20201205101817054

二、启动头文件

1、Boot ROM做的事情

  • 设置内核时钟为396MHz

  • 使能MMU和cache,使能L1 cache、L2 cache、MMU目的是为了加速启动
image-20201206100916134
  • 从BOOT_CFG设置的外置存储中,读取image,然后做相应的处理
  • IVT+Boot data+DCD+.bin

2、IVT(Image Vector Table)和Boot Data数据

image-20201206102316484
  • bin文件前要添加头部,我们烧写到SD卡中的load.imx文件在SD卡中的起始地址是0x400,也就是1024
image-20201206102436089
  • IVT中包含了一系列的地址信息,这些信息在ROM中按照固定的地址进行存放

image-20201206105624442

  • IVT头部的格式

image-20201206110129103

  • boot data的格式
image-20201206110351635
  • IVT表和boot data的存储地址
image-20201206105909055 image-20201206105920942
  • SD卡中头部为3kb,偏移量为1kb,所以在Sd卡总0xc00以后的才是实际编写的驱动程序
image-20201206104342704

3、DCD数据(Device Configuration Data)

  • 设备配置信息,用来配置内部寄存器的

image-20201206140422971

  • DCD头部的格式
image-20201206140641549
  • Write data的命令格式
image-20201206141214616 image-20201206141624991
  • DCD作用
    • 设置 CCGR0~CCGR6 这 7 个外设时钟使能寄存器,默认打开所有的外设时钟
    • 配置 DDR3 所用的所有 IO
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值