打印
[学习笔记]

【杰发科技AC7840x测评】分享一些例程调试出错的解决方法

[复制链接]
2183|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lulugl|  楼主 | 2023-11-27 08:12 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 lulugl 于 2023-11-27 08:16 编辑

#申请原创#
【前言】
官方的提供的例程当中,我看到对IAR的支持比较多一些,keil可能只支持v5的编译器,所以在使用AC6以上的版本会遇到一些编译上的问题。下面是我在使用中遇到的一些问题,问题描述、原因分析、以及解决办法分享如下,希望对大家使用中有些帮助。
【问题1】
debugout_ac7840x.c中报__FILE重复定义:

【原因】:
_FILE在stdio.h中有定义,所以出现了重复定义的错误。

【解决方法】
直接注释debugout_ac7840.c中的结构体定义。

【讨论】
其实我也不知道这里重复定义这个是出于什么原因,还请官方来解释一下。
【问题二】
在i2c_master_dma_sample.c中出现在数组未定义的错误。

【原因】
#if    defined ( __ICCARM__ )        /* IAR Compiler */
uint8_t g_rxBuff[I2C_RX_SIZE] @0x20000000 = {0};
uint8_t g_txBuff[I2C_TX_SIZE] @0x20000000 = {0};
#elif  defined ( __CC_ARM )        /* Arm Compiler */
uint8_t g_rxBuff[I2C_RX_SIZE] __attribute__((at(0x20000000))) = {0};
uint8_t g_txBuff[I2C_TX_SIZE] __attribute__((at(0x20000200))) = {0};
#endif

在这个定义收发数组时,出于两个条件都不满足所以出现数组未定义,用AC5时,__CC_ARM是默认定义的,改为AC6后,就没有定义了,需要增加AC6的要件编译。
【解决方法】
增加条件编译:
<span style="font-weight: normal;">#if    defined ( __ICCARM__ )        /* IAR Compiler */
uint8_t g_rxBuff[I2C_RX_SIZE] @0x20000000 = {0};
uint8_t g_txBuff[I2C_TX_SIZE] @0x20000000 = {0};
#elif  defined ( __CC_ARM )        /* Arm Compiler */
uint8_t g_rxBuff[I2C_RX_SIZE] __attribute__((at(0x20000000))) = {0};
uint8_t g_txBuff[I2C_TX_SIZE] __attribute__((at(0x20000200))) = {0};
#elif  defined (__clang__)        /* Arm V6 Compiler */
uint8_t g_rxBuff[I2C_RX_SIZE] __attribute__((at(0x20000000))) = {0};
uint8_t g_txBuff[I2C_TX_SIZE] __attribute__((at(0x20000200))) = {0};
#endif</span>

【讨论】
由于mdk的版本升级导至有些条件编译不对,可能杰发的工程师大大们是老鸟,一直老版开发,所以没有考虑到新版本的keil编译器,所以出现这个问题,建议修复一下这个问题。

昨天我收到开发板后,跑了好一些例程,都出现一些问题,早上起来,感觉还是记录一下好。如果描述的问题以太原因不对,请及时联系我,并及时修正。

710966563da94de7e2.png (480.17 KB )

710966563da94de7e2.png

使用特权

评论回复

相关帖子

沙发
木偶ll| | 2023-11-27 10:10 | 只看该作者
本帖最后由 木偶ll 于 2023-11-27 10:11 编辑

嗯,是的,暂未对AC6进行适配问题一是AC5和AC6对printf重定向方法不一样导致,目前只内置了AC5的重定向

使用特权

评论回复
板凳
lulugl|  楼主 | 2023-11-27 15:50 | 只看该作者
木偶ll 发表于 2023-11-27 10:10
嗯,是的,暂未对AC6进行适配问题一是AC5和AC6对printf重定向方法不一样导致,目前只内置了AC5的重定向
...

可以在例程中的说明文档注明编译环境。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

145

主题

713

帖子

9

粉丝