0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

IAR编译环境使用小技巧(1)

瑞萨MCU小百科 来源:瑞萨MCU小百科 2023-12-13 13:27 次阅读

推荐使用独立的上/下电时序管理芯片:SLG7RN46137V

1SLG7RN46137V芯片已经编程烧录完毕,直接贴片使用即可。

2高压伺服、交流伺服、变频器、压力变送器、中压伺服应用中,强烈推荐使用独立的上电时序管理芯片。

因为这类似系统的干扰信号相对比较大,如 “振铃干扰”、“电容退耦”等原因,导致弱电控制部分的控制信号,较容易被高压部分干扰。使用独立的上电/下电管理芯片,可以有效的规避这个问题。

3PLC控制器、PLC耦合器、一网到底PLC-DIDO模块,可以暂时不考虑。

4RZ/T2M、RZ/T2L、RZ/N2L系列,上电和下电管理时序说明如下:

低电压的先上电,高电压的后上电;高电压的先掉电,低电压的后掉电。这样的时序要求其实对于分立式DCDC的供电设计逻辑控制是比较复杂的。

详细的时序图如下:

91225f02-9975-11ee-8b88-92fbcf53809c.png

上图中红框里面的这个时序,是最为关键的。如果1.8v跌落后,3.3v依然持续供电,会导致RZ/T2M、RZ/N2L、RZT2L芯片损坏。

推荐使用的PMIC:DA9061-16AM1 & DA9061-16AM

1AM1和AMC仅仅是芯片包装方式的不同。芯片本身并未明显不同。

2早期的这份文档(2.7以及之前),此处描述有明显错误。

DA9061-00AMx,为空白片。

DA9061-16AMx,为编程片,无需烧录,购买后直接焊接。上电时序和电源管理逻辑,已经在出厂之前烧录到了芯片内部。

913c1ffa-9975-11ee-8b88-92fbcf53809c.png

应用细节描述

RZ/T2M和RZ/N2L芯片内部的供电结构的原因,导致3.3v,1.8v,1.2v的上电时序有较为严格的时序要求。

PMIC的上电和掉电时序,是完全可以由内部OTP控制的。目前PMIC的完整料号是DA9061-16AM1,其中16AM1代表这个OTP已经被烧录,并可以支持RZ/T2M、RZ/N2L。

下单和订购样品的时候,直接选择DA9061-16AM1或者DA9061-16AMC即可。不要订购空白片DA9061-00AM1。

9150f6fa-9975-11ee-8b88-92fbcf53809c.png

此设计已经在瑞萨中国的EVK上进行过验证。不用担心匹配性、稳定性问题。

IAR编译环境使用小技巧

1IAR打“编译”专用补丁

如您不评估Profinet,请使用IAR 9.30.1或以上,比如9.32.1。官方例程均基于该版本(IAR 9.30.1),可以跳过下面的所有叙述。

a) IAR85和IAR92,无法编译R52 CORE的 RZ/T2M和RZ/N2L。所以需要打补丁。

b) IAR9.3x 版本,可以编译RZT2M和RZN2L。

①如果使用IAR85和IAR92,需要手动打补丁进行编译。

②实测,IAR 8.5.x,IAR 9.2.X系列,打过补丁后,均可正常编译出 可执行文件。

③编译器补丁如下。

9161ab76-9975-11ee-8b88-92fbcf53809c.png

④打补丁的方法。

Please copy and overwrite the files of "config" and "Patch" to the arm folder

把这两个文件复制到 arm目录,覆盖同名的两个目录。覆盖完毕,重启IAR。

注意:这个编译补丁,和PN demo的运行补丁,不是同一个概念,请勿混淆。

2编译例程不通过时,请尝试以下修改和对策

● 编译路径太深,或者某一级的目录的名字太长。

●编译的目录中有文中路径。

●把需要编译的目录,复制到某个盘符的根目录,或者桌面。

● ECAT例程,需要按照ecat例程中的pdf文件指导,自己生成ecat源码。

3如何简单的判断是否堆栈溢出

①首先找到工程目录下的startup_ram.asm文件,这个文件在RZT1上是loader_init.asm文件。

②找到下面的类似于clear bss段。这个区域在RZT1上是“loader_bss_init:”部分。

916d40e4-9975-11ee-8b88-92fbcf53809c.png

③加入如下代码:给每个stack设置初始值为特定的 0x55,0x66,0x77等。

原理:一旦程序异常复位,并进入“abort handler”或者“hard fault”后,可以立刻查看如下堆栈段,是否有被“撑爆”的情况。即如果堆栈段 顶端出现非“0x55,0x66,0x77”的数据,即可认为栈溢出 出现过。

左右滑动查看完整内容

;-----------------------------------------add stack init to 0x55-----------------------------------
cstack_set55:
  ldr r0, =0x55555555
  ldr r1, =SFB(CSTACK)
  ldr r2, =SFE(CSTACK)
  cmp r2, r1
  beq svcstack_set66
set_loader_cstack:
  strb r0, [r1], #0
  add  r1, r1, #1
  cmp  r2, r1
  bne  set_loader_cstack
  dsb           ; Ensuring data-changing


svcstack_set66:
  ldr r0, =0x66666666
  ldr r1, =SFB(SVC_STACK)
  ldr r2, =SFE(SVC_STACK)
  cmp r2, r1
  beq IRQSTACK_set77
set_loader_svcstack:
  strb r0, [r1], #0
  add  r1, r1, #1
  cmp  r2, r1
  bne  set_loader_svcstack
  dsb           ; Ensuring data-changing


IRQSTACK_set77:
  ldr r0, =0x77777777
  ldr r1, =SFB(IRQ_STACK)
  ldr r2, =SFE(IRQ_STACK)
  cmp r2, r1
  beq FIQSTACK_set88
set_loader_irqstack:
  strb r0, [r1], #0
  add  r1, r1, #1
  cmp  r2, r1
  bne  set_loader_irqstack
  dsb           ; Ensuring data-changing


FIQSTACK_set88:
  ldr r0, =0x88888888
  ldr r1, =SFB(FIQ_STACK)
  ldr r2, =SFE(FIQ_STACK)
  cmp r2, r1
  beq UNDSTACK_set99
set_loader_fiqstack:
  strb r0, [r1], #0
  add  r1, r1, #1
  cmp  r2, r1
  bne  set_loader_fiqstack
  dsb           ; Ensuring data-changing


UNDSTACK_set99:
  ldr r0, =0x99999999
  ldr r1, =SFB(UND_STACK)
  ldr r2, =SFE(UND_STACK)
  cmp r2, r1
  beq ABTSTACK_setAA
set_loader_undstack:
  strb r0, [r1], #0
  add  r1, r1, #1
  cmp  r2, r1
  bne  set_loader_undstack
  dsb           ; Ensuring data-changing


ABTSTACK_setAA:
  ldr r0, =0xAAAAAAAA
  ldr r1, =SFB(ABT_STACK)
  ldr r2, =SFE(ABT_STACK)
  cmp r2, r1
  beq jump_loader_init2
set_loader_abtstack:
  strb r0, [r1], #0
  add  r1, r1, #1
  cmp  r2, r1
  bne  set_loader_abtstack
  dsb           ; Ensuring data-changing


;---------------------------------------end--------------------------------------- 

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 控制器
    +关注

    关注

    112

    文章

    15235

    浏览量

    171209
  • 变频器
    +关注

    关注

    249

    文章

    5973

    浏览量

    139955
  • IAR
    IAR
    +关注

    关注

    5

    文章

    319

    浏览量

    36287
  • 时序图
    +关注

    关注

    1

    文章

    56

    浏览量

    22350
  • DCDC
    +关注

    关注

    28

    文章

    661

    浏览量

    70052

原文标题:RZ/T2M RZ/N2L RZ/T2L系列应用心得(3-上)

文章出处:【微信号:瑞萨MCU小百科,微信公众号:瑞萨MCU小百科】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    IAR编译环境使用小技巧(2)

    IAR下出现abort handle或hardware fault后,如何处理
    的头像 发表于 12-13 13:29 496次阅读
    <b class='flag-5'>IAR</b><b class='flag-5'>编译</b><b class='flag-5'>环境</b>使用小技巧(2)

    IAR软件编译环境编译,出现中断标志警告如何解决?

    我在IAR软件编译环境编译,出现中断标志警告:Warning[25]: Label \'MemManage_Handler\' is defined pubweak in a sect
    发表于 08-23 06:55

    IAR环境配置

    其实,IAR编译环境的配置是相当重要的,没配置正确或者不符合自己的习惯的话,使用起来就会很麻烦。下面我根据网上的经验和资料,以及自己摸索和大家共同探讨下IAR的配置。
    发表于 08-29 09:09 101次下载

    CC2530-MDK中文使用说明书之IAR编译环境的设置

    发表于 07-13 16:48 43次下载

    IAR编译生成HEX文件及常见问题

    IAR编译生成HEX文件及常见问题,IAR编译ZStack-CC2430输出HEX文件的正确配置。
    发表于 12-07 18:36 14次下载

    STM32_在KEIL_MDK环境下使用STM32_V3.4 库“小”教程

    IAR 编译环境,固件库也是以前的 V2 版本。由于 ST 公司更新了 STM32 的固件库,所以想试着使用新固件库。 刚开始使用新库时也遇到了一些问题,但是慢慢熟悉不但觉得不难不烦,反而觉得 V3 比 V2 更好用。在这
    发表于 03-04 15:29 5次下载

    IAR编译错误信息表

    IAR编译错误信息表,提供常的编译错误介绍。
    发表于 03-16 14:06 1次下载

    IAR_AVR_C编译器的使用

    IAR_AVR_C编译器的使用A
    发表于 06-15 17:15 29次下载

    基于ETC中FMO编码的设计

    低功耗单片机通过C语言在IAR编译环境下实现FMO解码,并使用示波器验证出该FMO软解码方法30uS内即可解出,实时性达到需求。
    发表于 11-06 17:20 5次下载
    基于ETC中FMO编码的设计

    如何用IAR6.3编译环境中ucos在msp430上的移植的详细中文资料

    本文的主要内容介绍的是如何用IAR6.3编译环境中ucos在msp430上的移植的详细中文资料概述。
    发表于 05-09 16:58 4次下载
    如何用<b class='flag-5'>IAR</b>6.3<b class='flag-5'>编译</b><b class='flag-5'>环境</b>中ucos在msp430上的移植的详细中文资料

    怎么样使用Studio 6和IAR_AVR_C编译器?

    Atmel小贴士 如何使用Studio 6和IAR C编译
    的头像 发表于 07-11 00:31 3528次阅读

    IAR编译器优化对程序的影响

    IAR编译优化选项
    的头像 发表于 07-05 00:25 4437次阅读

    STM8单片机在IAR编译环境下延时函数不起作用的解决办法

    最近在使用STM8S105K4T6型号的单片机DIY一个家用的自动浇水系统,用的是IAR编译器。在调试过程中发现了一些奇怪的问题,使用ST-LINK烧录器把编译文件烧录到单片机之后运行发现里面
    发表于 11-23 17:36 0次下载
    STM8单片机在<b class='flag-5'>IAR</b><b class='flag-5'>编译</b><b class='flag-5'>环境</b>下延时函数不起作用的解决办法

    IAR环境下,利用simpleli

    IAR环境下,利用simpleli
    发表于 12-05 10:36 8次下载
    <b class='flag-5'>IAR</b><b class='flag-5'>环境</b>下,利用simpleli

    STM8L052R8T6串口IAP在线升级相关总结(IAR编译环境

    STM8L052R8T6串口IAP在线升级相关总结(IAR编译环境)1.关于BootLoader程序的设定2.关于UserAPP程序的设定3.BootLoader程序的跳转和数据接收3.Flash
    发表于 12-09 09:36 23次下载
    STM8L052R8T6串口IAP在线升级相关总结(<b class='flag-5'>IAR</b><b class='flag-5'>编译</b><b class='flag-5'>环境</b>)