资讯
ARM基础:为何C语言(的函数调用)需要堆栈,而汇编语言却不需要堆栈(2024-08-13)
ARM基础:为何C语言(的函数调用)需要堆栈,而汇编语言却不需要堆栈;之前看了很多关于uboot的分析,其中就有说要为C语言的运行,准备好堆栈。
而自己在Uboot的start.S汇编代码中,关于......
手动实现51单片机函数切换(2024-08-22)
还是想把实现的过程分享出来,这篇文章是其中的内容之一,有兴趣的同学可以先了解一下,点个关注收藏,后面持续更新!
二、函数切换原理
在使用C语言编写51单片机的程序时,如果我们在函数一中调用另外一个函数,只需......
用汇编语言写一个数码时钟程序(2023-01-13)
F_Send_595:
PUSH 02H ;R2入栈
MOV R2, #8
L_Send_595_Loop:
RLC A
MOV P_HC595_SER,C
SETB P_HC595_SRCLK......
由于uvc驱动函数缺少return语句而导致内核oops的一例(2024-07-11)
) objdump
c) strace
d)gdb
二、前言
用C语言写程序时,如果定义一个带返回值的函数,但在函数体最后却缺少了return 语句, 程序编译并运行起来后,有时会产生意想不到的严重后果!这事......
arm汇编进入C函数分析,C函数压栈,出栈,传参,返回值(2024-08-01)
arm汇编进入C函数分析,C函数压栈,出栈,传参,返回值;环境及代码介绍
环境和源码
由于有时候要透彻的理解C里面的一些细节问题,所有有必要看看汇编,首先这一切的开始就是从汇编代码进入C的main......
ARM异常---一个DataAbort的触发过程(2023-09-01)
是 32BIT
,其实这里放的是真正的C写的处理函数的地址,说白了,就是函数指针*/
^ _ISR_STARTADDRESS ; _ISR_STARTADDRESS=0x33FF_FF00......
用汇编语言写一个红外遥控接收板程序代码(2023-01-30)
出栈
POP DPL ;DPL出栈
POP DPH ;DPH出栈
RET
F_Timer0_Interrupt: ;Timer0 1ms中断函数
PUSH PSW ;PSW入栈
PUSH ACC......
Keil c51的应用及特性解析(2023-04-13)
Keil c51的应用及特性解析;Keil c51号称作为51系列单片机最好的开发环境,大家一定都很熟悉。它的一些普通的特性大家也都了解,(书上也都说有)如:因为51内的RAM很小,C51的函数......
通用裸机-arm汇编和cpu运行模式(2024-07-03)
是恢复现场。
push {r0, r1} @保存 r0,r1
cps #0x13 @进入 SVC 模式,允许其他中断再次进去
bl system_irqhandler @加载 C 语言中断处理函数到 r2 寄存......
基于C8051F015芯片在开发板上实现μC/OS-II的移植(2023-08-02)
;
return ((void *)stk);
}
3 可重入函数
因为51系列堆栈空间的限制, KEIL编译器没有像大系统那样使用调用堆栈。一般C语言调用过程中,会把过程的参数和使用的局部变量入栈。为了......
用汇编语言写个流水灯程序(2023-01-13)
用汇编语言写个流水灯程序;;************* 功能说明 **************
;程序使用P4.7 P4.6 P1.6 P1.7 来演示流水灯,输出低驱动。
Fosc_KHZ EQU......
基于51汇编语言的外部中断(2023-09-01)
基于51汇编语言的外部中断; 主程序显示八位流水灯;
外部中断0:左右四位闪烁三次;
外部中断1:各位间隔闪烁三次。
仿真电路如下:
;程序如下:
ORG 0000H......
用汇编语言写一个LCD1602驱动显示程序(2023-01-30)
, ACC.0
MOV ACC.6, C
ANL A, #0x40
ORL A, #0x80
LCALL F_Write_CMD
PUSH AR2
MOV R2, #LineLength......
STM32入门学习笔记之uCOS-II系统移植3(2024-05-17)
那么进出临界段的宏定义分别为OS_ENTER_CRITICAL和OS_EXIT_CRITICAL,这两个函数都是用汇编语言编写的
//OS_CRITICAL_METHOD = 1 :直接......
用汇编语言做一个看门狗测试(2023-01-13)
,020H,040H,080H ; 位码
F_Send_595:
PUSH 02H ;R2入栈
MOV R2, #8
L_Send_595_Loop:
RLC A
MOV P_HC595_SER,C......
S3C2440 interrupt 从2440init.s到main分析(2023-09-04)
表示当前pend的中断号,
这样pc依据INTOFFSET,跳至对应表三的地址,
4.表三 --> 中断服务函数
这是最令人激动的一部,哈哈!终于到c函数了,
pISR_EINT1......
51单片机与汇编之定时器中断闪烁LED(2023-01-11)
,#00000001B
MOV TH0,#0BBH
MOV TL0,#0CCH
SETB EA
SETB ET0
SETB TR0
AJMP $
TIME0: PUSH ACC
PUSH PSW
MOV......
嵌入式开发常用的C语言工具代码(2024-01-30)
嵌入式开发常用的C语言工具代码;开发中常用的工具确实很重要。以下是一些利剑级别的工具示例,以及它们的简要讲解。本文引用地址:循环队列(Circular Buffer)typedef struct......
STM32的backtrace深度讲解(cortex-m的栈布局与栈回溯的原理和方案)(2024-01-04)
涉及到C语言函数,必须要考虑到的问题就是函数的入栈出栈的问题,也就是SP指针的增加或者减少。下面还是来复习一下arm cortex-m上的寄存器。
按照arm cortex-m的设计,一共有32个寄......
用汇编语言写一个温度传感显示器程序(2023-01-13)
;R0 出栈
POP DPL ;DPL出栈
POP DPH ;DPH出栈
RET
F_Timer0_Interrupt: ;Timer0 1ms中断函数
PUSH PSW ;PSW入栈
PUSH ACC......
Python 命令行之旅:使用 click 实现 git 命令(2024-12-13)
是整个命令程序的入口
定义四个命令对应的实现函数 status、add、commit、push
则基本结构如下:
import os import click from git.cmd......
51单片机定时器、串口、中断(2024-08-22)
定时器0工作在16位模式//C语言
TMOD=0x01; //定时器//汇编
MOV TMOD, #01H;
计数初值的计算+装载:
伪代码:
//机械周期1us,设置500us中断......
C语言在单片机中是如何执行的(2024-07-04)
C语言在单片机中是如何执行的;或许我们平时大多数学习C语言都是在Windows环境下学习的,对于程序执行的底层逻辑了解的不是非常清楚,所以本文在这里给大家介绍一下,C语言......
STM32中重要的C语言知识点总结(2023-10-24)
, int),编译后的可能是_fun_int_int(不同编译器可能不同,但都采用了类似的机制,用函数名和参数类型来命名编译后的函数名);而C语言没有类似的重载机制,一般是利用函数名来指明编译后的函数......
ARM处理器的堆栈和函数调用,以及与Sparc的比较(2024-07-10)
this is done by using PUSH/ADD/SUB instructions. An example of a prologue would look like this:
函数起始:
(1......
ARM异常---一个Uart中断的触发处理过程(2023-08-31)
(to store jump address)
stmfd sp!,{r0} ;PUSH the work register to stack(lr does......
普通单片机与STM32单片机中堆栈的区别(2023-08-03)
是内存中一段连续的存储区域,用来保存一些临时数据:嵌入式开发中更接近底层的汇编与C语言。堆栈操作由PUSH、POP两条指令来完成。而程序内存可以分为几个区:
栈区(stack)
堆区(Heap)
全局区(static......
Google 开源的 Python 命令行库:fire 实现 git 命令(2024-12-13)
使用如下命令提交信息:
git commit -m "your commit message"
最后使用如下命令将提交推送到远程仓库:
git push
我们将使用 fire和 gitpython库来......
S3C2440的中断的那些事儿(一) 汇编的讲解(2023-09-05)
Reset:
43 ldr sp, =4096 @ 设置栈指针,以下都是C函数,调用前需要设好栈
44 bl......
stm32mp1 Cortex M4开发篇2:通过GPIO点亮LED灯详解(2023-11-16)
) /*!< Input Floating Mode */#define GPIO_MODE_OUTPUT_PP ((uint32_t)0x00000001U) /*!< Output Push......
用c语言实现函数重载(2024-07-25)
用c语言实现函数重载;一. 什么是函数重载? 函数重载是指在同一作用域内,可以有一组具有相同函数名,不同参数列表(参数个数、类型、顺序)的函数,这组函数被称为重载函数。重载函数通常用来声明一组功能相似的函数......
单片机各类指令详解(2024-02-28)
指令
MOVC A,@A+DPTR
本指令是将ROM中的数送入A中。本指令也被称为查表指令,常用此指令来查一个已做好在ROM中的表格(类似C语言中的指针)
说明:
此条......
S3C2440③ | GPIO实验(2024-07-15)
结果
4.C程序访问寄存器控制LED
4.1.运行C程序的前提——启动文件
C语言入口函数是main()函数,main函数由启动文件(刚上电时执行的汇编程序)来调用;
在调......
单片机C语言的知识汇总(2022-12-14)
被破坏是导致程序运行异常的重要因素。C语言对数据进行了许多专业性的处理,避免了运行中间非异步的破坏
·提供常用的标准函数库,以供用户直接使用;
·有严格的句法检查,错误很少,可容易地在高级语言的水平上迅速地被排掉;
·可方......
单片机初学者编程经常会碰到的问题及处理办法(2022-12-21)
分号必须是英文输入模式下的输入。
②大括号不对等,导致编译不通过
C语言程序编程,大括号的左括号和右括号必须一一对应,否则编译提示错误。
③函数未声明,编译提示函数功能违法。
C语言中编程种,调用代码后面书写的函数......
汇编和C语言相结合的51单片机编程技巧(2023-06-25)
序模块最后一行要写一个END,没有这一句,编译器不会报错,但会出现警告,容易出现问题,为了规范编程,大家还是别偷懒了。
最后一点就是头文件的作用了,这跟C语言的作用一样,可以对变量或函数进行声明,这个......
51单片机串口应用实例(汇编)(2024-08-22)
LJMP LOOP
INTT0: ;按键4外部中断函数,复位LED的IO口,跳转返回判断循环
PUSH ACC
SETB P2^0
ACALL DELAY
SETB......
如何写出易维护的嵌入式代码?(2023-08-31)
体node中的next指针的类型又是node类型。
函数指针
指针是的灵魂,是C比其他语言更灵活,更强大的地方。所以学习C语言必须很好的掌握指针。函数指针,即指向函数在内存映射中的首地址的指针,通过函数......
51单片机使用C语言点亮闪烁LED灯(2023-05-10)
,sbit同样是单片机c语言中的一种扩充数据类型,利用它能访问芯片内部的 RAM中的可寻址位或特殊功能寄存器中的可寻址位。
函数
void main()和 void delay(uchar ms)都是函数......
单片机的程序结束后都干嘛去了?(2022-12-08)
干什么是由所使用的C语言编译器决定的。
一、问题提出
今天在单片机led模块定义函数中看到一个有趣的问题。提问者在进行基本的C51编程实验,编写了一个简单的C51程序如下:
程序执行完之后,可以......
STM32上电启动过程分析(START_TEST代码实例)(2023-09-18)
、PC
②设置系统时钟
③软件设置SP
④加载.data、.bss,并初始化栈区
⑤跳转到C文件的main函数
3、整个启动过程涉及的代码
推荐阅读深入理解MCU启动原理
启动......
ARM GCC 内嵌汇编手册(2024-08-30)
相关的处理器指令。这里设想了读者是熟练编写ARM汇编程序读者,因为该片文档不是ARM汇编手册。同样也不是C语言手册。这篇文档假设使用的是GCC 4 的版本,但是对于早期的版本也有效。GCC asm......
STM32在IAR的开发步骤(2023-06-26)
的版本大致相同)第一步,先建立一个文件夹,该文件夹将放所有与项目有关的文件,并将ST公司提供的固件函数库(Libraries)复制到该文件夹下,并在该文件中在建立一个文件,命名为project,再创......
NOP使用注意事项(2024-08-05)
NOP使用注意事项;在51内核中
C语言可以使用_nop_()延时或者汇编语言NOP。并且一般是要加上 #include
而在ARM内核中
C语言可以使用__nop()延时或者汇编语言NOP延时......
ARM GCC 内嵌(inline)汇编手册(2024-08-30)
汇编手册。同样也不是C语言手册。
这篇文档假设使用的是GCC 4 的版本,但是对于早期的版本也有效。
GCC asm 声明让我们以一个简单的例子开始。就像C中的声明一样,下面......
C语言中的可变参数函数的浅析(以Arm 程序中的printf()函数实现为例)(2023-09-06)
C语言中的可变参数函数的浅析(以Arm 程序中的printf()函数实现为例);我们在C语言编程中会遇到一些参数个数可变的函数,一般人对它的实现不理解。例如Printf():
Printf......
学单片机需要多少C语言基础,C语言单片机编程教程(2023-01-05)
等
5. 掌握break,contuine,goto 的用法
6. 函数的定义和应用
7. 掌握单片机C语言的运算符的应用:位运算符,关系运算符等
8. 学习#if #ifndef #ifdef......
C51编程经验汇总分享(2023-04-06)
不了热启动的要求。这是为什么呢?原来,用C语言编程时,开机时执 行的代码并非是从main()函数的第一语句开始的,在main()函数的第一语句执行前要先执行一段‘起始代码’。正是这段代码执行了内存清零的工作。 C......
ESP(2022-11-30)
指针,指向当前活动记录的底部。
栈指针与帧指针标识出了当前活动记录的位置。
当函数被调用的时候,执行如下操作:
⒈将帧指针压入栈中:push ebp
⒉用ebp保存当前栈指针:mov ebp,esp......
STM32编程中printf函数重定向背后的原理(2023-12-18)
STM32编程中printf函数重定向背后的原理;在C语言中,printf是一个非常好用的函数,尤其是在程序调试阶段,我们可以通printf打印变量的值来帮助查错。在学习C语言......
相关企业
;勤思智能电子;;PCB板制作及打样 C语言程序编写 新项目开发
;西安北大青鸟;;程序逻辑和C语言实现 SQL Server应用开发 Java面向对象程序设计 网页编程 .Net平台和C#编程 SQL Server数据库设计和实现 WinForms高级
;da ye li hua;;反函数
or customised rotary/key, pushbutton, indicator & push push potentiometers. We manufacture in the UK
;张家港市港威超声电子有限公司;;是地方划时代反函数地方
,MiniUSB 5P/8P,Micro USB 5P,I/O 18P/20P,IPOD 30P等);SIM卡座(方形/菱形/简易型,耳扣式/连桥式/掀盖式,8Pin双层,Push-push型);电池
;东莞市成飞电子有限公司;;佳品电子股份有限公司是SD卡座、MS卡座、CF卡座、XD二合一卡座、TF卡座、SD PUSH卡座、M2卡座、TF PUSH卡座等产品专业生产加工的股份有限公司,公司
、天津、沈阳等省市拥有分公司或办事处,并以上海为营销中心服务全国。 公司除了自有品牌的函数计算器、电子词典机、MP3、复读机、语言训练系统发射机外,还为众多国内外著名企业OEM生产,此外
香港成立 产品研发部坐落在深圳市福田区 研发主管在GPS行业经验达10年,是国内唯一一家拥有知识产权 的GPS 多语言同声导游解说系统 公司于2003年开发的首批国内唯一一家基于嵌入式平台的GPS自动
;art科技有限公司;;提供专业的数据采集方案,主营数据采集卡PCI/USB/PXI/PC104,RS485采集模块,嵌入式主板,GPRS和RTU,信号调理模块 软件支持: VC 、VB、C