硬汉嵌入式论坛

 找回密码
 立即注册
查看: 9582|回复: 2
收起左侧

[emWin] emWin-5.22移植到RL-ARM上。总是出现HardFault_Handler

[复制链接]

2

主题

4

回帖

10

积分

新手上路

积分
10
发表于 2014-5-7 20:17:13 | 显示全部楼层 |阅读模式
使用平台:LPC1788。运行RL-ARM操作系统。裸机环境下,emWin可以正常运行。但是增加OS之后,总是出现HardFault_Handler。
调试过程中发现:在LCD_X_DisplayDriver中,不能进入LCD_X_INITCONTROLLER选项中初始化LCD。在设置完VRAM和ORG坐标后
通过汇编语言调试。
1.jpg

直接进入GUI_RegisterExit函数,再进入GUITASK_Init函数,就会出现HardFault_Handler。调试了好几天始终没有找到问题。
关于在STM32下必须开启CRC时钟的说法,在LPC1788下,好像没有CRC时钟。还有就是LCD Driver选择的是默认的GUIDRV_Lin_16_API。
不加OS时,这个驱动可以使用。
回复

使用道具 举报

2

主题

4

回帖

10

积分

新手上路

积分
10
 楼主| 发表于 2014-5-8 14:37:11 | 显示全部楼层
等了一天还是没人回答。不过,问题已经解决了。原来还是出在SDRAM上。当使用SDRAM之后,SDRAM就可能当做数据区来使用。
但是如果采用分散加载文件的方式,SDRAM要是被划分为数据区,在调用main函数之前必须进行初始化。否则会出现HardFault_Handler。
可以在启动代码中初始化:
Reset_Handler    PROC
                EXPORT  Reset_Handler             [WEAK]
                IMPORT  SystemInit
                IMPORT  __low_level_init
                                IMPORT  __main
                                LDR     R0, =SystemInit
                                BLX     R0
                                LDR     R0, =__low_level_init
                                BLX     R0
                                LDR     R0, =__main
                                BX      R0
                ENDP
在__low_level_init中调用EMC_Init()初始化SDRAM。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107470
QQ
发表于 2014-5-8 16:29:05 | 显示全部楼层

回 he19880406 的帖子

he19880406:等了一天还是没人回答。不过,问题已经解决了。原来还是出在SDRAM上。当使用SDRAM之后,SDRAM就可能当做数据区来使用。
但是如果采用分散加载文件的方式,SDRAM要是被划分为数据区,在调用main函数之前必须进行初始化。否则会出现HardFault_Handler。
可以在启动代码中初始化:
Re .. (2014-05-08 14:37) 
不好意思啊,昨天忙着发教程了,今天才看到你的帖子
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-6-3 03:40 , Processed in 0.155207 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表