01_ARM学习准备工作

发布时间 2023-12-14 15:10:47作者: StarAire

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
    • 内核
    • 根文件系统
  • Linux:应用开发工具
  • Schematic-PCB:PCB原理图
  • tools:常用工具
  • WindowsCE6:应用开发工具

3.2.2. 认识板子组成及原件 Tiny210v1核心板和底板介绍

  • 核心板
    • 主控S5PV210Cortex-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
  • Memory
    • 4片DDR2 32bit 512MB
  • Reset JTAG测试点
  • 连接器
  • Power

找到LED的连接管脚,GPJ2_0
打开芯片手册,找到控制GPIO的寄存器,GPJ2CON、GPJ2DAT, GPJ2PUD, GPJ2DRV, GPJ2CONPDN and
GPJ2PUDPDN

通过写入这些寄存器,就可以达到控制GPIO的目的