本文主要内容:什么是嵌入式?应用程序如何访问硬件?开发板的使用,uboot的功能,uboot命令的使用,uboot如何操作硬件?
什么是嵌入式?
以计算机应用为中心,软硬件可裁剪,满足用户对性能、功耗、体积有可靠的要求。硬件裁剪(本文采用网络资料较多的fs4412开发板进行学习):fs4412开发板硬件信息: SOC:exynos4412cpu:cortex-a9VENDOR:samsungARCH:armDRAM:1GEMMC:4G
对于SOC的厂商,每发布一款soc,推出SOC对应的板子, 把厂商提供的板子称为母板、参考板、标准板。fs4412开发板的参考板为origen。软件裁剪:
OS:rtos(单片机) android linux ucos(单片机)
linux系统裁剪:跨平台运行,x86,arm,mips,powerpc
应用程序如何访问硬件?
用户空间app:open/read/write函数===系统调用===内核空间: 进程的管理 时间的管理 中断的管理 内存的管理 网络的管理 虚拟文件系统(VFS) ===========BootLoader:对硬件进行初始化,引导内核===========硬件 fs4412开发板上电:bootloader
初始化硬件
引导内核
内核
文件系统
命令、app
linux系统:内核+文件系统
开发板的使用:
1、连线 使用电源线给板子供电,板子(5v) 使用串口线(usb转串口) 查看开发板的启动信息 usb转串口的芯片(ch340,pl2303,ftdi) 电脑安装usb转串口的驱动(ch340) 测试是否安装成功: 右键我的电脑---->管理---->设备管理器---->端口 ch340(comx) 串口助手:查看串口的输出信息 putty fs4412的emmc默认已经烧写BootLoader,选择从emmc启动 emmc: 0 1 1 0 sd: 1 0 0 1 2、上电 上电,uboot就会执行,倒计时,倒计时结束之前按任意键,进入到uboot的命令行,内核就不会执行。uboot的功能:
初始化硬件
内存的初始化
flash初始化
时钟的初始化
引导内核
uboot命令的使用:
help:查看uboot支持哪些命令md:查看内存的地址信息gpx2_7 gpx2con 0x11000c40
md 0x11000c40
nm:修改内存的地址信息
nm 0x11000c4
uboot如何操作硬件?
cpu是如何找到外设的?
soc在设计的时候,为每一个外设都分配地址,这个地址是固定死的。cpu通过地址操作外设
如何查看外设的地址?
通过芯片手册
内存的地址是多少,起始地址和结束地址?
根据芯片手册确定,FS4412为 0x40000000 - 0x80000000 芯片手册第82页
如何点灯?(后续详细介绍)
根据原理图查看led灯接cpu的哪一个引脚。
fs4412共有4个led灯:GPX2_7 GPX1_0 GPF3_4 GPF3_5
根据芯片手册:每一组gpio都有通用的寄存器()地址起个别名,特殊功能寄存器。
GPXCON:控制器寄存器 输入/输出/其他功能
GPXDAT:数据寄存器 /输出高低电平
GPXPUD:上拉/下拉寄存器 指定引脚默认是高电平/ 电平
GPXDRV:驱动的能力
总结:cpu 32bit,每个寄存器的地址32bit,一个寄存器占4个字节,控制寄存器每个引脚使用4bit表示,对于数据寄存器每个引脚对应某一位,如gpx1_0 对应0bit。
原理图查看基础知识:
常用元器件的原理图缩写R:电阻 (Resistor)C:电容 (capacitor)L: 电感 (Inductor)D:二极管 (Dideo)U:芯片 (Unit)J:连接器 (Jack)CON: 排座Q/T:三极管 晶体管TP:测试点 VCC:电源 VDD:电源 GND: 地 DGND,AGNDVxx:电源VBAT:电池的电压总之原理图上的vxx的都是电源
fs4412数据手册下载:
https://download.csdn.net/download/daocaokafei/12533438