欢迎来到天天文库
浏览记录
ID:39587092
大小:1.46 MB
页数:37页
时间:2019-07-06
《嵌入式C编程11C编写裸机程序》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C编写裸机程序课程安排n裸机开发板环境n裸机硬件接口n裸机驱动程序6410开发板采用SamsungS3C6410为微处理器1.CPU处理器SamsungS3C6410A,ARM1176JZF-S核,运行主频533MHz,最高667Mhz2.SDRAM内存在板128MB/256MBDDRRAM,32bit数据总线6410开发板底板+核心板核心板接口资源•1个100M以太网RJ-45接口(采用DM9000芯片)•4个串行口•1个Jtag接口•1个miniUSBSlave-OTG2.0接口•1个SD卡存储接口•1路
2、立体声音频输出接口,一路麦克风接口•4USERLeds•8个侧立按键接口布局启动模式6410开发板选择了其中两种启动方式,nandflash启动和SD卡启动:•拨动S2开关到SDBOOT标识一侧时,系统将从SD卡启动:引导程序固化在SD卡中•拨动S2开关到Nand标识一侧时,系统将从NandFlash启动:引导程序固化在Nand中引导程序1、引导程序(开机第一个运行的程序),固化在固件(SD卡/Flash)上,大多嵌入式系统选用使用开源Uboot2、Uboot运行起来后会自动加载运行OS,随后执行APP3、开
3、发板系统启动过程:嵌入式系统组成裸机只有硬件部分,还未安装任何软件--此时系统只是一堆废铁软件驱动硬件,为设备使用者提供服务,典型嵌入式软件层次划分:裸机程序简单的嵌入式系统(如单片机系统)不配置OS层,程序需要自己始化硬件环境来运行,称为裸机程序l裸机程序需要直接操作硬件设备l裸机程序一般采用少量汇编加C语言来编译,如PC的BOIS就是裸机程序l在嵌入式系统中,裸机程序由Bootloader来调度(当然也可以让裸机程序实现自引导功能)裸机交叉开发在嵌入式开发过程中有宿主机和目标机的角色之分•宿主机(PC机)
4、是编译嵌入式软件的计算机•目标机(开发板)是运行嵌入式软件的硬件平台这里我们先联通PC机与开发板的串口和网络连接裸机运行环境1、连接好PC机与开发板串口,在putty启动串口终端裸机运行环境2、从NandFlash启动,终止OS加载过程,进入Uboot菜单3秒内按下任意键裸机运行环境3、进入Uboot命令行shell进入shell4、检查环境配置显示环境配置服务器IP地址裸机运行环境5、将Linux宿主机eth0配置为serverip6、连接好PC机与开发板网线,确认网络联通从开发板pingPC机网络联通裸机
5、运行环境7、确认在开发板能通过tftp服务下载在Linux宿主机上的文件首先要在Linux宿主机上配置TFTP服务器:Linux宿主机/tftpboot目录详见“TFTP服务器配置”文档测试文件内容下载到0x50000000内存起始地址0x50000000地址内容裸机程序模板1、汇编入口程序start.s裸机程序模板2、C入口程序:main.c裸机程序模板3、编译脚本:build.sh直接输出到/tftpboot目录裸机程序模板4、从开发板下载main.bin下载到0x500000005、裸机运行调转到0x5
6、0000000执行程序程序输出课程安排n裸机开发板环境n裸机硬件接口n裸机驱动程序LED与GPIO1、LED是开发中最常用的状态指示设备本开发板具有4个用户可编程LED,它们直接与CPU的GPIO相连接2、GPIO(General-PurposeIOports),通用IO口在数字电路中,往往CPU会引出一些通用的管脚某管脚可以输出逻辑电平来表示0、1,用于控制数字开关:如继电器等有些管脚也能接收输入:如数字报警器的输入等这些管脚不是针对特定硬件进行设计,因此称为通用IO脚,即GPIOLED与GPIO3、LED
7、与GPIO连接:参考主板原理图Tiny6410-1107.pdfLED1~LED4对应的GPK4~GPK7引脚LED控制原理1、当某一管脚(nLed1-nLed4)置低:电路接地,跟3.3v电源之间有压差,Led电路被导通,电流流经Led发光二极管使其点亮。2、当某一管脚(nLed1-nLed4)置高:电路被切断,Led发光二极管被熄灭。3、因此,驱动程序只要将GPIO管脚设置为输出,对某个GPIO管脚置低、置高,就会控发光二极管的点亮和熄灭。LED占用资源相关寄存器GPxCON用于选择引脚功能:配置成输入?
8、输出?GPxDAT用于读/写引脚数据:输入/输出高电平?低电平?另外,GPxUD用于确定是否使用内部上/下拉电阻控制位定义每四位对应一个引脚控制:0000配置为输入,0001配置为输出数据位定义每1位对应一个引脚数据:0输出低电平,1输出高电平课程安排n裸机开发板环境n裸机硬件接口n裸机驱动程序驱动接口1、相关寄存器定义2、初始化函数3、设置函数驱动应用1、流水灯程序驱动应用2、裸机程序延时处理驱动
此文档下载收益归作者所有