STM32
oushaojun2
这个作者很懒,什么都没留下…
展开
-
cortex内核hardfault错误的定位方法实战
单片机一般是cortex-m3之类的内核,其实其他内核也是一个道理。hardfault错误一般是操作了不该操作的内存,或者执行了不该执行的动作,例如一个非法的函数指针,你非要去调用。调试这个错误的原理是:发生hardfault错误后就会进入相应的hardfault中断,进入中断前会在被中断的地址执行压栈动作,将当时的工作环境(就是系统的一些寄存器,r0,r1,r2,r3,lr,pc,r12)压进堆栈,将lr赋值非法数据,然后跳到hardfault中断执行中断服务程序。那么只需要将压栈后的lr读出来,原创 2020-07-11 16:44:17 · 1521 阅读 · 0 评论 -
利用ST提供的USB例程实现USB IAP功能
我们知道ST推出的Cortex-M3平台STM32内部有两个Flash区域,一是System Flash,ST官方保留的一个区域,用于存放IAP代码。该区域不对用户开放,仅提供UART的通讯接口用于IAP升级;另一个区域是User Flash,这一部分是供用户自由使用的。STM32自带USB 2.0 Device接口,如果需要通过USB接口来实现IAP功能需要如何做呢?这里介绍如何利用ST STM转载 2012-06-10 23:15:45 · 1429 阅读 · 0 评论 -
STM32在RealView MDK中如何生成.bin格式的文件
在Realview MDK的集成开发环境中,默认情况下可以生成*.axf格式的调试文件和*.hex格式的可执行文件。虽然这两个格式的文件非常有利于ULINK2仿真器的下载和调试,但是ADS的用户更习惯于使用*.bin格式的文件,甚至有些嵌入式软件开发者已经拥有了*.bin格式文件的调试或烧写工具。为了充分地利用现有的工具,同时发挥Realview MDK集成开发环境的优势,将*.axf格式文件或*转载 2012-06-12 13:21:09 · 4684 阅读 · 1 评论 -
MDK 编译文件大小说明(Program Size)(转)
ARM编译中的RO、RW和ZI DATA区段2008-12-17 14:58ARM程序(指在ARM系统中正在执行的程序,而非保存在ROM中的bin文件)的组成一个ARM程序包含3部分:RO段,RW段和ZI段RO是程序中的指令和常量RW是程序中的已初始化变量ZI是程序中的未初始化的变量由以上3点说明可以理解为:RO就是readonly,RW就是read/write,ZI就是z转载 2012-06-25 16:52:18 · 3027 阅读 · 0 评论 -
STM32固件库使用分析(转)
STM32的V3.3.0库,内有CMSIS的文件夹为arm Cortex微控制器软件接口标准,现在将我实际工作中的作一个简要分析: 1.选择启动文件:根据自己所用的芯片的型号,选择正确的启动文件。这个根据数据手册上的划分。例如STM32F101VBT6,就选择startup_stm32f10x_md.s,在这个文件里,首选要定义自已的堆和栈的大小,这个根据自已的需要确定。文件中已经转载 2012-11-19 10:29:06 · 5293 阅读 · 0 评论 -
KEIL环境下如何让代码在 RAM中运行(转)
KEIL环境下如何让代码在 RAM中运行发布时间:2016-08-26来源:ST社区标签:KEILNucleoSTM32分享到:前言经常遇到有人使用KEIL时需要将部分或者全部程序代码放到RAM中运行的问题,现将其总结在本文中。通过STM32F411Nucleo的一个例子来介绍几种让程序在RAM中运行的方法。我们先从ToggleLED函数在Flash中执行亮灭...转载 2019-08-02 11:28:30 · 3819 阅读 · 0 评论