嵌入式
文章平均质量分 74
飘零剑客
这个作者很懒,什么都没留下…
展开
-
谨慎使用double 类型的变量
在C语言中定义恰当的变量类型是十分重要的,其重要性包括一下几方面。第2,3点可能在PC 系统不用考虑,但在嵌入式系统中则显得比较重要,需要引起大家足够的重视。对于第一点很多同志能够引起重视,因为不重视的话软件会可能因为bug 跑不起来。对于第2,3点可能部分同志还没有认识到,以下将借助一个简单的例子来看看实际的情况。......原创 2022-07-03 17:15:23 · 921 阅读 · 1 评论 -
FreeRTOS 任务挂起位置调查
在ARM平台上使用多任务操作系统时,因为程序设计存在缺陷,容易导致进入hard fault,网上对此有很多的资料介绍。在实际的程序调试中,我们也经常遇到另外一个问题。即想要执行的任务被挂起,CPU 在idle task 里面运行,这个问题同样也会困扰我们的功能调试。以下将结合一个简单的例子来分析如何找到任务被挂起的位置。在freeRTOS 创建任务时,会创建一个任务控制块(TCB),并且该信息会通过指针进行返回。如下图所示在本示例中,该参数传入了一个NULL值,因此该函数后不能直接得到这个“原创 2021-10-31 13:26:30 · 438 阅读 · 0 评论 -
Keil 调试之堆栈溢出调查
在进行嵌入式多任务系统软件开发,可能会出现堆栈溢出的问题,并且该问题可能是随机出现,因此调查较麻烦。借助keil 的数据断点功能,可以轻松找到产生堆栈溢出的位置。在程序调试时,常规使用的断点是程序断点,本文提到的则是一种数据断点。以下将列出具体的调试方法。1、任务的堆栈溢出一般是栈底溢出,在编译完成之后。如果堆栈通过固定地址分配,则通过查询keil 生成的.map获取栈底地址;否则需要在任务创建过程中分配的堆栈时获取栈底地址,将堆栈地址变量“pxNewTCB->pxStack”添加到变量监视区原创 2020-05-17 22:29:07 · 7907 阅读 · 2 评论 -
Mifare 卡非接数据通信流程
Mifare 卡广泛用于公交一卡通,门禁卡及校园一卡通场景,网上有许多mifare的工作流程介绍,本文侧重于介绍通过安全芯片模拟mifare卡时的非接数据通信流程。典型的卡模拟组成包括两部分硬件,即CLF+UICC。CLF即非接触前端,一端控制天线与读卡器进行数据交换,一端通过SWP接口与UICC进行通信。UICC内部安装mifare应用,以配合CLF完成mifare的卡模拟。 CLF与UICC之间通过SWP进行通信,SWP是一种全...原创 2020-05-17 14:56:03 · 1167 阅读 · 0 评论 -
关于stm32的spi发送命令时的注意事项
近日在进行一个倾角仪产品操作时,发现了stm32在往外发送数据时出现的一个问题。类似问题以前也出过,现在再次出现。特地写下来提醒自己注意以后防止再犯错。该倾角仪adis16210与主控制器stm32通信时选用的是spi接口,并且在后续的操作过程中是使用stm32的官方函数库。在初期程序调试时,只是进行了spi的读操作(adis可以不用设置初试参数),能正常进行spi的读操作,能获取到随姿态变好原创 2014-02-19 19:25:04 · 4601 阅读 · 0 评论