ARM上裸奔的跑马灯程序

今天用优龙ST2410测试了一下在不进系统的情况下裸奔跑马灯程序。首先总结下在ARM板上裸奔程序的几种方法:既然要在ARM上裸奔,首先地让ARM板不进系统,方法是上电复位后选BIOS的最后一项:7 : Set AutoBoot parameter,1:linux 2:wince。第7选项要你输入上电复位后自动启动的系统,选择除1和2的的任意数字(比如3)这样系统上电后会始终停在BIOS界面,等待你选择进哪个操作系统,这样就使得ARM进入裸奔状态。 进入裸奔状态后测试程序的有如下几种方法: 1.ARM-JTAG调试代理的方法配置AXD在线调试程序 2.利用U-boot加载程序到SDRAM中运行。 3.利用SJF软件烧写程序到FLASH中。(原则上nand flash和nor flash都可以烧写)用户手册上说由于三星公司给的程序不完善最好不要烧写nor flash。 下面介绍用ARM-JTAG调试代理的方法配置AXD在线调试程序: 1.首先安装并运行ARM-JTAG 调试代理ARM9。通过调试代理检测arm9内核。为宿主机和目标板进行交互提供环境支持。 2.为ARM-JTAG 调试代理正确配置AXD DEBUGGER。 运行ADS1.2 软件中的调试软件——AXD Debugger,点击菜单options/Configure Target,在弹出的界面窗口中选择Remote_A.dll,然后点击按键Configure:在弹出的窗口中,点击“Select”按键,选择“ARM Ethernet driver”选项,再点击下面的“Configure”按键,在弹出的窗口中输入数字“127.0.0.1”并确认。这样就配置好了在线调试环境。关闭并重新启动AXD Debugger,点击菜单File/Load Image,找到您想调试的调试目标代码(*.axf 格式),打开它就启动目标代码下载,这时会出现进度条,下载完毕就可以单步或者全速调试了,调试过程中可以看CPU 各寄存器,也可以设置断点,可以单步,全速等等调试功能。 注意:AXD调试过程中,ARM-JTAG调试代理软件要始终开启,否则AXD这种会提示找不到目标设备。 2410的GPF4--GPF7分别接四个二极管。要控制二极管亮灭就是要控制GPF口,要控制GPF口就要了解与端口相关的几个寄存器:端口配置器(GPACON-GPHCON)在S3C2410 中,大部分的引脚是复用的。所以,对于每个引脚要求定义一个功能。端口控制寄存器(PnCON)定义每一个引脚的功能。如果GPF0-GPF7 和GPG0-GPG7 在掉电模式下被用做唤醒信号,这些端口必须在中断模式下被设置。端口数据寄存器(GPADAT-GPHDAT)如果端口配置为输出端口,数据能被写到PnDAT 对应的位。如果端口配置为输入端口,能从PnDAT 对应的位中读出数据。端口上拉寄存器(GPBUP-GPHUP)端口上拉寄存器控制着每个端口组的上拉寄存器的使能或禁止。当对应位为0,这个引脚的上拉寄存器是允许的。当为1 时,上拉寄存器是禁止的。 MISCELLANEOUS 控制寄存器这个寄存器控制数据端口的上拉寄存器﹑高阻状态﹑USB 通道以及CLKOUT 的挑选。外部中断控制寄存器(EXTINTN) 24 个外部中断由多种方式来请求。EXTINTn 寄存器可以配置外部中断的请求信号的触发方式为低电平触发,高电平触发,下降沿触发,上升沿触发以及双边沿触发。 最后是实现跑马灯的一段程序代码: /* 这是一个利用GPIO做跑马灯的程序 /* GPIO1到GPIO4分别对应2410的GPF4到GPF7 */ #include "2410lib.h" #define GPFCON (*(volatile unsigned *)0x56000050) //Port F control #define GPFDAT (*(volatile unsigned *)0x56000054) //Port F data #define GPFUP (*(volatile unsigned *)0x56000058) //Pull-up control F int Main() { GPFCON=(GPFCON|0xFF00)&0xFFFF55FF;//GPF4--GPF7设置为output GPFUP|=0xFF00; //disable GPF pull up while(1) { int i=0; GPFDAT=(GPFDAT&0xFFFFFF0F)|0xE0; Delay(100); GPFDAT=(GPFDAT&0xFFFFFF0F)|0xD0; Delay(100); GPFDAT=(GPFDAT&0xFFFFFF0F)|0xB0; Delay(100); GPFDAT=(GPFDAT&0xFFFFFF0F)|0x70; Delay(100); } } 注意与单片机不同,裸跑程序还要把一些硬件初始化的头文件和函数包含进跑马灯程序所在的工程。否则程序无法运行。硬件初始化程序比较复杂,今天整了一天不是很懂,看来还要修炼。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值