51单片机ucos ii任务切换汇编代码分析(2)

这篇文章是ucos ii在51上的汇编文件OS_CPU_A.ASM源码解析,下载的chen shi zhi的注释,然后自己也加了一些注释。 $NOMOD51;不使用keil提供的51寄存器地址定义,而使用下面自己写的寄存器地址定义 EA BIT 0A8H.7 SP DATA ...

2017-12-15 13:11:35

阅读数 155

评论数 0

51单片机SP指向的系统栈中都有什么?LCALL、RETI等解析

在调用函数时,也即当使用LCALL、ACALL等汇编指令时,PC指针会被自动入栈到SP指向的系统栈,随着函数调用链条不断加深,SP被吃掉的空间越来越多

2017-12-12 14:30:10

阅读数 953

评论数 0

51单片机 interrupt和 using使用详解

首先推荐一篇文章,点击打开链接 这篇文章大部分是翻译软件直接翻译的,建议直接读读英文原版,有一定参考价值。 下面是我对interrupt和 using使用详解, 首先看interrupt,这个比较简单,直接看一个外部中断0服务函数的例子 void ext_int0_src() interru...

2017-12-11 21:20:58

阅读数 1790

评论数 3

51单片机ucos ii任务切换汇编代码分析(1)

ucos中任务切换函数都是汇编写的,属于“需移植”文件, 这个汇编文件名一般叫做:OS_CPU_A.ASM 要想看懂任务切换的原理,首先遇到的第一个难点,就是OS_CPU_A.ASM这个汇编文件里的一大堆不常见的汇编伪指令,搞懂这些指令是搞懂程序原理的第一步。 这个文件为ucos操作系统提供了...

2017-12-10 18:46:01

阅读数 302

评论数 0

关于51单片机的仿真栈(模拟栈/可重入栈)

51单片机的仿真栈(又叫模拟栈、或者可重入栈)。 首先来看,51的系统栈(又叫系统栈,或者硬件栈),就是SP所指向的栈,他是一个满增栈(注释1),位于片内RAM的128 bytes之中,上电之后系统堆栈指针SP的初值等于多少呢?这个要从51的启动文件来分析,启动文件中有这样的汇编代码: ?STAC...

2017-12-07 15:44:14

阅读数 464

评论数 1

51单片机汇编部分资料

51单片机汇编启动文件详解,百度文库链接: https://wenku.baidu.com/view/b788fce8a98271fe900ef906.html 若链接失效,可在百度文库里搜索:STARTUP51、STARTUP51.A51详解。 51单片机的idata,xdata,pd...

2017-12-07 13:31:53

阅读数 329

评论数 0

51的时钟总线

51选择12MHz的晶振作为时钟源呢有什么好处? 这就要说51单片机内部的几个周期了:振荡周期、时钟周期、机器周期、指令周期。 振荡周期:是指为单片机提供定时信号的振荡源的周期或外部输入时钟的周期,例如外部晶振12M。 时钟周期:又称作状态周期或状态时间S,它是振荡周期的两倍,分为P1节拍和...

2017-12-05 15:13:40

阅读数 73

评论数 0

C语言“参数数量可变的函数”

//STM32平台 #include <stdarg.h> void test(int, ...); void test(int num_args, ...) { double V1,V2,V3,V4; va_list ap; va_start(ap, num_ar...

2017-11-22 13:34:52

阅读数 207

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭