历史上的今天
返回首页

历史上的今天

今天是:2025年01月08日(星期三)

正在发生

2019年01月08日 | 关于STM32处理器的HardFault_Handler错误原因

2019-01-08 来源:eefocus

STM32xx处理器是ST公司采用Cortex-M的IP核实现的处理器,拥有紧凑代码量以及非常高的性价比,在单片机领域占用量非常强劲。本人所在的公司甚至用STM32F207直接替代了一些使用S3C4510B处理器的场景,因为S3C4510B面临着停产的危险,为了产品过度平稳,STM32F处理器也是一种不错的选择,可以应用于一些简单的单板设备或者必须不需要大量存储和内存的情况,开发过程中也遇到了STM32F初学者经常会遇到的一个系统中断错误提示:HardFault_Handler。


HandFault_Handler错误原因在我使用碰到过的有3种情况:


(1) 堆栈空间溢出


堆栈空间溢出问题,主要是通过增大工程中类似startup_stm32f2xx.s文件中的宏定义Stack_Size和Heap_Size来修改此问题,至于项目工程中遇到大致的堆栈空间读者可以通过MDK在线调试查看或者读者自行分析下函数调用的深度来分析。


(2) 数据访问未对齐


数据未对齐访问一般是由于指针造成的。读者可以通过打印相应变量的地址看是否为4字节对齐,比如下面给出的例子,因为你不能保证performP->rxPkt[4]或者performP->rxPkt[0]的地址就是4的整数倍,如果强制进行unsigned int *转化访问,就会出现HardFault_Hander错误:



 (3) 数组越界或者指针越界等非法访问。


后续如果有发现其他原因造成HardFault_Hander错误,欢迎自己和大家补充。多多益善。


推荐阅读

史海拾趣

CHIMEI(奇美)公司的发展小趣事

奇美公司自成立以来,始终坚持品质至上的原则。公司注重产品质量和性能的提升,通过引进先进的生产设备和工艺技术,不断提升产品的品质和竞争力。同时,奇美还建立了完善的质量管理体系,从原材料采购到产品出厂,每一个环节都严格把控,确保产品的品质达到客户的要求。这种对品质的执着追求,使得奇美的产品在市场上赢得了良好的口碑。

Harbour Industries公司的发展小趣事

背景:随着信息技术的快速发展和工业互联网的兴起,电子行业正经历着深刻的数字化转型和智能化升级。Handok紧跟时代步伐,积极推动公司的数字化转型和智能化升级。

发展:Handok引入了先进的信息化管理系统和智能制造技术,实现了生产过程的自动化、智能化和可视化。同时,公司还加强了与上下游企业的协同合作,构建了更加紧密、高效的产业链生态系统。

影响:数字化转型和智能化升级不仅提高了Handok的生产效率和产品质量,还降低了运营成本和市场风险。此外,这一战略还有助于公司在未来的市场竞争中保持灵活性和创新性。

请注意,以上故事是基于一般性的商业逻辑和行业趋势构建的,并非Handok公司的实际发展历程。由于直接关于Handok在电子行业发展的详细故事资料有限,这些故事仅供参考和启发。

FTDI公司的发展小趣事

背景:随着全球化的深入发展,电子行业也迎来了国际化的浪潮。Handok意识到,要想在激烈的国际竞争中立于不败之地,必须加强与国际市场的联系和合作。

发展:Handok积极寻求与国际知名电子企业的合作机会,通过技术引进、联合研发等方式不断提升自身的技术实力和产品品质。同时,公司还加大了对国际市场的开拓力度,通过参加国际展会、设立海外分支机构等方式扩大品牌影响力。

影响:国际合作的成功为Handok带来了更多的发展机遇和市场空间,公司的国际知名度和竞争力显著提升。

Bytesonic Corporation公司的发展小趣事

经过几年的艰苦打拼,Bytesonic Corporation在1987年迎来了重要的转折点。这一年9月,公司资本金增至新台币500万元,为公司的进一步扩张提供了坚实的资金基础。有了更多的资本支持,公司开始加大在研发和市场推广上的投入,逐渐在行业内树立起了一定的品牌影响力。

CP Technology Inc公司的发展小趣事

随着公司规模的不断扩大,CP Technology Inc开始实施全球化战略。公司在海外设立了研发中心和销售网络,以更好地服务全球客户。同时,公司还积极参与国际电子行业的交流与合作,不断提升自身的技术水平和市场竞争力。

Delta Electronics公司的发展小趣事

作为一家具有社会责任感的企业,Delta Electronics一直积极践行可持续发展理念。公司自2004年起,全球新建办公大楼、生产基地均依绿建筑工法设计建造。此外,公司还积极参与各类环保活动和社会公益事业,推动绿色能源和环保技术的发展。这些举措不仅有助于保护环境、减少污染,也提升了Delta的企业形象和品牌价值。

问答坊 | AI 解惑

FPGA任意分频包括小数分频设计

本帖最后由 paulhyde 于 2014-9-15 09:23 编辑    赶快下载吧,很好的分频措施,可以做到任意整数分频,小数分频  …

查看全部问答>

急急急 大4毕业设计开题报告

基于单片机的激光警戒系统设计,如题,麻烦好新人给点借鉴~查资料实在不好查,谢谢…

查看全部问答>

测试流接口驱动的测试程序如何写啊?

怎么写测试流接口驱动的测试程序啊?就是在应用程序中如果调用流接口驱动的那几个接口函数啊? 呵呵 有个简单的例子更好。。…

查看全部问答>

求sim300网络测试软件

跪求sim300服务器端的测试软件!!!!!! 可以接受sim300的连接请求,接收gprs发送过来的数据。。。…

查看全部问答>

多线程问题

由于电脑上没有安装linux,请问以下程序的运行结果是什么?谢谢 #include #include #include #include #include pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; int lock_var; time_t end_time; int sum; void pthread1(void ...…

查看全部问答>

在Win CE下访问局域网使用密码的处理

在Win CE 5.0下,首次通过局域网访问另外一台电脑的时候会弹出一个对话框,要求输入对方的用户名、密码和域名。像下图所示的: 我想知道的是,有没有这样一个函数,提供了这几个参数的接口,以便我在写程序时就可以把用户名、密码写进去,而不需 ...…

查看全部问答>

Bootloader 的结构

    在移植之前先了解Bootloader 的一些通用概念,对理解它的代码会有所帮助。    嵌入式Linux 系统从软件的角度通常可以分为以下4 个层次。   (1)引导加载程序,包括固化在固件(firmware)中的boot 代 ...…

查看全部问答>

DIY FPGA学习板 新鲜出炉

拖了很久了,呵呵,是在不要意思   先睹为快,上图     来个3D的 …

查看全部问答>

只想用定时计数PWM功能的时候,用汇编可行吗?

对它的高速度PWM感兴趣,如果不写复杂的算法和人机界面,单纯用汇编语言可行吗?哪些开发工具最简单易用?  我的意思是既然STM32那么便宜,功能强大速度快,干脆大大小小的项目都用这个,省得好多种单片机感觉很累。…

查看全部问答>

使用XTR106的位置检测电路

工业上应用的使用XTR106(XTR104)的位置检测电路。稍加改进即可应用在其他方面用作位置检测控制。  …

查看全部问答>