iar

Place segments of external static library to specific locations

你说的曾经没有我的故事 提交于 2020-07-05 07:36:07
问题 My application calls some functions which are placed in an external static library. I link the external static library to my application and everything works (in this case I'm using GCC). Nevertheless, the locations (addresses) of text, .data and .bss sections of the library are chosen by the linker. I can choose/change their locations by modifying the linker script, but it's tedious as I have to specify all the functions, variables, etc. of the library. What I mean it's something like: . =

Access symbols defined in the linker script by application

陌路散爱 提交于 2020-07-04 06:40:09
问题 In my linker script file, I have defined two symbols define symbol _region_RAM_start__ = 0xC0000000; define symbol _region_RAM_end__ = 0xC00fffff; and then I have exported them as well as shown below export symbol _region_RAM_start__; export symbol _region_RAM_end__; From the applciation code, I try to access these symbols extern const unsigned int _region_RAM_start__; extern const unsigned int _region_RAM_end__; .... int GetRAMSize() { int size = 0; unsigned int address_1 = _region_RAM_start

Access symbols defined in the linker script by application

元气小坏坏 提交于 2020-07-04 06:39:21
问题 In my linker script file, I have defined two symbols define symbol _region_RAM_start__ = 0xC0000000; define symbol _region_RAM_end__ = 0xC00fffff; and then I have exported them as well as shown below export symbol _region_RAM_start__; export symbol _region_RAM_end__; From the applciation code, I try to access these symbols extern const unsigned int _region_RAM_start__; extern const unsigned int _region_RAM_end__; .... int GetRAMSize() { int size = 0; unsigned int address_1 = _region_RAM_start

【STM32H7的DSP教程】第7章 ARM DSP源码和库移植方法(IAR8)

浪子不回头ぞ 提交于 2020-04-07 16:42:02
完整版教程下载地址: http://www.armbbs.cn/forum.php?mod=viewthread&tid=94547 第7章 ARM DSP源码和库移植方法(IAR8) 本期教程主要讲解ARM官方DSP源码和库的移植以及一些相关知识的介绍。 7.1 初学者重要提示 7.2 DSP库的下载和说明 7.3 DSP库版本的区别 7.4 DSP库的几个重要的预定义宏含义 7.5 DSP库在IAR上的移植(源码移植方式) 7.6 DSP库在IAR上的移植(库移植方式) 7.7 升级到最新版DSP库方法 7.8 简易DSP库函数验证 7.9 总结 7.1 初学者重要提示 IAR请使用8.30及其以上版本,CMSIS请使用5.6.0及其以上版本。 IAR的工程创建,下载和调试方法,在V7用户手册有详细说明: http://www.armbbs.cn/forum.php?mod=viewthread&tid=93255 。 7.2 DSP库的下载和说明 下面详细的给大家讲解一下官方DSP库的移植。 7.2.1 DSP库的下载 DSP库是包含在CMSIS软件包(Cortex Microcontroller Software Interface Standard)里面,所以下载DSP库也就是下载CMSIS软件包。这里提供三个可以下载的地方: 方式一:STM32CubeH7软件包里面。

IAR编译器的常见问题

*爱你&永不变心* 提交于 2020-04-06 07:10:18
最近因为项目需要开始使用IAR for AVR,我用的是5.40版本的,主要是5.40以上才包括了aTtiny87,至于安装文件和和谐文件,大家自己找吧,很好找的。 1.编译报错如图所示: 很显然你没有使能寄存器的位定义。方法如下: Project ——> Option ——> General Options ——> System (如下图所示),勾选 Enable bit definitions in I/O-Include files即可 2.MCU型号选择 如果和我一样都次都是以空工程创建的话,不过忘了第一步先进 Project ——> Option ——> General Options ——> Target 选择所使用的MCU型号,不然编译免不了要报错,如下图所示。 3. 堆栈大小 今天下午编译一个程序,0错误0警告,挺好,可一运行就跑飞,根本不能正常运行。 其实是我没有正常设置堆栈大小导致的这种问题,尤其是在写大工程时,这种错误出现的概率很高。GCC和IAR分配堆栈的方式不同,IAR先分配堆栈空间,相当于定义一个全局数组为堆栈空间,堆栈初始为堆栈空间最高地址;GCC不用先分配堆栈,自动把RAM剩余空间作为堆栈空间,堆栈初始为RAM最高地址。 先编译看看自己的程序用了多少ram,在看看总共有多少ram。 然后 Project ——> Option ——> Linker —

IAR 调试特别慢

ぃ、小莉子 提交于 2020-03-08 18:30:37
使用 IAR 进行程序调试,但调试特别慢,每次停到断点之前都要等上几秒钟,单步调试难以想象的痛苦。记忆里的 IAR 不是这样的。 尝试了几次,总结了规律,程序看起来总是走在汇编窗口里,不是总在 C 窗口里执行,只要汇编窗口,就会在下次停到断点前自动打开汇编窗口。这种情况通常是 C 代码于程序代码对不上才出现,比如没有在 C 编译器里加调试信息,或者进行了程序优化,但是我的配置是正确的。 尝试了各种修改设置都没有解决。后来干脆删掉了项目目录下的“settings”和“ProjectName”文件夹,重新打开 IAR 会自动重新生成这两个目录。之后再调试,发现不再慢了。 注:ProjectName 是与项目工程同名的文件夹,这个文件夹是由 IAR 自动生成的。 怀疑是这两个文件夹中的某些文件没有正确更新或与当前项目有所差异导致的问题。 来源: CSDN 作者: lionchan187 链接: https://blog.csdn.net/desert187/article/details/104734988

iar、keil(ac5+ac6)编译效果小记

六月ゝ 毕业季﹏ 提交于 2020-03-06 10:27:29
stm32F103et6平台,cubemx生成的两个IDE工程 1、均无开启任务优化 iar8.32如下: keil5.29 ac5编译器 : keil5.29 ac6编译器 : 同样的代码,不开优化的情况下,ac6反而代码空间比较大 2、开启最高优化: iar:high(size) keil5.29 ac5编译器 :level 3 keil5.29 ac5编译器 :-Oz 开启优化的情况,ac6的表现还是不错的。 来源: https://www.cnblogs.com/CodeWorkerLiMing/p/12424942.html

IAR下移植UCOSIII3.03,平台选用STM32F103ZET6

回眸只為那壹抹淺笑 提交于 2020-03-04 05:07:47
首先我们先去Micrium 公司官方网站( http://micrium.com/ ),点击“Downloads”选项卡进入下载页面,具体步骤截屏看下图操作。 由于STM32系列芯片是属于ST公司,所以在”Brouse by MCU Manufacturer“栏目展开”STMicroelectronics“,这里根据自己的芯片选型,如果在这里没有找到你的芯片型号,就单击“View all STMicroelectronics”,在里面做出选型。 点击选中的芯片,打开了下面的搜索页面。可以看到只有一个12年的UCOSII工程,其他都是在cubeide下的。 返回上一页,点击 View all STMicroelectronicsicroele后。 可以看出在F107系列使用的最新UCOSIII版本时3.03.01 不过,我们可以直接从"Browseb by Micrium Product"下的uc/OS-III进入源码下载页。 下载页是 https://www.micrium.com/downloadcenter/download-results/?searchterm=mp-uc-os-iii-1&supported=true 下载下来,就是3.03的源码。 另外注意一点,下载源码还 需要注册额。 下面介绍具体的移植操作步骤 来源: CSDN 作者: weixin_40333655