打印

S3C2440裸奔篇之C代码点亮LED

[复制链接]
3055|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本部分有2个源文件,一个汇编文件,是工程的启动代码,另一个是C文件,是main函数部分。
;================================================
; crt.S
; 功能: 通过它转入C程序
;================================================
IMPORT main ; 声明C函数符号

CODE32
AREA    Init, CODE, READONLY
ENTRY

ldr r0, =0x53000000  ; WATCHDOG寄存器
mov r1, #0x0   
str r1, [r0]    ; 写入0,禁止WATCHDOG,否则CPU会不断重启

ldr sp, =1024*4   ; 设置栈。注意:不能超过4K,因为是在SRAM上运行
       ; NAND FLASH中的代码,在复位后,硬件自动将其复制到内部SRAM
      
bl main    ; 调用C函数
halt_loop
b halt_loop   

END
      
//============C代码部分=====================//
#define GPBCON  (*(volatile unsigned long *)0x56000010)
#define GPBDAT  (*(volatile unsigned long *)0x56000014)
#define GPB5_out  (1<<(5*2))
#define GPB6_out  (1<<(6*2))
#define GPB7_out  (1<<(7*2))
#define GPB8_out  (1<<(8*2))
void  wait(unsigned long dly)
{
for(; dly > 0; dly--);
}
int main(void)
{
GPBCON = GPB5_out|GPB6_out|GPB7_out|GPB8_out;  // 将LED1-4对应的GPB5/6/7/8四个引脚设为输出
while(1)
{
  GPBDAT = 0x00000000;  // 亮
  wait(30000);
  GPBDAT = 0xffffffff;  // 灭
  wait(30000);
}
return 0;
}

本代码用ADS编译完了后用超级终端+DNW烧入NAND FLASH,CPU复位后在内部内存SRAM上运行,因此在设置栈时要注意不要超过了4KB的大小。
在设置ADS的LINKER里面,RO应该设置为0x00000000.

相关帖子

沙发
afei9527| | 2011-9-13 12:23 | 只看该作者
at91rm9200 能这样玩吗

使用特权

评论回复
板凳
wqqw2044062| | 2011-9-16 18:26 | 只看该作者
我怎么编译不通过啊

使用特权

评论回复
地板
hys0401| | 2011-9-16 23:22 | 只看该作者
楼上的格式不对,前面要加TAB键的。

使用特权

评论回复
5
prodigals| | 2011-9-17 08:13 | 只看该作者
虽然没人顶,但我认为LZ好帖,正需要这样的代码参考,可以+个好友,指点交流下吗??

使用特权

评论回复
6
prodigals| | 2011-9-17 08:14 | 只看该作者
忘记说了  我的QQ475959111

使用特权

评论回复
7
prodigals| | 2011-9-17 08:44 | 只看该作者
怎么  编译好多错误啊

_TQD5OJ}_WKF4%}}RL5[{@I.jpg (101.46 KB )

_TQD5OJ}_WKF4%}}RL5[{@I.jpg

使用特权

评论回复
8
wsj19850216| | 2011-9-17 09:22 | 只看该作者
不了解啊   学习

使用特权

评论回复
9
wqqw2044062| | 2011-9-17 12:06 | 只看该作者
求LZ的QQ。

使用特权

评论回复
10
linas| | 2011-9-19 17:04 | 只看该作者
受教中。

使用特权

评论回复
11
q631951221| | 2011-9-19 19:35 | 只看该作者
简捷易懂,很好的代码 谢谢了!

使用特权

评论回复
12
圈圈虫1989| | 2011-9-19 23:06 | 只看该作者
ARM的汇编语言通用吗?请问

使用特权

评论回复
13
a08715| | 2014-7-6 16:13 | 只看该作者
此代码是韦东山的。我写了但是没有轮流点亮的现象,只是停留在一盏灯亮的状态,烦恼中

使用特权

评论回复
14
lilychinese| | 2014-7-9 17:44 | 只看该作者
感觉代码没问题啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

67

帖子

1

粉丝