单片机编程应用技巧问答(一) 由 demi 提交于 周五, 22 五月 2020 - 10:42 阅读更多 关于 单片机编程应用技巧问答(一) 汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一种语言。其主要优点是占用资源少、程序执行效率高。但是不同的CPU,其汇编语言可能有所差异,所以不易移植。
MCU上的无锁原子读操作 judy / 周一, 19 三月 2018 - 16:01 原子读操作是在MCU并发编程中常用的操作,简单举个例子来阐述问题: 我们使用RTOS或裸机状态编程时,必然需要一个全局时钟基准,通常是在一个定时器中断中累加实现,简化代码如下: static unsigned long volatile __jiffies = 0; /* 全局时钟基准节拍累加器 */ ISR_TIMER() /* 定时中断服务函数 */ { ++__jiffies; /* 其它代码...: */ } 对于其中的__jiffies变量,就是全局时间基准,程序中其它地方都会对其进行原子读操作来判断时间,典型的接口实现如下: unsigned long get_jiffies(void) { unsigned long tmp; CLOCK_IRQ_DIS(); /* 关定时中断 */ tmp = __jiffies; CLOCK_IRQ_EN(); /* 开定时中断 */ return tmp; } 阅读更多 关于 MCU上的无锁原子读操作登录 发表评论
MCU上的无锁原子读操作 Lee_ / 周五, 24 二月 2017 - 16:46 原子读操作是在MCU并发编程中常用的操作,简单举个例子来阐述问题: 我们使用RTOS或裸机状态编程时,必然需要一个全局时钟基准,通常是在一个定时器中断中累加实现,简化代码如下: static unsigned long volatile __jiffies = 0; /* 全局时钟基准节拍累加器 */ ISR_TIMER() /* 定时中断服务函数 */ { ++__jiffies; /* 其它代码...: */ } 对于其中的__jiffies变量,就是全局时间基准,程序中其它地方都会对其进行原子读操作来判断时间,典型的接口实现如下: unsigned long get_jiffies(void) { unsigned long tmp; CLOCK_IRQ_DIS(); /* 关定时中断 */ tmp = __jiffies; CLOCK_IRQ_EN(); /* 开定时中断 */ return tmp; } 阅读更多 关于 MCU上的无锁原子读操作登录 发表评论