01_ARM学习准备工作
01_ARM学习准备工作
- 熟悉Tiny210开发
- ARM9 - 2410
- ARM11 - 6410
- CortexA8 - Tiny210
- CortexA15 ...
1. 开始进入到真正的嵌入式阶段
1.1. 理解一下我们要学的内容
启动过程
1、上电
2、从BIOS里读引导信息
3、bootloader:准备运行环境,引导操作系统
3、操作系统kernerl init
4、加载 操作系统上层应用
1.2. 我们工作的核心行为
我们工作的核心行为就是 研究CPU如何理解0和1 电子脉冲!
看板子,看电路,找地址,操作地址
回顾知识:
1、数字电路
2、C语言的地址操作(指针)、位运算
2. 手机研发的过程
1、提需求:小米手机、小米盒子
2、概要设计(出方案):采用什么LCD、CPU、NADN FLASH、RAM、DDRAM、外设(GPS)...
3、两头走
硬件设计:PCB、模具
软件设计:BSP、内核往上4层的定制
4、研发
硬件研发:修改
软件研发(相对硬件复杂):驱动 (厂家会提供,可以修改)
5、集成
6、测试
实际过程、软件团队很少用开发板,直接上原型板子,直接上原型的模具。
3. Tiny210SDKV1(V2)开发板Helloworld
3.1. 什么是开发板?
用来实验的板子
3.2. 拿到开发板我们应该怎么开始?
3.2.1. 认识学习光盘目录结构
根目录
- 用户手册.pdf:介绍板子
Android
:应用开发Datasheet
:板子上硬件手册S5PV210_UM_REV1.1.pdf
:后续研究CPU要读的
images
(B盘):烧写镜像- bootloader(通用):
Superboot210.bin
:bootloader 常用的bootloader有uboot、superboot - 内核
- 根文件系统
- bootloader(通用):
Linux
:应用开发工具Schematic-PCB
:PCB原理图tools
:常用工具WindowsCE6
:应用开发工具
3.2.2. 认识板子组成及原件 Tiny210v1核心板和底板介绍
- 核心板
- 主控
S5PV210
、Cortex-A8
内核 - Nand Flash (256M)
- DDR2 RAM x 4 (扩展存储空间) (512M)
- COM 外接引脚
- LED 电源灯 和 测试灯
- HDMI mini接口
- 主控
- 底板
- 外设
- boot swicth key boot切换按键
- 网口
- 麦克风 音频输出
- miniusb
- ADC
- ROM(存储BIOS)
- ...
3.2.3. 测试烧写我们的Bootloader、Kernel(CP)、RootFS(AP)
- PC上准备工作
- 启动COM连接终端工具 - 通过COM连接开发板,操作,看log
- 用SD卡,写入Bootloader,copy相关Images进去,准备烧写
1、使用SD卡上的images完成烧录
首先电脑 以管理员权限 打开 SD-Flasher.exe
,然后扫描SD卡,选择Superboot210.bin
文件,然后点击fuse 烧录
然后讲images文件夹拖入 SD的目录下
修改FriendlyARM.ini
注意:如果是Nand(2GB),根文件系统烧录
rootfs_android-mlc2.img
,否则是rootfs_android.img
因为是电容屏,所以要跳过校准skipcali=yes
,然后本屏幕的触摸芯片是ctp=3
电容屏、mlc2
#This line cannot be removed. by FriendlyARM(www.arm9.net)
CheckOneButton=No
Action = Install
OS = Android
LCD-Mode = No
LCD-Type = S70
LowFormat = No
VerifyNandWrite = No
CheckCRC32=No
StatusType = Beeper | LED
################### Android 4.0.3 ####################
Android-BootLoader = Superboot210.bin
Android-Kernel = Android/zImage
Android-CommandLine = root=/dev/mtdblock4 rootfstype=yaffs2 console=ttySAC0,115200 init=/linuxrc androidboot.console=ttySAC0 skipcali=yes ctp=3
Android-RootFs-InstallImage = Android/rootfs_android-mlc2.img
################### Android 2.3.1 ####################
#Android-BootLoader = Superboot210.bin
#Android-Kernel = Android2.3.1/zImage
#Android-CommandLine = root=/dev/mtdblock4 rootfstype=yaffs2 console=ttySAC0,115200 init=/linuxrc androidboot.console=s3c2410_serial0 skipcali=yes ctp=3
#Android-RootFs-InstallImage = Android2.3.1/rootfs_android-mlc2.img
################### Linux ####################
Linux-BootLoader = Superboot210.bin
Linux-Kernel = Linux/zImage
Linux-CommandLine = root=/dev/mtdblock4 rootfstype=yaffs2 console=ttySAC0,115200 init=/linuxrc
Linux-RootFs-InstallImage = Linux/rootfs_qtopia_qt4-mlc2.img
################### Windows CE6.0 ####################
WindowsCE6-Bootloader = Superboot210.bin
WindowsCE6-BootLogo = WindowsCE6\bootlogo.bmp
WindowsCE6-InstallImage = WindowsCE6\NK.bin
WindowsCE6-RunImage = WindowsCE6\NK.bin
插上SD卡 ,打开SD启动,上电
2、使用minitools烧录
上面的ini文件添加USB-Mode = yes
管理员安装MiniToolsSetup-Windows-20150528.exe
USB驱动会安装失败,需要在电脑-管理-资源管理器,手动安装驱动
安装驱动提示文件的哈希值不在指定的目录文件中的解决办法
https://jingyan.baidu.com/article/0f5fb09930de116d8334ea12.html
安装完驱动后,插上miniusb,打开软件,自动识别到,然后
4. 看看电路图
打开Schematic-PCB
,
核心板电路Tiny210-1204-Schematic.pdf
底板电路Tiny210V2SDK-V1.0-120804-Schematic.pdf
打开Datasheet
芯片手册S5PV210_UM_REV1.1.pdf
核心板
主要组成部分
- NAND Flash
- 128M/256M/512M/1GB
SLC
- 2GB/4GB/8GB
MLC
- 128M/256M/512M/1GB
- Memory
- 4片
DDR2 32bit 512MB
- 4片
- Reset JTAG测试点
- 连接器
- Power
找到LED的连接管脚,GPJ2_0
打开芯片手册,找到控制GPIO的寄存器,GPJ2CON
、GPJ2DAT, GPJ2PUD, GPJ2DRV, GPJ2CONPDN and
GPJ2PUDPDN
通过写入这些寄存器,就可以达到控制GPIO的目的