完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我仿照韦老师的裸机led点灯程序,写了一个在mini2440板子上的点灯程序。先是在ADS集成开发环境下写的,两个源文件,start.S和main.c,代码如下:
源文件start.S: IMPORT main AREA Init,CODE,READONLY ENTRY CODE32 START LDR R0, =0x53000000 MOV R1, #0 STR R1, [R0] LDR SP, =4096 BL main halt B halt END 源文件main.c: #define GPBCON (*(volatile unsigned long *)0x56000010) #define GPBDAT (*(volatile unsigned long *)0x56000014) void delay(void) { volatile unsigned int i,j; for(i=0;i<20;i++) for(j=0;j<10000;j++); } int main(void) { GPBCON=0x00015400; while(1) { GPBDAT=0x00000000; //4盏灯全亮 delay(); GPBDAT=0x000001E0; //4盏灯全灭 delay(); } return 0; } ADS编译环境里设置链接地址为0x00000000,入口地址也为0x00000000,然后将编译出来的bin文件烧写到板子上的nandflash中,上电运行,led灯闪烁正常。 然后我又写了一个,这次是在Linux下用ARM-linux-gcc编译,代码基本差不多,我也贴一下: 源文件start.S: .text .global _start _start: ldr r0, =0x53000000 mov r1, #0 str r1, [r0] ldr sp, =4096 bl main halt: b halt 源文件main.c: #define GPBCON (*(volatile unsigned long *)0x56000010) #define GPBDAT (*(volatile unsigned long *)0x56000014) void delay(void) { volatile unsigned int i,j; for(i=0;i<20;i++) for(j=0;j<10000;j++); } int main(void) { GPBCON=0x00015400; while(1) { GPBDAT=0x00000000; //4盏灯全亮 delay(); GPBDAT=0x000001e0; //4盏灯全灭 delay(); } return 0; } Makefile文件: ledflash.bin:main.o start.o arm-linux-ld -Ttext=0 main.o start.o -o ledflash.elf arm-linux-objcopy -I elf32-littlearm -O binary ledflash.elf ledflash.bin arm-linux-objdump -D ledflash.elf > ledflash.dis main.o:main.c arm-linux-gcc -c main.c -o main.o start.o:start.S arm-linux-as start.S -o start.o clean: rm *.o ledflash.bin ledflash.elf ledflash.dis 把这个代码放到Linux下交叉编译后,将生成的bin文件烧写到板子上的nandflash中运行,可是led灯并没闪烁,而是一直灭着的。 这两个代码是一样的,只是一个是在ADS下编译出可执行文件,一个在Linux下编译出可执行文件,为什么在Linux下编译出来的就不行呢? |
|
相关推荐
3个回答
|
|
|
|
|
|
|
|
学习了
|
|
|
|
只有小组成员才能发言,加入小组>>
197个成员聚集在这个小组
加入小组为什么点亮LED的例子放在NORFlash上跑会出现奇怪的现象?
2187 浏览 6 评论
1987 浏览 5 评论
韦东山老师推出的《玩转ARM裸机实战》课程将帮你以上问题一扫而光!
4545 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 09:15 , Processed in 0.798199 second(s), Total 83, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号