1、嵌入式课件代码嵌入式课件代码完美版通用计算机嵌入式计算机以应用为中心以计算机技术为基础软硬件可裁剪适用应用系统对功能,可靠性,成本,体积及功耗有严格要求的专用计算机系统。学完嵌入式课程,可以做什么?做嵌入式产品(进入一个具体行业) 应用级开发 系统开发(移植操作系统(移植硬件驱动)怎么做?TPAD核心板 CPU: S5pv210 1G (核心:ARM架构 cortex-A8)ARM7 ARM9 ARM10 ARM11Cortex-ACortex-MCortex-R外设控制器 DDRII:外接内存8颗 1G TPAD有1G内存 Nand Flash: 闪存底板拨码开关(四个)决定CPU从什么设备
2、上获得启动程序。(从哪里启动)Nand Flash(发布)SD卡(发布)Usb(开发)Uart(开发)开发模式:主机PC - 目标板(TPAD)Usb(发送,接收)网络(发送,接收)Uart(发送,接收)JTAG口(发送)为TPAD搭建一个运行环境其实向Nand Flash烧写一个程序 引导程序(Bootloader)u-boot.bin启动程序 板子上电,执行的s5pv210内部iROM中固化那段代码准备工作:1. 把TPAD连接线接好1. usb线(一头PC,一头接TPAD OTG USB口)2. 电源线3. 网线(一头PC,一头接TPAD的网口)4. uart(一头PC,一头接TPAD
3、com1)5. 设置拨码开关(USB启动) 1-ON 2-OFF 3-OFF 4-ON向Nand Flash烧写引导程序(Bootloader)u-boot.bin烧写在Nand Flash的0地址此程序能够为运行裸板程序创建运行环境PC-TPAD UsbPC :DNW (发送程序发件人)TPAD:iROM(接收程序收件人) Usb和串口都能用了参看文档:S5PV210_iROM_ApplicationNote_Preliminary_20091126.pdf0. 开启TPAD电源1. 在PC机运行DNW软件 tools目录2. 配置DNW软件 配置串口的波特率:115200 配置使用的串口号
4、:COM1如果使用笔记本(无物理串口,一根USB转串口的(一头是USB,一头是9针串口,针),安装驱动,在设备管理处虚拟出一个com口,如果com2或者com3或者com4,就直接选中即可,如果不是,重新改一下com即可)3.串口配置完成,选择串口菜单 Connect,dnw标题有变化, Com1,115200bps,说明串口就能收发数据4.PC机发现USB的新硬件,会要求安装驱动第一界面选择“从列表”第二界面选择“在搜索中” 点击“浏览”按钮 day01/ x210 usb Driver如果在设备管理器的通用串行总线控制器中出现“x210”,就说明驱动安装成功如果不出安装驱动界面,长按拨码开
5、关旁边的白色按键1秒。5.使用DNW通过usb向TPAD发送程序x210_usb.bin配置下载地址为0xd0020010IROM中的程序会接收自动调用x210_usb.binDnw标题条:usb OK-X-OK6.使用DNW通过usb发送u-boot.bin配置下载地址为0x23e00000IROM中的程序会接收自动调用u-boot.bin此时会在界面中出现打印信息,就按“空格键”,让其停在tarena #提示符下7.通过已经运行的u-boot.bin程序,执行烧写任务,烧写NandFlash的命令tarena # dnw 0x20008000tarena # nand erase 0x0
6、0x100000tarena# nand write 0x20008000 0x0 0x1000008.断电9.调整拨码开关(Nand Flash 启动) 1-ON 2-OFF 3-OFF 4-OFF10.重新开TPAD0xd0020010 x210_usb.bin0x23e00000 u-boot.bin0x20008000 u-boot.bin向Nand Flash烧写了u-boot.bin拨码开关拨至从Nand Flash启动,敲击“空格”,进入u-boot.bin的shell下:tarena#至此,我们运行环境已经建立好0xd002 0010 x210_usb.bin0x23e0 00
7、00 u-boot.bin(初始化)0x2000 8000 u-boot.bin这几个地址都是内存地址内存0xd0020010 CPU内部SRAM (iRAM)0x23e00000 0x20008000都是外接内存DDRII的地址(s5pv210只能寻址1.5G的外接内存)u-boot.bin引导程序bootloder1. 初始化硬件设备,软件环境2. shell功能(空格键)3. 启动内核烧写Nand Flash的命令Tarena# dnw 20008000Tarena# nand erase 0 100000Tarena# nand write 20008000 0 100000擦除Nan
8、d Flash 命令 起始地址 大小nand erase 0 100000烧写Nand Flash 命令 内存地址 起始地址 大小nand write 20008000 0 100000RAM随机存储器掉电丢失 SRAM DRAM SRAM 静态RAM 接通电源以后,就能用 不需要动态刷新,就可以工作 SRAM访问速度快 容量小,价格高 DRAM 动态RAM 接通电源后,需要周期性的刷新电流 初始化DRAM控制器(在CPU内部) 访问速度没有SRAM快 成本低,容量大TPAD的运行环境已经安装交叉编译器gccnmreadelfobjdumpstrip基于X86平台的编译器安装交叉编译器ARM平
9、台设置ubuntu与windows之间共享文件夹:VMware-settings-options-share folder -add-选中ftp(arm)路径-设置完毕cd /mnt/hgfs/arm(与设置时名称一致)1.找了目录/opt,解压缩编译器压缩包cd /optsudo tar jxf /mnt/hgfs/arm/arm-gcc-compiler/arm-2009q3.tar.bz2/加压缩编译器的软件包2.配置环境变量,并使其生效 cd /home/tarena vi .bashrc PATH=/opt/arm-2009q3/bin:$PATH:. 保存退出 source .ba
10、shrc arm-linux-gcc -vgcc version 4.4.1 (Sourcery G+ Lite 2009q3-67)cd /home/tarenamkdir testvi test.c#include int main(void) printf(“nHello!n”); return 0;gcc -o test test.cfile testELF 32位小端格式可执行文件(必须有操作系统的情况下,才能执行),执行硬件平台是intel 80386,Linux操作系统,动态链接(使用了动态库)arm-linux-gcc -o test-arm test.cfile test-a
11、rmELF 32ELF 32位小端格式可执行文件(必须有操作系统的情况下,才能执行),执行硬件平台是ARM,Linux操作系统,动态链接(使用了动态库)如果在当前PC环境运行test-arm是错误,无法运行。arm-linux-nm -an test-armtest.sym生成符号表,地址,arm-linux-objdump -d test-armtest-arm.sarm-linux-objcopy -O binary test-arm test-arm.binarm-linux-readelf -a test-armtest.txtarm-linux-gcc 编译源文件,生成ELF格式可执行文件arm-linux-nm 生成符号表arm-linux-readelf 读ELF格式文件,查看信息arm-linux-objcopy文件格式转换arm-linux-objdump生成反汇编文件
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1