jz2440裸机开发与分析: 点亮LED灯之C语言3

发布者:王大雷最新更新时间:2021-09-13 来源: eefocus关键字:jz2440  点亮LED灯 手机看文章 扫描二维码
随时随地手机看文章

对于之前提出了栈这一概念下面我们要提出问题:

1.为何要使用栈

答:c函数要用

2.如何使用栈

答:a.保存局部变量 b.保存lr等寄存器

3.调用者如何传参数给被调用者


start.s

.text

.global _start


_start:


/* 设置内存: sp 栈 */

ldr sp, =4096  /* nand启动 */

// ldr sp, =0x40000000+4096  /* nor启动 */


mov r0, #4

bl led_on


ldr r0, =100000

bl delay


mov r0, #5

bl led_on


halt:

b halt

c代码

void delay(volatile int d)

{

while (d--);

}

int led_on(int which)

{

unsigned int *pGPFCON = (unsigned int *)0x56000050;

unsigned int *pGPFDAT = (unsigned int *)0x56000054;

if (which == 4)

{

/* 配置GPF4为输出引脚 */

*pGPFCON = 0x100;

}

else if (which == 5)

{

/* 配置GPF5为输出引脚 */

*pGPFCON = 0x400;

}

/* 设置GPF4/5输出0 */

*pGPFDAT = 0;

return 0;

}


传参数mov r0, #4或 mov r0, #5 注意:r0-r3 为参数/结果寄存器

4.被调用者如何传参数给调用者

5.如何从栈中恢复那些寄存器


关键字:jz2440  点亮LED灯 引用地址:jz2440裸机开发与分析: 点亮LED灯之C语言3

上一篇:jz2440裸机开发与分析: 点亮LED灯之C语言2
下一篇:jz2440裸机开发与分析:串口编程2

推荐阅读最新更新时间:2024-11-09 14:46

1_jz2440在linux下烧写裸机程序
常用的烧写方法有: 1.使用并口工具烧写:接线(参考百问网JZ2440V2开发板使用手册),使用oflash烧写(速度比较慢),可烧写.bin文件,从新上电观察效果。可烧写u_boot。 2.使用openJTAG烧写,接线,使用oflash烧写(oflash烧写完后,会复位开发板)。 3.使用Jlink烧写,请看如何烧写S3C2440裸板程序:JLink只支持烧写Nor Flash,不支持Nand Flash。 所以:选择J-link烧写u-boot 这是烧写代码的基础,因为开发板j-link不支持烧写nand-flash 但是烧写特质的u-boot里面有集成了串口,可以利用串口烧写nand flash。 所以j-link烧写u-
[单片机]
1_jz2440在linux下烧写裸机程序
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved