搜索

[研电赛技术支持] GD32F4固件库使用AC6编译 编译通过 有警告

[复制链接]
141|15
 楼主 | 2021-3-11 11:24 | 显示全部楼层 |阅读模式
GD32f4固件库  keil工程使用的AC5  编译USB CDC例程的时候   没什么问题  
但是ac5编译很慢啊  于是换成AC6  AC6编译弹出两个警告   左看又看没问题啊    提示修饰符编译被忽略
弄了很久也想不通为什么    有没有大神指导原因的?

代码:
void *usb_rxfifo_read (usb_core_regs *usb_regs, uint8_t *dest_buf, uint16_t byte_count)
{
     uint32_t word_count = (byte_count + 3U) / 4U;
    __IO uint32_t *fifo = usb_regs->DFIFO[0];

    while (word_count-- > 0U) {
        *( __packed uint32_t *)dest_buf = *fifo;

        dest_buf += 4U;
    }

    return ((void *)dest_buf);
}

编译警告:
../../../../../Firmware/GD32F4xx_usb_library/driver/Source/drv_usb_core.c(225): warning: '__packed__' attribute ignored when parsing type [-Wignored-attributes]
        *fifo = *((__packed uint32_t *)src_buf);
                   ^~~~~~~~
../inc/usb_conf.h(184): note: expanded from macro '__packed'
        #define __packed __attribute__((__packed__))
                                        ^~~~~~~~~~
../../../../../Firmware/GD32F4xx_usb_library/driver/Source/drv_usb_core.c(247): warning: '__packed__' attribute ignored when parsing type [-Wignored-attributes]
        *( __packed uint32_t *)dest_buf = *fifo;
           ^~~~~~~~
../inc/usb_conf.h(184): note: expanded from macro '__packed'
        #define __packed __attribute__((__packed__))
                                        ^~~~~~~~~~

使用特权

评论回复
| 2021-3-11 13:35 | 显示全部楼层
ARMCC6的语法有变化,把__packed关键字替换为__unaligned

packed.jpg





使用特权

评论回复
 楼主 | 2021-3-11 15:20 | 显示全部楼层
sonicll 发表于 2021-3-11 13:35
ARMCC6的语法有变化,把__packed关键字替换为__unaligned

万分感谢,找了好久也没有找到  找到一个AC5  AC6的对比文档   但是和你这个不同  还是用的packed。  所以一直卡在这里。谢谢你了!  网上关于这个问题的资源太少了!  我找的keil官网的https://www.keil.com/appnotes/files/apnt_298.pdf   这个文档  里面也是packed   就没有怀疑这个修饰词变了
大神,  文档哪里能找到呢   

使用特权

评论回复
| 2021-3-11 15:27 | 显示全部楼层
suqiang1271 发表于 2021-3-11 15:20
万分感谢,找了好久也没有找到  找到一个AC5  AC6的对比文档   但是和你这个不同  还是用的packed。  所 ...

Keil自带的文档里就有

book.jpg




使用特权

评论回复
| 2021-3-11 18:28 | 显示全部楼层
我是直接把这个函数重写了,不用__packed关键词。

使用特权

评论回复
| 2021-3-11 18:57 | 显示全部楼层
语法不对吧,二楼正解。

使用特权

评论回复
 楼主 | 2021-3-12 10:00 | 显示全部楼层
sonicll 发表于 2021-3-11 15:27
Keil自带的文档里就有

感谢了  之前一直用IAR   现在才用KEIL  不是很熟悉  还不知道这里可以看文档    我还去官网找文档

使用特权

评论回复
 楼主 | 2021-3-12 10:00 | 显示全部楼层
imdx 发表于 2021-3-11 18:28
我是直接把这个函数重写了,不用__packed关键词。

我也想过重写  但是还是想把这个问题原因找到

使用特权

评论回复
 楼主 | 2021-3-12 10:03 | 显示全部楼层
真爱吴迪迪 发表于 2021-3-11 18:57
语法不对吧,二楼正解。

对的  谢谢

使用特权

评论回复
| 2021-3-12 10:57 | 显示全部楼层
suqiang1271 发表于 2021-3-12 10:00
我也想过重写  但是还是想把这个问题原因找到

原因就是AC6不支持__packed关键词了。

使用特权

评论回复
 楼主 | 2021-3-12 15:39 | 显示全部楼层
imdx 发表于 2021-3-12 10:57
原因就是AC6不支持__packed关键词了。

恩  换关键词

使用特权

评论回复
| 2021-4-7 16:46 | 显示全部楼层
网上关于这个问题的资源确实很少

使用特权

评论回复
| 2021-4-7 16:47 | 显示全部楼层
恭喜楼主解决问题啊

使用特权

评论回复
| 2021-4-7 16:51 | 显示全部楼层
这俩关键字的区别是什么啊

使用特权

评论回复
| 2021-4-7 16:52 | 显示全部楼层
为什么编译会很慢呢

使用特权

评论回复
| 2021-4-7 16:54 | 显示全部楼层
只有一种固件库吗

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 我要提问 投诉建议 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

在线客服 快速回复 返回顶部 返回列表