EmbeddedOsprey

嵌入式软件开发

STM32调试利器之ITM

折腾了许久,终于把 ITM 调试搞定了。首先看看效果图: 是的,你没有看错,以上所有的窗口都是由MDK支持的。这也是为什么我执着于ITM调试的原因了,因为这种调试手段实在是太方便了啊。 相信很多朋友在开发的过程中都会遇到不少的BUG,那么如何定位BUG就成了关键。早期的时候,很多人习惯用p...

2019-02-02 09:41:32

阅读数 127

评论数 3

C语言之#error/#warning

很多人写了一两年代码可能也没用过#error和#warning吧!我也是如此,因为我之前也不知道C语言中还有这玩意的存在,还是在看别人的代码后才知道有这个东西的。但是事实上你在编译代码的时候它们经常会在你的眼前晃悠,只是你不知道这些东西其实程序员也可以输出来的。 看图你就知道了: 是不是很亲切啊...

2018-12-10 12:17:17

阅读数 66

评论数 0

C语言中之const

const:限定一个变量不允许改变,产生静态作用,const在一定程度上可以提高程序的安全性和可靠性。 const 推出的初始目的,正是为了取代预编译指令,消除它的缺点,同时继承它的优点。宏定义: #define xxxx \ { xxx }\ \后不能有任何字符,包括空格 最后的 “}\”需要...

2018-12-07 20:43:57

阅读数 57

评论数 0

STM32固件升级详解(BootLoader)

基础知识 这里以KEIL开发环境和STM32F103RET6为例。 上电时单片机首先进入复位中断Reset_Handler,即汇编文件的复位中断处理函数。 并且有一个中断向量表默认存在于flash地址开始处。 为什么说是默认呢?这是因为如果没有特殊要求的话很少会去改中断向量表。实际...

2018-12-02 21:33:13

阅读数 11166

评论数 0

NRF24L01+中文翻译连载之无线电控制

----------------------------------------------------------------详情请看英文技术手册 2018/05/06 nRF24L01 +是一款带有嵌入式基带协议引擎(Enhanced ShockBurst™)的单芯片2.4GHz收发器,适用于...

2018-12-01 16:55:08

阅读数 87

评论数 2

信号量保护

让我们举个例子。记DeviceALocked是一个位于内存中的R/W变量,用于指示设备A是否已经在使用中。任何一个任务,若欲使用设备A,都必须先检查这个变量的值。如果它的值为零,则表示设备可以使用。在任务获取到设备A后,它要把DeviceALocked的值改为1,表示设备A已经被占用。在设备A使用...

2018-11-28 20:55:26

阅读数 48

评论数 0

uCOS II 之任务控制块TCB

任务控制块TCB: OS_EXT OS_TCB *OSTCBCur; OS_EXT OS_TCB *OSTCBFreeList; OS_EXT OS_TCB *OSTCBHighRdy; OS_EXT OS_TCB *OSTCBList; OS_EXT OS_TCB *OSTC...

2018-11-28 20:48:41

阅读数 85

评论数 0

uCOS II 之查找最高优先级任务

我们知道在u/COS II中,一个任务只有一个优先级,并且这个优先级在整个系统是唯一的,也就是一个任务也是对应一个优先级。优先级即任务,任务即优先级。我们只需通过优先级就可以找到所有和该任务相关的资源。现在问题是就绪表中有那么多任务处于就绪态,如何从中找到其中最高优先级。方法有很多,其中一个就是f...

2018-11-28 20:47:27

阅读数 67

评论数 0

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