医疗营销网站建设,wordpress怎么上传网站,建设网站技术公司电话,石家庄网站托管U-Boot的简化版启动流程#xff1a;
1、设置状态寄存器 cpsr #xff0c;使CPU进入 SVC 特权模式#xff0c;并且禁止 FIQ 和 IRQ#xff1b;
2、关闭看门狗、中断、MMU、Cache#xff1b;
3、初始化部分寄存器和外设#xff08;时钟、串口、Flash、内存#xff09;
1、设置状态寄存器 cpsr 使CPU进入 SVC 特权模式并且禁止 FIQ 和 IRQ
2、关闭看门狗、中断、MMU、Cache
3、初始化部分寄存器和外设时钟、串口、Flash、内存
4、自搬移uboot到内存中运行
5、设置栈空间并初始化global_data
6、剩余大部分硬件的初始化
7、搬移Linux内核到内存
U-Boot移植
从NXP官方提供的配置文件中找到相关联的配置文件imx6ull_14×14_emmc_deconfig作为默认配置文件蓝本 编译完成以后会生成 u-boot.bin、u-boot.imx 等文件但是这些文件是 NXP 官方 I.MX6ULL EVK 开发板。将 imxdownload 软件拷贝到 uboot 源码根目录下然后使用 imxdownload 软件将 u-boot.bin 烧写到 SD 卡中设置开发板从SD卡中启动加载ubootuboot 成功加载之后通常需要检查SD 卡和 EMMC 驱动是否正常常规情况下都是正常的LCD 屏幕驱动是否正常问题不大网络驱动是否正常核心部分 先在 configs 目录下创建默认配置文件复制 mx6ull_14x14_evk_emmc_defconfig然后重命名为 mx6ull_alientek_emmc_defconfig 修改其中的一些命名 添加开发板对应的头文件。在目录 include/configs 下添加 I.MX6ULL-ALPHA 开 发 板 对 应 的 头 文 件 复 制 include/configs/mx6ullevk.h并重命名为 mx6ull_alientek_emmc.h添加开发板对应的板级文件。uboot 中每个板子都有一个对应的文件夹来存放板级文件比如开发板上外设驱动文件等等。NXP 的 I.MX 系列芯片的所有板级文件夹都存放在 board/freescale 目录下在这个目录下有个名为 mx6ullevk 的文件夹这个文件夹就是 NXP 官方 I.MX6ULL EVK 开发板的板级文件夹。复制 mx6ullevk将其重命名为 mx6ull_alientek_emmc 修改 mx6ull_alientek_emmc 目录下的 Makefile 文件修改 mx6ull_alientek_emmc 目录下的 imximage.cfg 文件修改 mx6ull_alientek_emmc 目录下的 Kconfig 文件修改 mx6ull_alientek_emmc 目录下的 MAINTAINERS 文件 修改 U-Boot 图形界面配置文件LCD驱动修改。一般 uboot 中修改驱动基本都是在 xxx.h 和 xxx.c 这两个文件中进行的xxx 为板子名称比如 mx6ull_alientek_emmc.h 和 mx6ull_alientek_emmc.c 这两个文件。 一般修改 LCD 驱动重点注意以下几点LCD 所使用的 GPIO查看 uboot 中 LCD 的 IO 配置是否正确。LCD 背光引脚 GPIO 的配置。LCD 配置参数是否正确。 网络驱动修改。uboot 中有两个非常重要的环境变量 bootcmd 和 bootargs接下来看一下这两个环境变量。bootcmd 和 bootagrs 是采用类似 shell 脚本语言编写的里面有很多的变量引用这些变量其实都 是 环 境 变 量 有 很 多 是 NXP 自 己 定 义 的 。 文 件 mx6ull_alientek_emmc.h 中的宏CONFIG_EXTRA_ENV_SETTINGS 保存着这些环境变量的默认值 参考链接1 参考链接2