查看: 2313|回复: 1

[其他] IAR兼容问题

[复制链接]
  • TA的每日心情

    2018-11-27 09:26
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    13

    主题

    46

    帖子

    3

    中级会员

    Rank: 3Rank: 3

    积分
    205
    最后登录
    2019-10-16
    发表于 2018-12-20 20:04:26 | 显示全部楼层 |阅读模式
    IDE(IAR 7.60.2),MCU(PS32K144UAVLLA).
    这两天想把UART改成DMA提高一下效率,因为UART中断好像影响到CAN中断的效率了,CAN有丢帧现象。
    但是参考例程,搞了三天,硬是没把DMA搞好,而且越搞越迷糊。昨天就发现程序会跑飞,然后我自己观察IAR里的寄存器变量,发现DMA模块有两个问题,以前其他模块没遇到这种情况。第一种是我直接观察寄存器,发现我写寄存器和值发生变化的寄存器,存在偏差,直接看下面两个图
    EBD4B594-A8D8-4e07-A177-69F1F4DA0D76.png
    这里我刚执行写SOFF值,操作时对的(注意档次操作值发生变化的寄存器值是会变成红色的)
    480EBE77-AD7B-4657-8E63-9A0053E5F7AD.png
    但是这次我执行的是写ATTR的值,但是,ATTR的值并没有变,而NBYTES_MLNO的值变了。
    这是第一种怪异的现象。
    第二种怪异的现象是,我直接观察变量,就在这里观察变量base(地址已经核对过是0x40008000,确实指向的就是DMA的结构体),但是把base这个变量展开后发现TCD数组从第11项开始就存在异常,我也说不清楚是啥异常,直接上图
    6F1B91CC-1BA4-40f1-8FDD-872EF3B01ABA.png 21D48B32-725B-4182-9E01-5A8BF9A882C2.png
    04967114-CD52-4a62-997E-050000BDCF0E.png
    仔细看右侧的变量,是不是应该理解为这些显示<unavailable>的项是没有赋地址呢?但是他们的地址值又是对的呀。
    我现在的情况就是在执行EDMA_Init(edmaRegBase)处就跑飞。

    59A645AB-CC39-4021-9372-EE870C361DDE.png
    例程我是参考的"adc_low_power_s32k144"工程的,头文件也对过。而且我同事在S32DS上也配置了一个例程,编译运行了DMA_UART是可以正常大宋数据的,后来发现他生成的代码就是我参考的这一份代码。但是因为我们电脑的加密协议跟S32DS有冲突,所以我一开始就用的IAR。S32DS只是在虚拟机里生成代码来参考一下。但我同事的S32DS可以用。

    还有一个问题是,DMA模块是否需要像UART,IIC模块一样使能PCC时钟?因为我在S32DS软件下的所有例程里都找不到需要的例子,而且也没有定义
    PCC_DMA0_INDEX.
    但是,我今天在官网
    9C560EC6-83AD-4e7c-A842-C322D315A894.png
    下的一个例子里面竟然发现了一样一段代码,里面竟然使能了PCC_DMA,而且S32K144.H里也有这个的定义
    E9398A48-E979-469f-AE7E-5366500DB026.png 89E002ED-734C-4015-B1CB-60744219A254.png



    我知道答案 目前已有1人回答
    CAN唤醒还是没整好
    回复

    使用道具 举报

  • TA的每日心情

    2018-11-27 09:26
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    13

    主题

    46

    帖子

    3

    中级会员

    Rank: 3Rank: 3

    积分
    205
    最后登录
    2019-10-16
     楼主| 发表于 2018-12-21 12:03:25 | 显示全部楼层
    问题已经解决,终于发现了问题,是蓝宙的工程里,uint16_t 的定义为typedef unsigned int,而这个定义IAR给了4个byte,后来改成typedef unsigned short int,问题解决。不知道是 不是IAR可以更改int的定义。

    评分

    参与人数 1 +1 收起 理由
    NXP管管 + 1 结帖奖励

    查看全部评分

    CAN唤醒还是没整好
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-21 06:38 , Processed in 0.095930 second(s), 27 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表