STM32H743iit6发生内存冲突
H743iit6_002\H743iit6_002.axf: Error: L6971E: freertos.o(.data) type RW incompatible with ltdc_1.o(.ARM.__AT_0xC0000000) type ZI in er RW_RAM1.这个显示在RAM1的空间中freertos的数据和ltdc的地址冲突,但是我不知道freertos的哪个地方用到了这个地址
也不知道是不是lvgl的地址跟这个ltdc冲突了
把你LTDC的AT定义去掉,看map文件,不就知道另外那个地址占用0xC0000000了 eric2013 发表于 2024-4-7 07:40
把你LTDC的AT定义去掉,看map文件,不就知道另外那个地址占用0xC0000000了
是的我现在调整了外部SDRAM的空间之后没有编译报错,但是运行会跳转到HardFualt中断里面,以下是我使用的芯片空间"C:\Users\yuan\Desktop\images\e5fa1c37400f49dfaba167776ee7bd17.png""C:\Users\yuan\Desktop\images\97f8440e9b4d484eb90a9dad8853345b.jpg"然后这个是我内存分配的情况"C:\Users\yuan\Desktop\images\Snipaste_2024-04-07_12-04-11.png",我感觉我这个问题跟这个很像https://shequ.stmicroelectronics.cn/thread-535442-1-1.html,但是小弟看不懂他这个是怎么解决的,还请硬汉哥答疑解惑 eric2013 发表于 2024-4-7 07:40
把你LTDC的AT定义去掉,看map文件,不就知道另外那个地址占用0xC0000000了
是的我现在调整了外部SDRAM的空间之后没有编译报错,但是运行会跳转到HardFualt中断里面,以下是我使用的芯片空间"C:\Users\yuan\Desktop\images\e5fa1c37400f49dfaba167776ee7bd17.png""C:\Users\yuan\Desktop\images\97f8440e9b4d484eb90a9dad8853345b.jpg"然后这个是我内存分配的情况"C:\Users\yuan\Desktop\images\Snipaste_2024-04-07_12-04-11.png",我感觉我这个问题跟这个很像https://shequ.stmicroelectronics.cn/thread-535442-1-1.html,但是小弟看不懂他这个是怎么解决的,还请硬汉哥答疑解惑 eric2013 发表于 2024-4-7 07:40
把你LTDC的AT定义去掉,看map文件,不就知道另外那个地址占用0xC0000000了
是的我现在调整了外部SDRAM的空间之后没有编译报错,但是运行会跳转到HardFualt中断里面,以下是我使用的芯片空间然后这个是我内存分配的情况,我感觉我这个问题跟这个很像https://shequ.stmicroelectronics.cn/thread-535442-1-1.html,但是小弟看不懂他这个是怎么解决的,还请硬汉哥答疑解惑 iihj 发表于 2024-4-7 12:13
是的我现在调整了外部SDRAM的空间之后没有编译报错,但是运行会跳转到HardFualt中断里面,以下是我使用的 ...
你的MDK里面不应该这么勾选,你应该仅勾选128KB的0x2000 0000或者512KB的0x2400 0000地址空间即可。
你这样成了混合分配内部和外部了,这样很容易出问题。
当然,也可以通过分散加载设置各种RAM一起使用,此贴。
【原创】像使用内部SRAM一样定义使用STM32H7的外部SDRAM,含MDK和IAR两版
https://www.armbbs.cn/forum.php? ... id=98697&fromuid=58
(出处: 硬汉嵌入式论坛)
eric2013 发表于 2024-4-8 07:38
你的MDK里面不应该这么勾选,你应该仅勾选128KB的0x2000 0000或者512KB的0x2400 0000地址空间即可。
...
哥我看了一下你的那个例程也修改了.act文件呀,然后现在就是编译没有问题,然后会在systeminit函数里面就跳转到handfluat这个中断里面了
iihj 发表于 2024-4-8 23:35
哥我看了一下你的那个例程也修改了.act文件呀,然后现在就是编译没有问题,然后会在systeminit函数里 ...
关键是你这个地方,你选择的什么
eric2013 发表于 2024-4-10 08:17
关键是你这个地方,你选择的什么
我感觉应该是在程序 的systeminit初始化的时候堆栈区不知道为什么到外部sdram里面了,所以导致会跳转到Handfualt这个中断里面,硬汉哥有什么好解决方法吗?
iihj 发表于 2024-4-10 08:40
我感觉应该是在程序 的systeminit初始化的时候堆栈区不知道为什么到外部sdram里面了,所以导致会跳 ...
你当前的这个配置跟用不用自定义分散加载设置没区别了,必须指定用那个。
eric2013 发表于 2024-4-10 09:48
你当前的这个配置跟用不用自定义分散加载设置没区别了,必须指定用那个。
嗯....意思是把这些个.ANY (+RW +ZI)删除到只保留一个吗?
我现在把栈区指定到了内部的sram里面了,现在可以运行起来了,但是在访问到外部sdram的时候依然会跳转到HandFualt里面,可是我检查过了一遍引脚的设置和外部sdram的设置都没有问题
但是现在依然无法访问外部sdram
iihj 发表于 2024-4-10 23:46
嗯....意思是把这些个.ANY (+RW +ZI)删除到只保留一个吗?
我现在把栈区指定到了内部的sram里面了,现在 ...
SDRAM的话,可以参考下我这个
【原创】像使用内部SRAM一样定义使用STM32H7的外部SDRAM,含MDK和IAR两版
https://www.armbbs.cn/forum.php?mod=viewthread&tid=98697&fromuid=58
(出处: 硬汉嵌入式论坛)
eric2013 发表于 2024-4-11 10:22
SDRAM的话,可以参考下我这个
【原创】像使用内部SRAM一样定义使用STM32H7的外部SDRAM,含MDK和IAR两 ...
嗯,是的,我找到了一个跟我的情况相同的人的帖子https://www.armbbs.cn/forum.php?mod=viewthread&tid=121655,在下面找到了,佬的解决方法
现在,我把用到外部SDRAM的变量都定义在main.h中了,可是不知道为何,所以包含了main.h的.c文件都会和main.c发生重复定义,而且这些文件里面根本没有这些变量
iihj 发表于 2024-4-12 10:57
嗯,是的,我找到了一个跟我的情况相同的人的帖子https://www.armbbs.cn/forum.php?mod=viewthread&tid=1 ...
这样的话,变量定义可以放在C里面,其它C和H文件里面都是extern即可。
是的我现在,将外部使用到的sdram地址的变量定义在了main.c里面,但是很奇怪,我在使用正点的malloc的函数时发现,这个外部sdram还是没有成功初始化,明明我在使用之前已经进行了初始化的函数
iihj 发表于 2024-4-14 14:34
是的我现在,将外部使用到的sdram地址的变量定义在了main.c里面,但是很奇怪,我在使用正点的malloc的 ...
剩下这些问题都比较好弄了,可以自己再摸索下。 eric2013 发表于 2024-4-15 09:44
剩下这些问题都比较好弄了,可以自己再摸索下。
佬为什么我这个程序在初始化lvgl的时候会卡在这个地方,无法访问这个lv_conf设置的地址?
eric2013 发表于 2024-4-15 09:44
剩下这些问题都比较好弄了,可以自己再摸索下。
佬为什么我这个程序在初始化lvgl的时候会卡在这个地方,无法访问这个lv_conf设置的地址?
页:
[1]