2013年4月27日

MDK-ARM生成.bin文件

摘要: 默认MDK-ARM只能生成.hex文件,加上下面一句话就可以生成.bin文件了。C:\Keil\ARM\BIN40\fromelf.exe --bin -o ./Output/STM32F103.bin ./Output/STM32F103.axf 阅读全文

posted @ 2013-04-27 15:10 先天圣体道胎 阅读(278) 评论(0) 推荐(0)

修复J-Link v7、v8固件损坏

摘要: MDK4.54 使用 JLINK V8提示升级的问题的解决方案一直用原子资料里自带的MDK3.80A,昨天下了MDK4.54,点调试的时候提示升级JLINK固件什么的,顺手点确定,结果悲剧了,JLINK v8可以被电脑识别但是MDK无法发现设备,后发现坛友分析系JLINK官方更改DLL加密所致,需要修改字符串,证实可行,但MDK总会有提示。比较恼人。将JLINK固件重刷后,升级到v4.4.本人用的JLINK v4.4(据说非原装JLINK最高支持4.4),将MDK4.5安装目录下ARM文件夹中的Segger替换MDK4.54中同名文件夹,DLL和驱动版本一致,正常使用,去除了升级驱动的提示,避 阅读全文

posted @ 2013-04-27 14:28 先天圣体道胎 阅读(725) 评论(0) 推荐(0)

HardFault_Handler问题查找方法

摘要: 遇到这种错误,除了下面转载的文章的处理方式的其他方法1、新加代码出问题一般同过注释屏蔽很容易定位2、如果你刚做的板子,写的测试代码就有问题,应该先查下硬件。有可能boot引脚没设置对,也会引起HardFault_Handler。HardFault_Handler问题查找方法(转载)STM32出现HardFault_Handler故障的原因主要有两个方面:1、内存溢出或者访问越界。这个需要自己写程序的时候规范代码,遇到了需要慢慢排查。2、堆栈溢出。增加堆栈的大小。出现问题时排查的方法:发生异常之后可首先查看LR寄存器中的值,确定当前使用堆栈为MSP或PSP,然后找到相应堆栈的指针,并在内存中查看 阅读全文

posted @ 2013-04-27 14:21 先天圣体道胎 阅读(816) 评论(0) 推荐(0)

常用的按键/输入口检测程序

摘要: 最低级的就是硬延时检测了,通过硬延时10~20ms消抖。普遍采用的都是定时扫描,通过定时中断消抖。这个是核心思想。例举网上几个常用的算法。1、新型的按键扫描程序,仅三行程序​unsigned char Trg;//Trg(triger) 代表的是触发unsigned char Cont;//Cont(continue)代表的是连续按下。void KeyRead( void ){ unsigned char ReadData = PINB^0xff; Trg = ReadData & (ReadData ^ Cont); Cont = ReadData; }评... 阅读全文

posted @ 2013-04-27 14:11 先天圣体道胎 阅读(380) 评论(0) 推荐(0)

堆和栈

摘要: 1、栈区(stack) — 由编译器自动分配释放,存放函数的参数值,局部变量的值等。(临时变量,退出该作用域就会自动释放)2、堆区(heap) — 程序员分配释放,若程序员不释放,程序结束时可能由OS回收。(malloc变量,通过free函数释放)3、全局区(static) — 全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。程序结束后由系统释放。4、文字常量区 — 常量字符串就是放在这里的。程序结束后由系统释放 5、程序代码区 — 存放函数体的二进制代码。 Keil中启动引导文件定义堆和栈区的大小Stack 阅读全文

posted @ 2013-04-27 14:09 先天圣体道胎 阅读(296) 评论(0) 推荐(0)

导航