历史上的今天
返回首页

历史上的今天

今天是: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段的地址(指针)。



推荐阅读

史海拾趣

CDI-DIODE公司的发展小趣事

在电子行业的早期,CDI-DIODE公司以其精湛的技术研发能力崭露头角。公司通过不断投入研发,成功开发出一款高效能、低成本的二极管产品,迅速占领了市场份额。这一技术突破不仅提升了公司的竞争力,也为整个电子行业带来了革命性的变化。

Doodle Labs公司的发展小趣事

随着技术的不断进步和市场的不断变化,Doodle Labs意识到单一产品无法满足多样化的客户需求。因此,公司开始加大研发投入,不断推出新的产品线。其中,最为引人注目的是一款名为Helix的六波段智能无线电产品,它能够在1625-2500MHz的频率范围内工作,为无人机提供全方位的通信支持。这款产品一经推出就受到了市场的热烈欢迎,Doodle Labs也因此获得了更多的关注和认可。

Guerrilla RF公司的发展小趣事
定期备份硬盘中的重要数据,以防数据丢失或损坏。
Coleman Cable Inc公司的发展小趣事

品质一直是Coleman Cable的生命线。公司建立了严格的质量控制体系,从原材料采购、生产过程到成品检验,每一个环节都严格把关。这种对品质的执着追求,使得Coleman Cable的产品在市场上享有良好的声誉。同时,公司还积极听取客户反馈,不断改进产品和服务,赢得了客户的信赖和忠诚。

ECLIPTEK公司的发展小趣事

随着公司规模的扩大和订单量的增加,ECLIPTEK面临着越来越大的供应链管理挑战。为了应对这些挑战,公司投入大量资源优化供应链管理,引入先进的供应链管理系统和自动化生产设备。通过提高生产效率和降低生产成本,ECLIPTEK成功地保持了其在市场上的竞争优势。

Fair Rite公司的发展小趣事

随着全球进入数字化、网络化、智能化时代,电子元器件市场发生了深刻的变化。Fair Rite积极应对市场变化,通过技术创新和产品研发,不断推出适应新需求的产品。例如,公司针对EMF/EMI干扰较严重或容易出现导漏流问题的情况,推出了EMI抑制铁芯线圈(SM-BL系列),帮助客户节省PCB空间并降低干扰信号。同时,Fair Rite还注重满足客户的性价比需求,为每个新产品进行定制化设计和质量验证(遵循ISO9001:2008标准),确保其在不同应用场景下稳定可靠。

这些故事展示了Fair Rite在电子行业中不断发展壮大的历程。通过不断创新、拓展市场和提升品质,Fair Rite已经成为电子行业中的佼佼者之一。

问答坊 | AI 解惑

请问后缀为PCB的文件用什么软件打开呢

请问后缀为PCB的文件用什么软件打开呢请问后缀为PCB的文件用什么软件打开呢 谢谢了…

查看全部问答>

程序滤波(很多信号采集实用)

1、限幅滤波法(又称程序判断滤波法)     A、方法:         根据经验判断,确定两次采样允许的最大偏差值(设为A)         每次检测到新值时判断:    &n ...…

查看全部问答>

飞凌S3C2440开发板路由实验代码

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 功能跟踪一下程序,比如定位一个函数或 ...…

查看全部问答>

请教一个电路

    各位大大,我有一块GR47模块,想做一个最简单的外围电路,只要SIM卡槽和一些必要电路。用串口和PC连,可以发彩信。。。哪位可以告诉我这个电路可以怎么做啊?…

查看全部问答>

在手机上,如何实现自己的软件中嵌入摄像头功能,

请问大家-有没有从事过在自己的软件中嵌入摄像头功能,就是自己的软件能够同过手机的摄像头照相,并且存储,而不是用手机自带的照相机。 有这方面的书也可以,大家介绍下吧,急用。 …

查看全部问答>

大侠帮忙

现在小弟我手上有款ARM开发板、是周立功出的。型号是easyarm2104 但是所有相关的资料全丢了。有哪位大侠有的,能共享下吗?不胜感激。…

查看全部问答>

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 - ...…

查看全部问答>

5438与仿真器终于连上了

可以连上,必须把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启动串口不出现任何信息。有没有人知道是哪里出了问题,急求大家的帮助,不甚 ...…

查看全部问答>