1.熟悉开发板,搭建环境,开发基础流程厘清
1.1 熟悉tiny210开发板结构
arm 9 - 2410, arm11 - 6410, corttexA8-tiny210
认识板子组成以及元件
测试烧写boot,kernel(cp),rootfs(ap),脱机烧写
用户手册
image:烧写镜像---bootloader-boot.bin,kernel-zimage,rootfs-app
1.1.1 核心板和底板介绍
核心板:210——三星的s5pv210 cpu——arm架构(corttexA8)(只是出方案,没有芯片)
实际制造中,主芯片会镶嵌在核心板上,包括存储,cpu,引脚,类似pc上的cpu插槽
ndflash:需要烧系统,系统的存储空间
ddrram:扩展储存空间(128g存储量)
com口
tage的调试口(bootloader)
电源灯
高清接口
底板:更多的是外设
lcd,usb,启动式(sd,内存【ndflash】),uart
1.2 建立板子和pc com连接
通过com口进行log观察,烧写,调试的工作,以后可以用网络更新
1.3 脱机刷系统
1.3.1 烧写
1.启动scurecrt,通过com连接开发板,操作,看log
连接协议-serial(串口),设置基本操作(口,波特率-波特频率)
2.用 sd 卡写入boot loader ,copy相关image,准备烧写
插sd
分区:引导扇区,非引导扇区——引导扇区是看不到的,根据扇区位置以及卷标有无,系统识别出引导和非
无卷标的看不到
使用工具把boot烧进去(引导区)并分区,把images的文件夹copy进去,sd卡会把image装到ndflash,
下次开机就可以使用ndflash启动
3.烧录系统-bootload,ram(kernel,rootfs)
上电之后要去读内容(bl决定内容,arm(ap)决定地址)---bl决定操作系统的地址
以上就是裸板开发(不包含bl)
1.4 基础概念
arm遵循冯诺依曼体系:cpu(转轮)+存储器+外设+总线
高低电平交错产生电子脉冲---模拟0,1, 产生的0,1需要规整一点,系统轮询时钟解决这个事情
1.4.1 电子脉冲的产生:数字电路
二极管,三极管,开关,地线,电阻,电容,与或非
我们的工作核心就是:电子脉冲,看板子,看电路,找到地址,操作地址(操作的最小单元--位)
由此,要学习c语言的地址操作,特别是位运算
推荐知识: 简单的电路原理概要
c语言的地址操作
c语言位运算
1.4.2 开发流程(参考)
1.提需求
2.概要设计(方案):采用什么cpu,nandflash ram,ddrram,norflash
3.两头走: 硬件设计(芯片,模具),软件设计(bsp,uboot往上定制)
4.硬件,修改,软件,驱动(官方有提供),修改
5.集成
6.测试
实际过程,软件很少用开发板,直接上原型板去做 或者模具。
1.4.3 CPU
cpu就是一个轮子,f-取指令(arm指令),d-译码,s-解码(转换成脉冲)
这三个步骤是cpu运行---流水线
三级流水
三级流水
原理图以及电路图以及与或非门
如何控制10的状态-控制电流的走向-控制高低电频-数字电路控制
参考文档:datasheet-s5pv210文档(三星
操作寄存器,让cpu的引脚产生不同的电频,从而实现导通电流和外设,达到目的
开发板:cpu-核心板-底板,对应三个文档手册
电路图:schematic:s5pv210-1205-1148,
电路基本三部分:电源,负载(极管,电阻),中间环节(导线,开关)
数字电路逻辑原件图:见视频11季-0.20秒
基本操作步骤:
确定要控制的电子单元-查看电路图,确定寄存器-查看用户手册(芯片的),寻找寄存器地址
与:
1,1 ->1
a1,a2都通,y才通
或
一个通就行
非
你通我就不通
上图下面的例子是与非门的符号等式和或非门的符号等式
操控高低电平主要是晶体管来进行
.arm体系以及环境
.1 主流芯片
arm官网:www.arm.com
.1 搭建环境
把gcc工具编译链加到环境变量----vim /etc/environment 里
在linux里安装souceinsight
下载一个wine sudo apt install wine
回到桌面,出现wine软件,他会模拟window
把si移动到相关目录并cd
wine xxx.exe
.2 学习的内容
arm---指令集以及译码工作
寄存器---管脚引导到的寄存器,用arm指令控制它输出高低电平
arm汇编---因为没有操作系统,要操作寄存器就需要用汇编
cash---操作过程中会有虚拟内存,缓存机制
mmu---除了寄存器,还有mmu,内存管理机制
协议---不同的协议(网卡,com,蓝牙),连接协议不一样
arm的芯片系列文档观看
.3 开发工具
qeml - 模拟路由器
buybox - 编译生成rootfs文件夹,不用一个,去编译
scrarchbox-交叉编译平台
uboot
uefi-统一可扩展部件接口,规定了硬件的条件,系统跟随硬件,没有这些硬件就装不了(可以限制盗版)‘了,
模拟arm的开发环境工具:详见29-12.00
工具链
工具链的工作原理
eabi:嵌入式 应用 二进制 接口
编译链命令
.Arm寄存器,模式和指令合集
Arm指令集
32位指令集
thumb指令集--16位,代码密度高,运行慢
thumb指令集--16位和32