使用AT芯片,移植emwin碰到的问题
之前的显存是放在CCM中的,然后用这个AT的芯片,就打算将其放在RAM的后64k的位置(该芯片通过例程,配置为224K),然后我定义了一个大数组menu[],里面包含了界面的信息,但是当我调用到这个大数组的时候,使用keil的调试,要点三次‘运行’才会跑起来,并且下载到芯片上,上电没反应,只有调试才有现象?
请问这是什么原因哦?
这是未调用到大数组menu[]时,关于flash和RAM的大小
这是调用到大数组menu[]时,关于flash和RAM的大小
AT有关于emwin的例程吗?或者关于RAM的应用例程? 这个应该是emwin移植的问题,将menu[]逐渐调小再试试呢? 本帖最后由 chenyuanjiyi 于 2021-5-24 17:16 编辑
muyichuan2012 发表于 2021-5-24 16:55
这个应该是emwin移植的问题,将menu[]逐渐调小再试试呢?
刚试了下 现象还是一样的,要调试的时候才会有现象就剩其中两个也是一样的,ST的情况下没碰到过这个现象,最大的区别也就定义显存的的方式不一样:
#ifdef AT32F403AVGT7
static U32 aMemory __attribute__((at(0x20028000+1024*58)));//0x20028800
#else
static U32 aMemory __attribute__((at(CCMDATARAM_BASE+1024*58)));
#endif
堆栈配置调整没 muyichuan2012 发表于 2021-5-24 17:13
堆栈配置调整没
按照之前的代码配置 都改成了400
muyichuan2012 发表于 2021-5-24 17:13
堆栈配置调整没
你好 请问你们这边有使用到emwin的例程吗? 你们显存地址是怎么定义的呢? 将keil 的编译器优化的等级 从 0 改成 3 (-O0:最少的优化 -O3:最大程度优化),发现就没有调试要点三次才运行和下载进去没反应的问题了
优化等级为-O0:Program Size: Code=88700 RO-data=147252 RW-data=6304 ZI-data=98864
优化等级为-O3:Program Size: Code=103244 RO-data=194008 RW-data=6840 ZI-data=106936
现在只是初步解决了现象,但是根本原因不清楚,请问有什么思路可以找到根本问题吗?
编译器优化的是具体有是什么呢?
百度查了下编译器优化的:https://www.cnblogs.com/w-smile/p/10012749.html
对于如何解决这个根本性问题 没找到有啥帮助的
请大佬指点 chenyuanjiyi 发表于 2021-5-26 15:41
将keil 的编译器优化的等级 从 0 改成 3 (-O0:最少的优化 -O3:最大程度优化),发现就没有调试要点三 ...
https://bbs.21ic.com/icview-3134924-1-1.html 我的就是AT32F403A+emwin下的
Stack_Size EQU 0x0000800;///0x00000400
栈空间要改成0x800 hejun96 发表于 2021-5-27 10:55
https://bbs.21ic.com/icview-3134924-1-1.html 我的就是AT32F403A+emwin下的
Stack_Size EQU ...
要改这么大的吗?之前的ST芯片就是用的400完全够用了
页:
[1]