大学生
最后登录1970-1-1
在线时间 小时
注册时间2016-2-5
|
楼主 |
发表于 2019-5-14 20:59:53
|
显示全部楼层
本帖最后由 LiuMC 于 2019-5-14 21:05 编辑
问题解决了。我开发环境使用truestudio。
在启动文件startup_stm32f429xx.s中,以前发现Reset_Handler函数中有一句bl __libc_init_array,不知道干什么就注释了,当时跑程序也没发现什么问题,这下问题就出来了。把该句注释取消后编译下载便没有问题了。
对于hal.initialize(),调试时通过反汇编窗口看到,
96 hal.initialize();
080125d2: ldr r0, [r7, #20]
080125d4: bl 0x8015b74 <_ZN8touchgfx3HAL10initializeEv> ;调用_ZN8touchgfx3HAL10initializeEv
_ZN8touchgfx3HAL10initializeEv:
08015b75: push {r4, lr}
08015b77: mov r4, r0
08015b79: bl 0x8012bdc <touchgfx::OSWrappers::initialize()> ;调用OSWrappers::initialize(),创建同步信号量
08015b7d: ldr r0, [r4, #4] ;r4=0x2000d43c,是hal实例的引用。执行后r0=0x2000d2f0,是dma实例地址
08015b7f: ldr r3, [r0, #0]
08015b81: ldr r3, [r3, #12]
08015b83: blx r3 ;调用dma.initialize(),初始化DMA2D
08015b85: ldr r0, [r4, #12]
08015b87: ldr r3, [r0, #0]
08015b89: ldr r3, [r3, #8]
08015b8b: blx r3 ;调用tc.init(),初始化触摸控制
08015b8d: ldr r3, [r4, #0]
08015b8f: mov r0, r4
08015b91: ldr r3, [r3, #96] ; 0x60
08015b93: ldmia.w sp!, {r4, lr}
08015b97: bx r3 ;调用hal.configureInterrupts(),配置中断
|
|