历史上的今天
今天是:2024年09月13日(星期五)
2021年09月13日 | jz2440裸机开发与分析: 点亮LED灯之C语言3
2021-09-13 来源:eefocus
对于之前提出了栈这一概念下面我们要提出问题:
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.如何从栈中恢复那些寄存器
史海拾趣
|
电子技术入门学习内容综述 学好电子技术,打好扎实的基础需要掌握哪些知识?初学者在学习之初能有所了解,学习就会心中有数,有的放矢。 一、元器件 1.识别 (1)认识元器件(实物的外形特征) (2)识别元器件引脚(极性,引脚排列顺序) ...… 查看全部问答> |
|
LED是发光二极管Light Emitting Diode的英文缩写。 LED应用可分为两大类:一是LED单管应用,包括背光源LED,红外线LED等;另外就是LED显示屏,目前,中国在LED基础材料制造方面与国际还存在着一定的差距,但就LED显示屏而言,中国的设计和生产技术 ...… 查看全部问答> |
|
非隔离式LED日光灯驱动常见问题 欢迎探讨;(SMD802) 之前调过一款SMD802; 常见问题如下 1, 散热问题 2,日光灯安装时机壳漏电问题(市场上都存在这个问题) 3,工作人员在换灯管时,未断开关情况下,直接更换灯管时导致LED烧坏。。。 各位在调试SMD802过程中,遇到何种问题欢迎探讨; 另外有谁 ...… 查看全部问答> |
|
我要做几个无线的传感器节点,新手初入门,不知道有没有专用芯片可以探测两个节点之间的距离的,如果有的话,请告诉我这个芯片的名字,感激不尽,在google,百度搜一堆都没结果!… 查看全部问答> |
|
#define ROUND_UP(x, align) (((int) (x) + (align - 1)) & ~(align - 1)) #define ROUND_DOWN(x, align) ((int)(x) & ~(align - 1)) #define ALIGNED(x, align) &nb ...… 查看全部问答> |
|
ARM7(单片机)LPC2XXX一个芯片同时烧录两段独立的工程主函数代码 在用LPC2378(LPC2XXX系列相同)做实验,想用KEIL FOR ARM做两个工程,也就是说有两个启动代码,有两个C语言main主函数,想在编译后分别烧录到同一芯片的不同地址处。 启动时先启动第一段代码,从第一段代码再跳到另一段代码处。 请高手们指点一 ...… 查看全部问答> |
|
哪位有WINCE远程调试的工具: 远程调用评测程序(Remote Call Profiler) 远程内核跟踪程序(Remote Kernel Tracker) 远程系统信息(Remote System Information) 远程性能监视程序(Remote Performance Monitor) 麻烦您发到我的邮箱 xia ...… 查看全部问答> |
|
一、管理职位 技术部主任 1.硕士以上学历,计算机、集成电路设计或嵌入式系统相关专业; 2.5年以上技术管理和项目管理经验; 3.有相关产品的设计经验; 4.能够全面制定公司的产品计划; 5.能够带领团队成功实施产品项目; 6.具有较强的组织 ...… 查看全部问答> |
|
STM32芯片的供电电压一般为3.3V。现在系统外部提供24V直流电源。 我需要将24V的电源转换为3.3V,不知道选什么样的电源比较好? 初步考虑使用TI的隔离式 DC DC 转换器,将24V直接变为3.3V不知道是否可行? 希望大家能给个意见。… 查看全部问答> |




