回顾
嵌入式系统:
以应用为中心,以计算机为基础,软硬可裁剪,系统对功能、可靠、成本、体积、以及功耗都有严格要求的计算机系统。
什么是嵌入式?
计算机技术和行业结合中,形成的产物;
嵌入式软件开发工程师
应用(行业),行业知识
计算机技术(软件开发)
程序开发:PC机
运行平台:嵌入式硬件平台(TPAD)
编译器:arm-linux-gcc(基于ARM架构),生成可执行程序
TPAD:
s5pv210:三星 , cortex-a8(ARM提供的处理器)
启动方式:四种
1,Nand Flash
2, SD卡
3,USB(OTG)接口(通过USB线,将PC和TPAD相连,其实启动程序在PC)
4,串口(很少用)
启动方式是通过设定TPAD上的拨码开关来进行设置的
板子一上电,s5pv210处理器中,有一段三星固化好的代码(出厂自带),代码在IROM(集成在s5pv210内部),一上电就招行IROM中的代码,判断拨码开头所设置的启动方式;如果设定的是从USB启动,因此,IROM中的代码就会从USB接口上获取启动程序(PC主机);
将启动程序u-boot.bin程序安装(烧写)到Nand Flash,将拨码开关拨至Nand Flash启动,重启开发板;板子重新上电,IROM,判断拨码开关的设置,Nand Flash启动到Nand Flash上找启动程序;
DNW软件:
0xd0020010 x210_usb.bin
0x23e00000 u-boot.bin ,运行启动,并显示出运行的过程
按住空格键,进入:
tarena# dnw 0x20008000
通过命令再次发送 u-boot.bin到0x20008000地址
tarena# nand erase 0x0 0x100000
nand flash的擦除命令,从 nand flash0地址开始擦,擦1M大小
tarena# nand write 0x20008000 0x0 0x100000
nand flash的烧写命令,将TPAD内存0x20008000中的u-boot.bin烧写到nand flash,从 nand flash 的0地址开始写,写1M,至此,完成了u-boot.bin的烧完工作
重新设置拨码开关
重启开发板
0xd0020010 x210_usb.bin (IARM,静态存储器,上电就能用)
0x23e00000 u-boot.bin (外接内存的地址(物理地址))
0x20008000 u-boot.bin (外接内存的地址(物理地址))
为什么要下载两个u-boot.bin?通过dnw下载的处于运行状态,很多数据已不是最初的状态,所以还需要下载一份。如图:
SD卡烧写:
1,准备一张SD卡,将u-boot.bin烧写到Nand Flash中。
2,将sd卡制作成一张启动卡,将sd卡先格式化成FAT32格式。
3,工具ftp://arm/通过sd卡启动u-boot ,参考
4,先将TPAD断电,将制作好的SD启动卡插入TPAD的SD卡座,将拨码开关设置成SD卡启动。
5,启动开发板
一上电,最先执行的s5pv210里面的IROM程序,读拨码开关的设置(SD)
网络下载:
如何通过网口,将u-boot.bin程序下载到TPAD的内存的0x20008000.
搭建PC和TPAD之间的网络环境:
PC TPAD
服务器 客户端
1,将PC机(VMware)搭建成TFTP服务器
VMware 中ubuntu系统搭建为TFTP
1),安装ubuntu下的TFTP的服务器软件(有些系统默认已经安装)
2),配置工作
个性配置文件:/etc/default/
指定tftp服务器的共享目录在ubuntu下的/tftpboot目录,所有共享谁的在u-boot.in将要放在该目录,客户端TPAD可以下载。
2,设置ubuntu的IP地址
设置之前先查看一下IP地址:ifconfig
sudo ifconfig eth0 192.168.1.8
ifconfig再次查看IP地址是否设置成功
只要修改了IP,就要重新启动TFTP服务,使其生效
sudo /etc/init.d/tftpd-had restart
3,将u-boot.in文到共享目录/tftpboot下:ftp://xxxx/u-boot.bin
如何将XP下的u-boot.bin放到ubuntu下/tftpboot下呢?
1),建立XP与ubuntu之间的共享路径
打开VM->Settings ->
2),如何使用:
cd /mnt/hgfs/..
cp u-boot.bin /tftpboot -rf
u-boot.bin就已经放到ubuntu中的/tftpboot共享目录下
4,配置虚拟机的网络
1),个性连接TPAD网卡在XP下的IP地址
2), VMware->Edit->Virtual network
3),VMware->VM ->Settings ->适配器
至此,整个网络环境搭建完毕;
总结:
1,安装ubuntu下安装tftp服务器软件,并设置/tftpboot共享目录
2,设置ubuntu的IP地址,ifconfig 192.168.1.8,重新启动TFTP服务
3,将XP下的u-boot.bin共享到ubuntu下,设置XP和ubuntu的共享目录
4,设置网络环境,XP下网卡的地址,桥接(一定是连TAPD的网卡名称)
从SD卡启动,通过空格键:
tarena# tftp 0x20008000 u-boot.bin
该命令就是通过搭建好的网络,从ubuntu服务器的/tftpboot目录的u-boot.bin下载到TPAD的内存地址的0x20008000
总结一下:
通过USB启动方式:
0Xd0020010 x210_usb.bin
0X23e00010 u-boot.bin
执行 u-boot.bin
tarena# dnw 0x20008000
tarena# nand erase 0x0 0x100000
tarena# nand write 0x20008000 0x0 0x100000
通过SD卡启动,网络下载:
1,制作一张SD卡启动,拨码开关设置为SD卡启动,执行uboot.bin由于ubuntu和TPAD之间的网络环境搭建成功
tarena# tftp 0x20008000 u-boot.bin
//通过网络下载u-boot.bin
tarena# nand erase 0x0 0x100000
tarena# nand write 0x20008000 0x0 0x100000
数据手册(datasheet)
CPU结构:
系统一旧情,实际上是从0地址找代码执行,硬件已经将IROM(0XD000,0000)的代码映射到0地址(由硬件完成)
如何点灯?
如何将TPAD底板上的LED1灯点亮?
看硬件原理图
底板原理图:
核心板原理图:
VDD5:电源
GND:地
Q1,Q2:三级管,数字电路中的三极管相当于电子开关,用于控制电路的导通和断开;
当Q1给高电平,数字1,三级管导通,整个电路导通,LED1亮
当Q1给低电平,数字0,三级管断开,整个电路断开,LED1灭
在核心板原理图(CPU)中搜索GPC1_3
GPC1_3管脚连接到原理图的什么位置
GPC1_3管脚连接到S5PV210:
taneral:S5PV210的GPC1_3
融慧广泽:S5PV210的GPC0_3
GPC1_3、GPC0_3都是S5PV210处理器的GPIO口
GPIO:所有外设接口中最简单的一种接口,能用IO口,IO就是输入输出,可以通过编程实现IO管脚输出高电平或低电平,也可以输入高电平或低电平。
如何使用CPU管脚输出高电平;
要解决此问题,s5pv210的datasheet
p92
通过阅读datasheet,可知
s5pv210共有237个GPIO管脚,都有多功能,复用
如何管理?分组
GPC1_3管脚
GPC1组,共有5个管脚
GPC1_0
GPC1_1
GPC1_2
GPC1_4
GPC0_3管脚
GPC0组,共有5个管脚
GPC0_0
GPC0_1
GPC0_2
GPC0_4
taneral:
融慧广泽: