历史上的今天
今天是:2025年04月26日(星期六)
2019年04月26日 | 2440裸板程序之点灯
2019-04-26 来源:eefocus
LED对应的引脚是GPF4、GPF5、GPF6。
使用的编译器为arm-linux-gcc-4.5.1。
包括四个文件head.S main.c main.lds Makefile。
head.S
.text
.global _start
_start:
ldr r0, =0x53000000 @Close WATCHDOG
mov r1, #0x0
str r1, [r0]
ldr sp, =1024*4
ldr lr,=loop
bl main @Call C
loop:
b loop
main.c
#define GPFCON (*(volatile unsigned long *)0x56000050)
#define GPFDAT (*(volatile unsigned long *)0x56000054)
#define GPF4_out (1<<(4*2))
#define GPF5_out (1<<(5*2))
#define GPF6_out (1<<(6*2))
#define GPF7_out (1<<(7*2))
void wait(volatile unsigned long dly)
{
for(; dly > 0; dly--);
}
int main(void)
{
unsigned long i = 0;
GPFCON = GPF4_out|GPF5_out|GPF6_out; //Configure the gpio of led
while(1){
wait(30000);
GPFDAT = (~(i<<4)); //Turn
if(++i == 8)
i = 0;
}
return 0;
}
man.lds
SECTIONS {
first 0x00000000 : { head.o main.o}
//second 0x30000000 : AT(1024) { main.o }
}
Makefile
objs = head.o main.o
all: $(objs)
arm-linux-ld -T main.lds $^ -o main.elf
arm-linux-objcopy -O binary -S main.elf main.bin
arm-linux-objdump -D main.elf > main.dis
clean:
rm -f *.bin $(objs) *.elf *.dis
%.o : %.c
arm-linux-gcc -march=armv4 -c -o $@ $<
%.o : %.S
arm-linux-gcc -march=armv4 -c -o $@ $<
PS:
在c文件中声明int a = 3;
在s文件中声明.long a,那么这个地址存放的就是a在data段的地址(指针)。
上一篇:2440裸板程序之代码重定位
下一篇:关于ARM的异步总线和同步模式
史海拾趣
|
PS:本文转自 飞凌嵌入式技术交流群 这个是由群里一些工程师朋友做的小实验,可以作为参考。 嵌入式Linux简单路由实验 本实验所用硬件平台为飞凌(www.witech.com.cn)TE2440V2型开发板;该开发板上有两个网卡芯片,分别为C ...… 查看全部问答> |
|
关于WINCE6.0 VS2005 “go to definition ”功能 无法定位相关内容 关于WINCE6.0 VS2005 “go to definition ”功能 无法定位相关内容 大家好!向大家请教一个问题: 我现在装了VS2005 打开mini2440的BSP包(缺省内核工程),可以编译内核通过。 我想用go to definition 功能跟踪一下程序,比如定位一个函数或 ...… 查看全部问答> |
|
请问大家-有没有从事过在自己的软件中嵌入摄像头功能,就是自己的软件能够同过手机的摄像头照相,并且存储,而不是用手机自带的照相机。 有这方面的书也可以,大家介绍下吧,急用。 … 查看全部问答> |
|
EVC3.0+PPC202程序编译出错,关于StdAfx.sbr Compiling resources... Compiling... Error spawning clarm.exe Creating browse info file... BSCMAKE: error BK1506 : cannot open file \'.\\ARMRel\\StdAfx.sbr\': No such file or directory Error executing bscmake.exe. Main.exe - ...… 查看全部问答> |
|
可以连上,必须把JTAG口RST脚上的电容拿掉,但又碰到了新问题:在线仿真5438时速度极慢,下载操作需1分钟左右,执行一个单步需十几秒,执行一次复位需半分钟,运算结果倒是正确的。iar是4.20.1版,操作系统是vista,仿真器是USB型的LSD-FET430UIF, ...… 查看全部问答> |
|
急求助:Linux无法从NFlash(K9F1208U0A)启动 自己开了一个ARM架构板, CPU: S5PC100, SDRAM: K4T1G164QQ(两颗),Nand flash: K9F1208U0A。现在系统能从SD卡启动,对FLASH擦除操作后返回OK,但将SD卡取后,从FLASH启动串口不出现任何信息。有没有人知道是哪里出了问题,急求大家的帮助,不甚 ...… 查看全部问答> |




