IAR

全球领先的嵌入式开发软件方案和服务供应商IAR与知名芯片设计公司中微半导体(深圳)股份有限公司(股票代码688380,以下简称“中微半导”)共同宣布,IAR最新发布的IAR Embedded Workbench for Arm 9.32版本已全面支持中微半导车规级BAT32A系列MCU,将共同助力国产汽车芯片创新研发。

1.jpg

中微半导基于在MCU领域22年技术储备和平台化的资源优势,汽车芯片产品阵营丰富且完善,可提供多系列高性能、高可靠性及高安全性标准控制芯片。其中车规级BAT32A系列MCU基于Arm Cortex-M0+/M4内核,具有强大运算性能和大容量存储空间,丰富外围功能及出色低功耗性能。产品具备高可靠性,已通过AEC-Q100车规认证,可广泛用于多种车用场景,如灯、窗、门、无线充、DC/DC车载电源、仪表盘、数字钥匙、超声波雷达、OBC控制模块、矩阵大灯、电动尾门、安全座椅、纹波防夹及BCM等应用。

中微半导始终重视与行业生态伙伴交流合作,以期加快整个产业生态链的完善和发展。目前,除了建立丰富的车规MCU产品矩阵及高标准的车规质量管理体系,已与业界更多领先的Tier 1供应商和整车厂建立长期战略合作关系,涉及域控部分的软件架构合作正在不断深入。

IAR Embedded Workbench for Arm为中微半导BAT32A系列提供完整的工具链,助力用户提高开发效率,降低项目成本,保障产品质量,加速创新,缩短产品上市时间。IAR Embedded Workbench 拥有高度优化的编译器,包含灵活的编译器优化选项和强大的优化性能,可以帮助用户在不同的应用中满足特定需求的优化;以及高级调试功能,例如灵活的代码和数据断点、运行时堆栈分析、调用堆栈可视化。借助代码分析工具C-STAT和C-RUN,开发人员能够在日常开发过程中提高代码质量。

2.png

中微半导副总裁、汽车电子事业部总经理李振华表示:“IAR是全球领先的嵌入式系统开发解决方案和服务厂商,非常高兴能与IAR达成合作,目前中微半导车规级BAT32A系列MCU已获得IAR Embedded Workbench for Arm 9.32的全面支持。相信凭借IAR强大的代码优化功能和完整的工具链,可以让开发人员能够专注于技术创新,使汽车客户更高效、便捷地完成MCU代码的调试和优化,缩短设计时间和上市时间。”中微半导重点打造汽车生态伙伴共赢链,后续将加强与IAR深度合作,拓宽连接域、动力域及辅助驾驶域小域控产品线的开发,软硬件融合、多方协同共同推动国产化汽车芯片生态建设。

IAR亚太区副总裁Kiyo Uemura表示:“中微半导是中国本土极具实力的MCU厂商,越来越多IAR用户在使用中微半导公司的芯片。我们很高兴能和中微半导达成合作,IAR将持续给中微半导的MCU提供全面的工具链支持,帮助中微半导MCU客户最大程度挖掘MCU潜能并提供本地技术支持,兑现我们对中国客户及市场的长期承诺。”

关于BAT32A系列更多信息,请访问 www.mcu.com.cn。关于IAR Embedded Workbench for Arm更多信息,请访问 www.iar.com/arm

来源:中微半导

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 45

1、IAR IDE

IAR一直是Renesas强有力的合作伙伴,IAR IDE支持Renesas全系列MCU的开发和调试。IAR Embedded Workbench是一个完整的开发工具链,在易于使用的集成开发环境中提供了强大的代码优化和全面的调试功能。

2、Renesas RL78系列MCU

Renesas RL78系列MCU是Renesas 16-bit低功耗产品线,专为超低功耗设计,可以为客户提供以较低的成本建立高集成度和高效节能的应用平台。

RL78系列MCU有三大主要特点:

1)低功耗:最低46uA/MHz

2)可扩展性:1KB~512KB Flash

3)高效:最高1.39DMIPS/MHz

此外,RL78系列MCU具有超级全面的产品线,同时也在不断地推进新产品的开发,以满足客户未来的产品升级需求。

3、使用IAR IDE仿真RL78内置硬件乘法器&除法器注意事项

在使用IAR IDE进行RL78系列MCU仿真调试时,可执行硬件仿真或软件仿真(Simulator),但是,如果需要应用硬件乘法器/除法器,则必须使用硬件仿真,不能使用软件仿真(Simulator),软件仿真(Simulator)不支持MCU内部的硬件乘法器/除法器。

当执行硬件仿真时,如果不勾选“Disable Hardware Multiplier/Divider Unit”:

“”使用IAR

对应的乘法操作会调用函数HWMUL_32_32_32,(HWMUL_32_32_32存在于工具自动生成的文件LibReplacement.s中,当不勾选“Disable Hardware Multiplier/Divider Unit”时,会自动在Output文件夹生成LibReplacement.s文件),例如:

“”使用IAR

在程序中可以看到:

“”使用IAR

“”使用IAR

当勾选“Disable Hardware Multiplier/Divider Unit”时,编译器会选择对应的软件乘法库函数L_MUL_L03来实现乘法操作:

“”使用IAR

需要注意的是,软件乘法库函数L_MUL_L03相对于HWMUL_32_32_32函数会需要更多的资源及运行时间。

来源:瑞萨MCU小百科
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 316

一、在IAR EWARM中建立工程的步骤:

1. 建立工程项目文件

新建一个文件夹来存放整个工程项目,在该项目文件夹下建立几个子文件夹存放不同类别的文件:
i. 将官方模板中的stm32f10x_conf.h、stm32f10x_it.c、stm32f10x_it.h和空白main.c文件复制到该项目文件夹下;

ii. Obj-存放工程文件,将官方模板中的cortexm3_macro.s、lnkarm_flash.xcl、lnkarm_ram.xcl和stm32f10x_vector.c文件复制到该文件夹下。

iii. library-存放STM32 FWLib文件,将官方提供的固件库library复制到该文件夹下。

2. 在IAR中建立工程

打开IAR,在Project菜单下新建工程,把该工程存放在刚刚建立的Obj子文件夹下;

3. 工程管理

i. 为了方便项目的管理,在刚建立的项目中添加几个Group用来放置不同类型的文件:

1).FWLib-用来存放所需固件库的头文件;
2).StartUp-用来存放STM32的启动代码,添加cortexm3_macro.s和stm32f10x_vector.c(中断向量表);
3).User-用来存放用户文件,添加main.c和stm32f10x_it.c(中断空函数)

ii. 进行项目设置:

在工程上单击右键,选择Option,打开工程设置窗口:
1).在General Options->Target->Device中选择ARM器件型号“ST STM32F10x”;
2).在C/C++ Compiler->Preprocessor->Additional include directories中填入
$PROJ_DIR$\..\
$PROJ_DIR$\..\library\inc

注:$PROJ_DIR$表示工程所在路径,\..\表示返回上一级目录。

3).在linker->config->Linker command file里选中Override default,然后根据实际情况填入$PROJ_DIR$\lnkarm_ram.xcl,并同时在C/C++ Compiler->Preprocessor->Defined Symbols里填入“VECT_TAB_RAM”(在RAM中调试);
或者
$PROJ_DIR$\lnkarm_flash.xcl,并同时在C/C++ Compiler->Preprocessor->Defined Symbols里填入“VECT_TAB_FLASH”(在FLash中调试);

4).在Debugger->Driver中选择“Third-Party Driver”,在Third-Party Driver->IAR debugger Driver中填入ST LINKII的驱动C:\Manley\drivers\STLink\STM32Driver.dll”;

4. 编译调试

在stm32f10x_conf.h中将没有用到的外设注销,将所需外设固件库的头文件添加到工程中;

转自: QFLSD

围观 605

前言

STM32全系列产品都具有CRC外设,对CRC的计算提供硬件支持,为应用程序节省了代码空间。CRC校验值可以用于数据传输中的数据正确性的验证,也可用于数据存储时的完整性检查。在IEC60335中,也接受通过CRC校验对FLASH的完整性进行检查。在对FLASH完整性检查的应用中,需要事先计算出整个FLASH的CRC校验值(不包括最后保存CRC值的字节),放在FLASH的末尾。在程序启动或者运行的过程中重新用同样的方法计算整个FLASH的CRC校验值,然后与保存在FLASH末尾的CRC值进行比较。

EWARM从v5.5版本之后开始支持STM32芯片的CRC计算。前面所说的计算整个FLASH的CRC校验值并保存在FLASH末尾的过程,可以在IAR中完成。通过配置EWARM的CRC计算参数,自动对整个FLASH空间进行CRC计算,并将计算结果放到FLASH的末尾。本文中将介绍的就是如何配置IAR的CRC参数,使之与STM32的CRC硬件模块保持一致。本文中的例子都基于STM32F072进行。

STM32的CRC外设

CRC校验值的计算采用多项式除法,可以通过除数和被除数进行异或运算实现。这种方法非常适合通过硬件电路来实现。

使用STM32CRC外设时,你要考虑的内容包括:采用哪个CRC生成多项式,输入数据(要进行校验的数据)和初始值。

1.生成多项式

默认使用CRC32多项式:0x4C11DB7

如何在IAR中配置CRC参数

部分芯片支持可编程的多项式,比如STM32F3,STM32F0,STM32L0

2.初始值

STM32的CRC初始值默认为0xFFFFFFFF,STM32F3,STM32F0,STM32L0系列可以修改初始值

3.输入/输出数据的反转

STM32F3,STM32F0,STM32L0系列还提供了对输入/输出数据进行反转的功能。
默认不对输入数据和输出数据进行位反转

• 对输入数据的位反转操作可以设置为按字节/半字 /字为单元进行操作。例如输入数据为0x1A2B3C4D,
- 每个字节内逐位反转,结果是0x58D43CB2
- 每半字内逐位反转,结果是0xD458B23C
- 每个字长内逐位反转,结果是0xB23CD458
• 对输出数据的位反转。
- 例如输出数据为0x11223344,反转后为0x22CC4488

IAR的CRC配置

1.修改Link文件

指定checksum在FLASH中的存储位置,在Link文件中增加下面语句。

如何在IAR中配置CRC参数

该语句指定将CRC的值放在FLASH的末尾位置。是整个FLASH空间的末尾,不是应用程序的代码末尾。这样,CRC值的位置就是固定的。不会随代码大小而变化。

2.配置Checksum页面的参数

IAR Checksum页说明(v6.4及以上)

如何在IAR中配置CRC参数

IAR的checksum页面分为两个部分。
第一部分,也就是红线圈出的部分。定义了FLASH中需要计算CRC的范围和空闲字节填充值。
剩下的部分,就是对checksum计算参数的设定部分。

Checksum size :选择checksum的大小(字节数)
Alignment:指定checksum的对齐方式。不填的话默认2字节对齐。
Algorithm:选择checksum的算法
Complement:是否需要进行补码计算。选择“Asis”就是不进行补码计算。
Bit order:位输出的顺序。MSB first,每个字节的高位在前。LSB first,每个字节的低位在前。
Reverse byte order within word: 对于输入数据,在一个字内反转各个字节的顺序。
Initial value: checksum计算的初始化值
Checksum unit size :选择进行迭代的单元大小,按8-bit,16-bit还是32-bit进行迭代。

3.STM32 CRC外设使用默认配置时IAR的配置

STM32CRC外设的配置:

POLY= 0x4C11DB7(CRC32)
Initial_Crc = 0Xffffffff
输入/输出数据不反转
输入数据:0x08000000~0x0801FFFB。(最后4个字节用来放计算出的CRC值)

如何在IAR中配置CRC参数

如何在IAR中配置CRC参数

具体使用中我们可以根据实际应用需求参照上面介绍做相应配置即可。

围观 568

页面

订阅 RSS - IAR