一、ARM总结
单片机最小系统:
- 电源电路
- 晶振电路
- 复位电路
ARM裸机:大内存 + 大外存(SD卡)
(IMUX6ULL) 512M + 8G
ARM -> 处理架构 -> Cortex-A7 (有MMU) 消费电子 图像、音视频处理
单片机:小内存 + 小外存
256byte + 4k
Cortex-M3/M3 (没有MMU) 工业控制、IOT
ARM逻辑
1.启动流程
2.IMX6ULL时钟系统
3.中断系统
4.GPIO
5.Timer PWM
6.UART
7.I2C
8.SPI(时序)
9.RGBLCD
10.ADC
11.USB
12.SDIO
二、学习驱动目标
1. IMX6ULL平台移植Linux操作系统
- 任务调度(多任务)
- 协议栈(网络、USB、CAN)
- 文件系统
- 进程间通信
- 设备管理
2. 软硬件裁剪
增加需要的功能
删除冗余的功能
3.外设驱动的适配
字符设备驱动编写 #《Linux设备驱动开发详解》-宋宝华#
三、开发板烧写LINUX系统
1. 烧写工具
2. 烧写程序
Linux系统:
1.bootloader(UBOOT) :一段加载引导系统启动的逻辑代码,为加载执行内核做前期的准备(初始化硬件设备、加载资源)
设置栈指针寄存器
初始化DDR
初始化其余外设
2.Linux内核:纯C语言编写的软件程序
zImage(内核镜像)
dtb(设备树文件)
内存管理
多任务管理
进程间通信
网络协议
文件系统管理
- rootfs文件系统
用户层与内核层交互、对文件系统管理和操作
- 所需文件
|-----------|--------|------|---------------|
| uboot.imx | zImage | .dtb | rootfs.tar.gz |uboot.bin -> unoot.imx
vmlinux -> Image -> zImage -> uImage
- 硬件平台资源
|------|-----|-----|------|------|
| 启动方式 | USB | SD卡 | EMMC | NAND |SD卡:系统移植性好
1.上电启动,加载0x0位置代码(出场一段BotROM代码)
2.执行BotROM代码(IMUX6ULL的RAM中执行)
芯片校验
查看启动方式
找到uboot.imx文件
初始化DDR
将uboot.bin迁移DDR中执行
3.uboot执行代码
3. 开发方式
协议
nfs协议
TFTP协议


