历史上的今天
返回首页

历史上的今天

今天是: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.如何从栈中恢复那些寄存器


推荐阅读

史海拾趣

Cressall Power Resistors公司的发展小趣事

Cressall一直注重企业文化建设和团队建设。公司倡导“创新、协作、诚信、责任”的核心价值观,鼓励员工勇于创新、敢于担当。同时,公司还加强了对员工的培训和激励,为员工提供了良好的职业发展平台。这些措施有效提升了员工的凝聚力和归属感,为公司的持续发展提供了有力的人才保障。

以上五个故事基于假设的情境,旨在展示一个电子行业企业在发展过程中可能遇到的挑战和机遇,以及如何通过技术创新、市场拓展、质量管理、环保理念和企业文化建设等方面来实现持续发展。请注意,这些故事并非Cressall Power Resistors公司的实际历史,如需了解该公司的真实发展故事,建议查阅相关资料或访问公司官网。

CommScope Inc公司的发展小趣事

随着通信行业的快速发展,康普公司意识到光纤光缆在有线电视行业的重要性。因此,在1977年,康普公司合并了Valtec公司,一个独立的光纤技术领导者。这次合并不仅增强了康普在光纤技术方面的实力,也为其日后的全球化布局打下了坚实的基础。随后,康普通过一系列的战略合作和收购,逐渐在全球范围内建立了供应链和生产基地,为全球客户提供高效、可靠的通讯网络解决方案。

光磊(GL)公司的发展小趣事

随着通信行业的快速发展,康普公司意识到光纤光缆在有线电视行业的重要性。因此,在1977年,康普公司合并了Valtec公司,一个独立的光纤技术领导者。这次合并不仅增强了康普在光纤技术方面的实力,也为其日后的全球化布局打下了坚实的基础。随后,康普通过一系列的战略合作和收购,逐渐在全球范围内建立了供应链和生产基地,为全球客户提供高效、可靠的通讯网络解决方案。

Alpha & Omega Semiconductor(万国半导体)公司的发展小趣事

尽管康普在通信行业取得了显著的成就,但它也面临着诸多挑战。其中最大的挑战之一来自网络安全和数据保护。近年来,随着网络安全事件的频发,康普也遭受了数据泄露等网络安全事件的冲击。然而,康普积极应对挑战,加强了网络安全和数据保护的投入,提升了公司的网络安全防护能力。同时,康普也积极寻找新的增长点,拓展5G、物联网等新兴市场及成长型市场的渠道,为公司的未来发展奠定了坚实的基础。

以上五个故事仅是CommScope Inc公司电子行业发展的部分缩影,实际上,公司的发展历程远比这些故事更为丰富和复杂。但通过这些故事,我们可以看到CommScope Inc公司在技术创新、市场开拓、产品升级以及应对挑战等方面所做出的努力和取得的成就。

Grande Electronics Ltd公司的发展小趣事
如果按键接触不良是由于灰尘或污垢导致的,可以使用软布蘸取无水酒精进行清洁。
CIF公司的发展小趣事

D公司始终坚持品质至上的经营理念,以提供高品质的电子产品为己任。在CIF交易模式下,D公司严格控制产品质量,从原材料采购到生产流程中的每一个环节都进行严格把关。凭借出色的产品质量和良好的售后服务,D公司赢得了客户的信任和好评。

问答坊 | AI 解惑

电子技术入门学习内容综述

电子技术入门学习内容综述 学好电子技术,打好扎实的基础需要掌握哪些知识?初学者在学习之初能有所了解,学习就会心中有数,有的放矢。 一、元器件 1.识别 (1)认识元器件(实物的外形特征) (2)识别元器件引脚(极性,引脚排列顺序) ...…

查看全部问答>

LED和LCD屏区别之谈

LED是发光二极管Light Emitting Diode的英文缩写。 LED应用可分为两大类:一是LED单管应用,包括背光源LED,红外线LED等;另外就是LED显示屏,目前,中国在LED基础材料制造方面与国际还存在着一定的差距,但就LED显示屏而言,中国的设计和生产技术 ...…

查看全部问答>

非隔离式LED日光灯驱动常见问题 欢迎探讨;(SMD802)

之前调过一款SMD802; 常见问题如下 1, 散热问题 2,日光灯安装时机壳漏电问题(市场上都存在这个问题) 3,工作人员在换灯管时,未断开关情况下,直接更换灯管时导致LED烧坏。。。 各位在调试SMD802过程中,遇到何种问题欢迎探讨; 另外有谁 ...…

查看全部问答>

各位牛人有没有知道探测两个无线节点之间距离的专用芯片!

我要做几个无线的传感器节点,新手初入门,不知道有没有专用芯片可以探测两个节点之间的距离的,如果有的话,请告诉我这个芯片的名字,感激不尽,在google,百度搜一堆都没结果!…

查看全部问答>

vxworks源代码问题

#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远程调试的工具

哪位有WINCE远程调试的工具: 远程调用评测程序(Remote Call Profiler) 远程内核跟踪程序(Remote Kernel Tracker) 远程系统信息(Remote System Information) 远程性能监视程序(Remote Performance Monitor) 麻烦您发到我的邮箱 xia ...…

查看全部问答>

!!!招聘:硬件、嵌入式高薪重点职位!!

一、管理职位 技术部主任 1.硕士以上学历,计算机、集成电路设计或嵌入式系统相关专业; 2.5年以上技术管理和项目管理经验; 3.有相关产品的设计经验; 4.能够全面制定公司的产品计划; 5.能够带领团队成功实施产品项目; 6.具有较强的组织 ...…

查看全部问答>

STM32系统供电电源的选型问题

STM32芯片的供电电压一般为3.3V。现在系统外部提供24V直流电源。 我需要将24V的电源转换为3.3V,不知道选什么样的电源比较好? 初步考虑使用TI的隔离式 DC DC 转换器,将24V直接变为3.3V不知道是否可行? 希望大家能给个意见。…

查看全部问答>

请教屏幕问题

4.3寸的触摸屏,原来可以用,今天突然就没有显示了,uboot启动时是白色的,linux启动之后就没有显示,诡异的是触摸功能还可以用,运行屏幕校准居然可以,这个大概是什么原因呢?…

查看全部问答>