打印
[AT32F403/403A]

使用AT芯片,移植emwin碰到的问题

[复制链接]
2318|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主

之前的显存是放在CCM中的,然后用这个AT的芯片,就打算将其放在RAM的后64k的位置(该芯片通过例程,配置为224K),然后我定义了一个大数组menu[],里面包含了界面的信息,但是当我调用到这个大数组的时候,使用keil的调试,要点三次‘运行’才会跑起来,并且下载到芯片上,上电没反应,只有调试才有现象?

请问这是什么原因哦?
这是未调用到大数组menu[]时,关于flash和RAM的大小
这是调用到大数组menu[]时,关于flash和RAM的大小

使用特权

评论回复
沙发
chenyuanjiyi|  楼主 | 2021-5-24 16:42 | 只看该作者
AT有关于emwin的例程吗?  或者关于RAM的应用例程?

使用特权

评论回复
板凳
muyichuan2012| | 2021-5-24 16:55 | 只看该作者
这个应该是emwin移植的问题,将menu[]逐渐调小再试试呢?

使用特权

评论回复
地板
chenyuanjiyi|  楼主 | 2021-5-24 17:03 | 只看该作者
本帖最后由 chenyuanjiyi 于 2021-5-24 17:16 编辑
muyichuan2012 发表于 2021-5-24 16:55
这个应该是emwin移植的问题,将menu[]逐渐调小再试试呢?

刚试了下 现象还是一样的,要调试的时候才会有现象 就剩其中两个也是一样的,ST的情况下没碰到过这个现象,最大的区别也就定义显存的的方式不一样:
#ifdef AT32F403AVGT7
static U32 aMemory[1024] __attribute__((at(0x20028000+1024*58)));//0x20028800
#else
static U32 aMemory[1024] __attribute__((at(CCMDATARAM_BASE+1024*58)));
#endif


使用特权

评论回复
5
muyichuan2012| | 2021-5-24 17:13 | 只看该作者
堆栈配置调整没

使用特权

评论回复
6
chenyuanjiyi|  楼主 | 2021-5-24 17:17 | 只看该作者

按照之前的代码配置 都改成了400

使用特权

评论回复
7
chenyuanjiyi|  楼主 | 2021-5-24 17:21 | 只看该作者

你好 请问你们这边有使用到emwin的例程吗? 你们显存地址是怎么定义的呢?

使用特权

评论回复
评论
chenyuanjiyi 2021-5-24 18:30 回复TA
@muyichuan2012 :好的 已经收到了 谢谢啦! 
muyichuan2012 2021-5-24 18:01 回复TA
@chenyuanjiyi :已发, 10分钟应该可以收到。 
chenyuanjiyi 2021-5-24 17:53 回复TA
@muyichuan2012 :1364465583@qq.com 谢谢啦! 
muyichuan2012 2021-5-24 17:50 回复TA
有,留个邮箱吧 
8
chenyuanjiyi|  楼主 | 2021-5-26 15:41 | 只看该作者
将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
对于如何解决这个根本性问题 没找到有啥帮助的

请大佬指点

使用特权

评论回复
9
hejun96| | 2021-5-27 10:55 | 只看该作者
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

使用特权

评论回复
10
chenyuanjiyi|  楼主 | 2021-5-27 11:56 | 只看该作者
hejun96 发表于 2021-5-27 10:55
https://bbs.21ic.com/icview-3134924-1-1.html 我的就是AT32F403A+emwin下的

Stack_Size      EQU      ...

要改这么大的吗?  之前的ST芯片就是用的400完全够用了

使用特权

评论回复
评论
muyichuan2012 2021-5-27 12:54 回复TA
你用多大就改多大,与芯片无关。 
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

134

帖子

3

粉丝