删除重新发帖

2019-07-20 02:46发布

本帖最后由 fuluoce 于 2019-4-4 16:20 编辑

结构体如下:
__packed struct AD9362_TypeDef  //
{
        uint8_t                 id_no;
        //uint8_t                 id_no1;
        uint32_t    data_t[8];               
        bool                          bbdc_track_en;  ////
        bool                          quad_track_en; /////
        uint32_t                bist_tone_level_dB;
        uint32_t                bist_tone_mask;

} ;
单字节对齐,当结构体中间数组是data_t[7];        时运行正常,如下图:
am8图片20190404151742456.png
当结构体中间数组是data_t[8];        时运行不正常,函数形参结构体指针自动改变,如下图:


网上查说字节并对其问题,我改为4字节对齐
__align(4) struct AD9362_TypeDef  //
{
        uint8_t                 id_no;
        //uint8_t                 id_no1;
        uint32_t            data_t[30];               
        bool                          bbdc_track_en;  ////
        bool                          quad_track_en; /////
        uint32_t                bist_tone_level_dB;
        uint32_t                bist_tone_mask;

} ;
中间数组为 data_t[8];时确实没问题,但是数组改为 data_t[30];或者以上时,同样会出现地址改变的情况。


哪位大神遇到过,求解决办法

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。