一点灵异

学习使人意识到自己的弱小,从而心生敬畏。

博客列表

【转】关于STM32软件复位代码编写
发表于:2018-06-05 16:17:07 | 分类:MCU
浏览( ) | 评论( )

对于STM32来说软件复位有两种方式:1)采用官方自带的软件库在官方软件库的stm32f10x_nvic.c 文件里 直接提供了 系统复位的函数/******************************************************************************** Function Name : NVIC_GenerateSystemReset* Description : Generates a system reset.* Input : None* Outp

【转】擦掉STM32F429芯片上的数据的一个方法
发表于:2018-06-05 15:46:26 | 分类:MCU
浏览( ) | 评论( )

刚入手一块STM32F429Discovery。手痒痒的,准备写个程序进去。一不小心,把MCU的调试接口SW、JTAG全部给禁用了。这下可坏了,写不进去程序,擦不掉数据。愁的某家一头大汗。突然想起了当年玩F1的时候有个IAP功能,F4应该也有着功能的。于是找到了这个:http://www.mcuisp.com/chinese%20mcuisp%20web/index.htm没有针对F4的软件。下载F1的FlyMCU IAP软件之后,直接连还是连不上,软件是一直在等待芯片回应。之后查了下ST的文档AN260

一种导致stm32在Debug模式下全速运行正常却在实际工作时卡死在某个地方
发表于:2018-05-31 13:57:50 | 分类:MCU
浏览( ) | 评论( )

【问题描述】 主要使用了stm32的串口外设,打开了其中断、DMA中断等,烧写程序后根据LED指示判定其卡死在某个地方,所以进入Debug找问题,但在Debug下全速运行是正常的【使用环境】 KEIL5.25 / Win10【解决办法】 后经查找分析导致原因是,在串口IDLE中断服务程序中未清除IDLE标志导致,添加一下代码搞定 tempResiter =uart_num->SR; tempResiter =uartx_DR;

【转】程序或-内存区域分配(五个段)--终于搞明白了
发表于:2018-05-16 14:23:42 | 分类:MCU
浏览( ) | 评论( )

一.在学习之前我们先看看ELF文件。ELF分为三种类型:.o 可重定位文件(relocalble file),可执行文件以及共享库(shared library),三种格式基本上从结构上是一样的,只是具体到每一个结构不同。下面我们就从整体上看看这3种格式从文件内容上存储的方式,spec上有张图是比较经典的:如上图:其实从文件存储的格式来说,上面的两种view实际上是一样的,Segment实际上就是由section组成的,将相应的一些section映射到一起就叫segment了,就是说segment是由0个

【转】97 条 Linux 常用命令总结
发表于:2018-05-15 13:32:50 | 分类:LINUX
浏览( ) | 评论( )

1.ls [选项] [目录名 | 列出相关目录下的所有目录和文件-a列出包括.a开头的隐藏文件的所有文件-A 通-a,但不列出"."和".."-l列出文件的详细信息-c根据ctime排序显示-t 根据文件修改时间排序---color[=WHEN] 用色彩辨别文件类型 WHEN 可以是'never'、'always'或'auto'其中之一 白色:表示普通文件 蓝色:表示目录 绿色:表示可执行文件 红色:表示压缩文件 浅蓝

【转】rt-thread的位图调度算法分析
发表于:2018-05-06 11:26:57 | 分类:RTOS
浏览( ) | 评论( )

序言期待读者本文期待读者有C语言编程基础,后文中要分析代码,对其中的一些C语言中的简单语句不会介绍,但是并不要求读者有过多的C基础,比如指针和链表等不会要求太多,后面在分析代码时,会附带地介绍相关的知识,如果您已经精通了C语言的指针则可以略过相关的介绍。除此之外,不再假设读者拥有任何知识。如何阅读代码就以rt-thread内核代码为例(注,指rt-thread的kernel代码),大约有8500行代码。直接阅读显然是很容易陷入代码中的。所谓工欲善其事,必先利其器,我推荐使用下面的工具来阅读。MDK/IAR

【转】__ATTRIBUTE__ 你知多少
发表于:2018-04-26 15:54:55 | 分类:MCU
浏览( ) | 评论( )

__ATTRIBUTE__ 你知多少?GNU C的一大特色就是__attribute__机制。__attribute__可以设置函数属性(Function Attribute)、变量属性(Variable Attribute)和类型属性(Type Attribute)。__attribute__书写特征是:__attribute__前后都有两个下划线,并切后面会紧跟一对原括弧,括弧里面是相应的__attribute__参数。__attribute__语法格式为:__attribute__ ((attrib

【转】经典的堆栈讲解
发表于:2018-04-25 14:35:15 | 分类:MCU
浏览( ) | 评论( )

一、预备知识—程序的内存分配1.1 一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变

一种导致STM32重新上电后不工作的原因
发表于:2017-12-22 12:53:59 | 分类:MCU
浏览( ) | 评论( )

【使用环境】 编译器:KEIL5.20 硬件:STM32F429 软件:FreeRTOS【问题描述】 编译后烧录运行正常,重新上电无反应【问题分析】 1. 在任务中使用了非系统延时 --非系统延时导致系统阻塞,详看 2. 外设驱动初始化问题 --有些外设在重新上电后初始化失败,导致错误或是卡在此处,比如MPU6050就需要在初始化前加入一定延时,不然再次初始化会失败 3. 配置为外部中断的GPIO悬空导致 --由于该引脚为悬空状态,且该引脚配置为

一种使用 FreeRTOS 时进入 HardFault 的原因
发表于:2017-12-21 19:01:17 | 分类:MCU
浏览( ) | 评论( )

在工程中多次分配中断优先级分组,NVIC_PriorityGroupConfig(NVIC_PriorityGroup_x),且每次分组值不同,导致系统刚开始任务调度就进入 HardFault。