嵌入式C编程11C编写裸机程序.ppt_第1页
嵌入式C编程11C编写裸机程序.ppt_第2页
嵌入式C编程11C编写裸机程序.ppt_第3页
嵌入式C编程11C编写裸机程序.ppt_第4页
嵌入式C编程11C编写裸机程序.ppt_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C编写裸机程序 课程安排 n裸机开发板环境 n裸机硬件接口 n裸机驱动程序 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 路立体声音频输出接口,一路麦克风接口 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、开发板系统启动过程: 引导程序 嵌入式系统组成 裸机 只有硬件部分,还未安装任何软件 -此时系统只是一堆废铁 软件 驱动硬件,为设备使用者提供服务,典型嵌入式软件层次划分 : 裸机程序 简单的嵌入式系统(如单片机系统)不配置OS层,程序需要自己始化硬 件环境来运行 ,称为裸机程序 裸机程序需要直接操作硬件设备 裸机程序一般采用少量汇编加C语言来编译,如PC的BOIS就是裸机程序 在嵌入式系统中,裸机程序由Bootloader来调度(当然也可以让裸机程序实现 自引导功能) 裸机交叉开发 在嵌入式开发过程中有宿主机和目标机的角色之分 宿主机(PC机)是编译嵌入式软件的计算机 目标机(开发板)是运行嵌入式软件的硬件平台 这里我们先联通PC机与开发板的串口和网络连接 裸机运行环境 1、连接好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内存起始地址 0x50000000地址内容 首先要在Linux宿主机上配置TFTP服务器: 详见“TFTP服务器配置”文档 裸机程序模板 1、汇编入口程序start.s 裸机程序模板 2、C入口程序:main.c 裸机程序模板 3、编译脚本:build.sh 直接输出到/tftpboot目录 裸机程序模板 4、从开发板下载main.bin 5、裸机运行 下载到0x50000000 调转到0x50000000执行程序 程序输出 课程安排 n裸机开发板环境 n裸机硬件接口 n裸机驱动程序 LED与GPIO 1、LED是开发中最常用的状态指示设备 本开发板具有4 个用户可编程LED,它们直接与CPU的GPIO 相连接 2、GPIO(General-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、当某一管脚(nLed1-nLed4)置高:电路被切断,Led发光二 极管被熄灭 。 3、因此,驱动程序只要将GPIO管脚设置为输出,对某个 GPIO管脚置低、置高,就会控发光二极管的点亮和熄灭。 LED占用资源 相关寄存器 GPxCON用于选择引脚功能:配置成输入?输出? GPxDAT用于读/写引脚数据:输入/输出高电平?低电平? 另外,GPxUD用于确定是否使用内部上/下拉电阻 控制位定义 每四位对应一个引脚控制: 0000配置为输入,0001配置为输出 数据位定义 每1位对应一个引脚数据: 0输出低电平,1输出高电平 课程安排 n裸机开发板环境 n裸机硬件接口 n裸机驱动程序 驱动接口 1、相关寄存器定义 2、初始化函数 3、设置函数 驱动应用 1、流水灯程序 驱动应用 2、裸机程序延时处理 驱动

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论