嵌入式C编程11C编写裸机程序.ppt

上传人:本田雅阁 文档编号:3483440 上传时间:2019-09-02 格式:PPT 页数:37 大小:2.72MB
返回 下载 相关 举报
嵌入式C编程11C编写裸机程序.ppt_第1页
第1页 / 共37页
嵌入式C编程11C编写裸机程序.ppt_第2页
第2页 / 共37页
嵌入式C编程11C编写裸机程序.ppt_第3页
第3页 / 共37页
嵌入式C编程11C编写裸机程序.ppt_第4页
第4页 / 共37页
嵌入式C编程11C编写裸机程序.ppt_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《嵌入式C编程11C编写裸机程序.ppt》由会员分享,可在线阅读,更多相关《嵌入式C编程11C编写裸机程序.ppt(37页珍藏版)》请在三一文库上搜索。

1、C编写裸机程序,课程安排,裸机开发板环境 裸机硬件接口 裸机驱动程序,6410开发板,采用Samsung S3C6410 为微处理器 1. CPU 处理器 Samsung S3C6410A,ARM1176JZF-S核,运行主频533MHz,最高667Mhz 2. SDRAM 内存 在板128MB/256MB DDR RAM,32bit 数据总线,6410开发板,底板+核心板,核心板,接口资源,1 个100M 以太网RJ-45 接口(采用DM9000 芯片) 4 个串行口 1 个Jtag接口 1 个mini USB Slave-OTG 2.0接口 1 个SD 卡存储接口 1 路立体声音频输出接口

2、,一路麦克风接口 4 USER Leds 8个侧立按键,接口布局,启动模式,6410开发板选择了其中两种启动方式,nand flash启动和SD卡启动: 拨动S2 开关到SDBOOT标识一侧时,系统将从SD卡启动:引导程序固化在SD卡中 拨动S2 开关到Nand标识一侧时,系统将从Nand Flash 启动:引导程序固化在Nand中,1、引导程序(开机第一个运行的程序),固化在固件(SD卡/Flash)上,大多 嵌入式系统选用使用开源Uboot 2、Uboot运行起来后会自动加载运行OS,随后执行APP 3、开发板系统启动过程:,引导程序,嵌入式系统组成,裸机,只有硬件部分,还未安装任何软件

3、-此时系统只是一堆废铁,软件,驱动硬件,为设备使用者提供服务,典型嵌入式软件层次划分:,裸机程序,简单的嵌入式系统(如单片机系统)不配置OS层,程序需要自己始化硬件环境来运行 ,称为裸机程序 裸机程序需要直接操作硬件设备 裸机程序一般采用少量汇编加C语言来编译,如PC的BOIS就是裸机程序 在嵌入式系统中,裸机程序由Bootloader来调度(当然也可以让裸机程序实现自引导功能),裸机交叉开发,在嵌入式开发过程中有宿主机和目标机的角色之分 宿主机(PC机)是编译嵌入式软件的计算机 目标机(开发板)是运行嵌入式软件的硬件平台,这里我们先联通PC机与开发板的串口和网络连接,裸机运行环境,1、连接好

4、PC机与开发板串口,在putty启动串口终端,裸机运行环境,2、从Nand Flash启动,终止OS加载过程,进入Uboot菜单,3秒内按下任意键,裸机运行环境,3、进入Uboot命令行shell 4、检查环境配置,进入shell,显示环境配置,服务器IP地址,裸机运行环境,5、将Linux宿主机eth0配置为serverip 6、连接好PC机与开发板网线,确认网络联通,从开发板ping PC机,网络联通,裸机运行环境,7、确认在开发板能通过tftp服务下载在Linux宿主机上的文件,Linux宿主机/tftpboot目录,测试文件内容,下载到0x50000000内存起始地址,0x500000

5、00地址内容,首先要在Linux宿主机上配置TFTP服务器: 详见“TFTP服务器配置”文档,裸机程序模板,1、汇编入口程序start.s,裸机程序模板,2、C入口程序:main.c,裸机程序模板,3、编译脚本:build.sh,直接输出到/tftpboot目录,裸机程序模板,4、从开发板下载main.bin 5、裸机运行,下载到0x50000000,调转到0x50000000执行程序,程序输出,课程安排,裸机开发板环境 裸机硬件接口 裸机驱动程序,LED与GPIO,1、LED是开发中最常用的状态指示设备 本开发板具有4 个用户可编程LED,它们直接与CPU的GPIO 相连接 2、GPIO(G

6、eneral-Purpose IO ports), 通用IO口 在数字电路中,往往CPU会引出一些通用的管脚 某管脚可以输出逻辑电平来表示0、1,用于控制数字开关:如继电器等 有些管脚也能接收输入:如数字报警器的输入等 这些管脚不是针对特定硬件进行设计,因此称为通用IO脚,即GPIO,LED与GPIO,3、LED与GPIO连接:参考主板原理图Tiny6410-1107.pdf LED1LED4对应的GPK4GPK7 引脚,LED控制原理,1、当某一管脚(nLed1-nLed4)置低:电路接地,跟3.3v电源之间有压差,Led电路被导通,电流流经Led发光二极管使其点亮。 2、当某一管脚(nLe

7、d1-nLed4)置高:电路被切断,Led发光二极管被熄灭 。 3、因此,驱动程序只要将GPIO管脚设置为输出,对某个GPIO管脚置低、置高,就会控发光二极管的点亮和熄灭。,LED占用资源,相关寄存器,GPxCON用于选择引脚功能:配置成输入?输出? GPxDAT用于读/写引脚数据:输入/输出高电平?低电平? 另外,GPxUD用于确定是否使用内部上/下拉电阻,控制位定义,每四位对应一个引脚控制: 0000配置为输入,0001配置为输出,数据位定义,每1位对应一个引脚数据: 0输出低电平,1输出高电平,课程安排,裸机开发板环境 裸机硬件接口 裸机驱动程序,驱动接口,1、相关寄存器定义 2、初始化函数 3、设置函数,驱动应用,1、流水灯程序,驱动应用,2、裸机程序延时处理,驱动应用,3、编译程序 4、下载到开发板 5、执行裸机程序 在开发板上可观察到LED1-4流水闪烁!,上机实验,1、将课堂上实现“LED流水灯”裸机程序下载到开发板上运行 2、扩展练习:怎样做到LED1,2与LED3,4交替闪烁?,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1