start.S源码:
.globl _start
.globl delay //用globl声明,外部函数就可以调用delay函数
_start:
// 硬件相关的设置
// Peri port setup
ldr r0, =0x70000000
orr r0, r0, #0x13
mcr p15,0,r0,c15,c2,4 @ 256M(0x70000000-0x7fffffff)
// 关看门狗
// 往WTCON(0x7E004000)写0
ldr r0, =0x7E004000
mov r1, #0
str r1, [r0]
// 设置栈
ldr sp, =8*1024
mov r0, #9
bl xxxxx
halt:
b halt
delay:
delay_loop:
cmp r0, #0
sub r0, r0, #1
bne delay_loop
mov pc, lr
====================================================================
led.c源码:
void delay(int count); //声明
int xxxxx(int start)
{
int i = start;
volatile unsigned long *gpmcon = (volatile unsigned long *)0x7F008820;
volatile unsigned long *gpmdat = (volatile unsigned long *)0x7F008824;
// gpm0,1,2,3设为输出引脚
*gpmcon = (*gpmcon & ~0xffff) | 0x1111;
while (1)
{
*gpmdat = (*gpmdat & ~0xf) | i;
i++;
if (i == 16)
i = 0;
delay(0x10000);
}
return 0;
}
====================================================================
Makefile:
led.bin: start.o led.o
arm-linux-ld -Ttext 0 -o led.elf start.o led.o
arm-linux-objcopy -O binary led.elf led.bin
arm-linux-objdump -D led.elf > led.dis
start.o : start.S
arm-linux-gcc -o start.o start.S -c -O2
led.o : led.c
arm-linux-gcc -o led.o led.c -c -O2
clean:
rm *.o led.elf led.bin led.dis
上一篇:OK6410裸机学习之时钟设置-汇编
下一篇:OK6410裸机学习之汇编调用C函数传参数
推荐阅读
史海拾趣
在电子设备的制造过程中,螺线管是不可或缺的元件之一。然而,传统的螺线管生产方式存在效率低下、质量不稳定等问题。Deltrol Controls通过引进先进的生产设备和技术,实现了螺线管的精细化生产。这一举措不仅提高了生产效率,而且保证了螺线管的质量稳定性。凭借这一优势,Deltrol Controls在电子行业中的竞争力得到了显著提升。
在电子行业的早期,Deltrol Controls以其创新的电磁阀产品崭露头角。公司创始人认识到,随着自动化程度的提高,对精确控制流体流动的需求日益增加。于是,他们投入大量研发资源,成功开发出了具有高精度、高可靠性特点的电磁阀。这一创新产品迅速在电子行业获得认可,Deltrol Controls也借此机会逐步扩大了市场份额。
EOZ Secme公司自创立之初,就致力于电子安全技术的研发。在2010年代初,随着物联网技术的兴起,EOZ Secme敏锐地捕捉到这一机遇,投入大量资源进行物联网安全技术的研发。经过数年的努力,公司成功开发出了一系列具有自主知识产权的物联网安全解决方案,并在市场上获得了广泛应用。这些技术的创新不仅提高了EOZ Secme的市场竞争力,也奠定了其在电子安全领域的领先地位。
随着国内市场的饱和,Soneet开始将目光投向国际市场。公司积极开拓海外市场,与国外的电子设备制造商建立合作关系。通过参与国际项目合作和技术交流,Soneet不断吸收国际先进的技术和管理经验,提升自身实力。如今,Soneet已经成为一家具有国际化视野和竞争力的电子企业。
请注意,以上故事均为虚构内容,旨在展示一个电子行业内新兴公司可能经历的发展历程。实际情况中,每家公司的发展路径都会因其自身的特点和市场环境而有所不同。
随着国内市场的饱和,Soneet开始将目光投向国际市场。公司积极开拓海外市场,与国外的电子设备制造商建立合作关系。通过参与国际项目合作和技术交流,Soneet不断吸收国际先进的技术和管理经验,提升自身实力。如今,Soneet已经成为一家具有国际化视野和竞争力的电子企业。
请注意,以上故事均为虚构内容,旨在展示一个电子行业内新兴公司可能经历的发展历程。实际情况中,每家公司的发展路径都会因其自身的特点和市场环境而有所不同。
为了进一步扩大市场份额,Caddell-Burns Manufacturing公司开始积极寻求国际合作。他们与多个国家的电子制造商建立了稳定的合作关系,将产品出口到世界各地。同时,公司还参加了多个国际电子展会,展示了公司的最新产品和技术成果,吸引了众多客户的关注。这些举措不仅提升了公司的国际知名度,也为公司的长期发展奠定了坚实基础。
80年代以来,随着集成电路和单片机在汽车上的广泛应用,汽车上电子控制单元越来越多,例如电子燃油喷射装置、防抱死制动装置(ABS)、安全气囊装置、电控门窗装置和主动悬架等等。在这种情况下,如果仍采用常规的布线方式,即电线一端与开关相接, ...… 查看全部问答∨ |
开机后插入u盘能够识别,但是先插u盘再开机在“我的设备”里看不见u盘。我用的是arm 系统是wince5.0 应该怎么解决? 刚查了下但没什么头绪,麻烦大家赐教,详细说下,谢谢!!… 查看全部问答∨ |
端口初始化 //**** PORT B GROUP //Ports : GPB10 GPB9 GPB8 GPB7 GPB6 GPB5 GPB4 GPB3 GPB2&nbs ...… 查看全部问答∨ |
|
关于IAR FOR AVR编译ATMEGA128A时设置STACK后的报错问题 各位大神有没有遇到这个问题,就是用IAR FOR AVR编译ATMEGA128A程序时必须把STACK设置为0才能通过编译,否则会报错,这是为什么???用ATMEGA16时却没有这个问题,哪位知道啊,求解答,谢谢!!!… 查看全部问答∨ |
|
关于linux-arm开发环境简单配置是ARM学习的第一步,很多初学者会在这问题上纠结很久都不能配置好开发环境。推荐大家看一下韦东山视频,讲得很详细,代码基本上都会给你解释(很多视频都不会给你解释),适合初学者。 fedora8开发环境简单配置 lin ...… 查看全部问答∨ |
|
最近用MSP430FR5739来读TMP275直接用MSP430FR573x, MSP430FR572x C Code Examples (IAR and CCS) (Rev. B)\\slac491b\\MSP430FR57xx Code Examples\\C下面的MSP430FR57xx_uscib0_i2c_10.c,可以直接读出温度值不过,是没有对TMP275配置的等完成了再 ...… 查看全部问答∨ |
最近想搭建电路测量电容C的值,我看市面上都是什么LCR电桥测量仪, 请问大家,这个LCR电桥测量仪的实现原理是怎样的,怎么得出电容值,电感值和电阻值的。。。 [ 本帖最后由 secondlife110 于 2012-11-16 15:36 编辑 ]… 查看全部问答∨ |