打印
[研电赛技术支持]

GD32F4固件库使用AC6编译 编译通过 有警告

[复制链接]
1650|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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__))
                                        ^~~~~~~~~~

使用特权

评论回复
沙发
sonicll| | 2021-3-11 13:35 | 只看该作者
ARMCC6的语法有变化,把__packed关键字替换为__unaligned







使用特权

评论回复
板凳
suqiang1271|  楼主 | 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   就没有怀疑这个修饰词变了
大神,  文档哪里能找到呢   

使用特权

评论回复
地板
sonicll| | 2021-3-11 15:27 | 只看该作者
suqiang1271 发表于 2021-3-11 15:20
万分感谢,找了好久也没有找到  找到一个AC5  AC6的对比文档   但是和你这个不同  还是用的packed。  所 ...

Keil自带的文档里就有






使用特权

评论回复
5
imdx| | 2021-3-11 18:28 | 只看该作者
我是直接把这个函数重写了,不用__packed关键词。

使用特权

评论回复
6
真爱吴迪迪| | 2021-3-11 18:57 | 只看该作者
语法不对吧,二楼正解。

使用特权

评论回复
7
suqiang1271|  楼主 | 2021-3-12 10:00 | 只看该作者
sonicll 发表于 2021-3-11 15:27
Keil自带的文档里就有

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

使用特权

评论回复
8
suqiang1271|  楼主 | 2021-3-12 10:00 | 只看该作者
imdx 发表于 2021-3-11 18:28
我是直接把这个函数重写了,不用__packed关键词。

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

使用特权

评论回复
9
suqiang1271|  楼主 | 2021-3-12 10:03 | 只看该作者
真爱吴迪迪 发表于 2021-3-11 18:57
语法不对吧,二楼正解。

对的  谢谢

使用特权

评论回复
10
imdx| | 2021-3-12 10:57 | 只看该作者
suqiang1271 发表于 2021-3-12 10:00
我也想过重写  但是还是想把这个问题原因找到

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

使用特权

评论回复
11
suqiang1271|  楼主 | 2021-3-12 15:39 | 只看该作者
imdx 发表于 2021-3-12 10:57
原因就是AC6不支持__packed关键词了。

恩  换关键词

使用特权

评论回复
12
coshi| | 2021-4-7 16:46 | 只看该作者
网上关于这个问题的资源确实很少

使用特权

评论回复
13
tfqi| | 2021-4-7 16:47 | 只看该作者
恭喜楼主解决问题啊

使用特权

评论回复
14
wiba| | 2021-4-7 16:51 | 只看该作者
这俩关键字的区别是什么啊

使用特权

评论回复
15
zljiu| | 2021-4-7 16:52 | 只看该作者
为什么编译会很慢呢

使用特权

评论回复
16
aoyi| | 2021-4-7 16:54 | 只看该作者
只有一种固件库吗

使用特权

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

本版积分规则

12

主题

44

帖子

1

粉丝