关于把keil上的工程移植到IAR上

本文介绍了如何将基于STM32的Keil工程成功移植到IAR环境中。首先,创建工程目录并复制相关文件,然后在IAR中新建工作区和项目,将文件分配到相应组。接着,配置IAR工程,包括选择目标设备、设置C/C++编译器的预处理器选项,添加头文件路径。最后,解决预包含头文件的问题,确保编译无误。

尝试了几次把STM 的keil工程移植到IAR,还好都成功了,这里把移植过程中需要注意的地方记下。。。

第一步肯定是先建一个工程文件夹PWM,然后文件夹里面在建几个子文件夹:user、inc、startup 基本也就这三个。当然,还得STM的官方库目录拷贝过来,于是工程目录下就有四个文件夹(其实建几个都是随意的,按着习惯来就行,也可以对于着keil的工程来建对应的文件夹)。

第二步就该把keil工程里面的文件copy到刚才建的工程目录里面了,我是把  *.c文件都放在user目录下,*.h文件都放在inc目录下,然后把startup汇编文件放在startup目录下(其实这文件是放在官方库目录下的,所以呢这个startup目录也可以不建)。

第三步启动IAR,IAR有个workspace,这个没具体研究,我只是file->new->workspace 然后 project->create new project 工程当然指定到刚才建的那个工程目录里去。然后对应的添加几个Group  , user、inc、startup ......接着往里面add files

第四步就该设置IAR工程了,上几张图先(表示一下不满。。。试了几次居然没法上传!!!那就算了吧)。设置呢主要就是General Options 的target那里选一下对应的Device 比如我就选了STM32F407ZG   再次就是C/C++ Compiler  下的Preprocessor 选项 有个Additional include directories 这里面呢就把头文件路径写进去就ok了,不过呢要以$PROJ_DIR$ 开头(其实这就是将当前路径设置为工程目录,也就是刚才第三步保存工程时指定的目录...\PWM),比如我刚才建的工程,头文件我都放在了inc目录下,于是我就这么写  $PROJ_DIR$\inc  (假设刚才多建了一个project目录,并且第三步的时候把工程保存到了这个目录下,那么这时候$PROJ_DIR$就是\PWM\project目录,于是头文件路径就得稍做修改了,inc目录和project目录处于同一级目录,所以应该这

STM32keil开发环境移植IAR开发环境,分为六步走。 首先安装IAR编译环境,这个自行安装。 第一步 新建文件夹 新建一个文件夹命名“LED_CTRL”,在这个文件夹下再建立三个文件夹, CMSISI:放系统启动相关文件 ,FWLIB:放库文件 USER.:放用户自己写的文件 如下图: 第二步 拷贝文件 在keil下其实也有相对应的文件,我么们考过来就可以了。 下图是keil工程下的文件: 下面我们开始拷贝: 1. 拷贝CMSIS文件 2. 拷贝FWLIB文件 3. 拷贝USER文件 4. 拷贝剩余的其他用户自己写的程序(其实这些文件放哪都可以,根据自己的习惯吧) 拷贝完成如下图: 第三步 新建工程 打开软件 新建工程 点击OK 命名led_temp保存到LED_CTRL下 然后就会得到下面的界面。 第四步 添加分组及文件 开始往工程中添加文件 1. 新建分组:add group 好了,分组完成。 2.添加文件 a.往CMSIS添加文件:system_stm32f10x.c、startup_stm32f10x_md.s CMSIS->add->add files 路径如下: b.往FWLIB添加文件:"stm32f10x_gpio.c" "stm32f10x_rcc.c" "stm32f10x_spi.c" "stm32f10x_usart.c",(这里是因为工程中使用到了一部分的外围,所以需要自己根据工程需求添加) c.往USER中添加: "stm32f10x_it.c" "main.c",另外还有其他的用户自己写的文件led.c、nrf24l01.c、uart.c 。 到此,文件添加完成。 第五步 配置工程 同样选中“led_temp”然后右键,选择Options.就会出现配置界面,如下图 。 a. 选择工程使用的芯片型号,stm32f103c8t6,这里自己根据自己设置哦。 b.Library Configuration的Library要设置为Full,这样才能使用printf(); b. 进入C/C++Compiler,添加文件路径和所需的宏定义。 到此路径添加完成,下面添加宏定义。 不记得的,可以打开芯片的头文件查找即可。 到此,宏定义添加完成。 c. 进入Linker配置链接文件,点击进入,在IAR环境中已经存在,你选择和自己芯片匹配的就好了。 d. 进入Debugger配置,选择自己程序的下载方式。 选择下载到flash 到此,工程配置完成。 第六步 编译工程 同样选中”led_temp”右键-》Rebuild all 弹出文件名设置 同样设置为“led_temp”点击保存。 第六步 解决编译错误问题 弹出好多的错误: 解决办法: 1.core_cm3.h重命名为core_cm3.h.old 再次编译: 出现错误: 解决办法:继续进入工程配置,General Options->Library Configuration:Library 选FULL,右下角选择Use CMSIS 我们会看到,错误已经没有了,但是有很多的警告,如下图 解决办法:startup_stm32f10x_md.s文件中的”SECTION .text:CODE:REORDER”都要改为“SECTION .text:CODE: NOROOT:REORDER” 方法很简单,用Notepad++打开然进行替换即可。 首先,要去掉文件的只读模式,然后在修改。 好了,全部修改完成。保存,并恢复为只读模式,然后再编译工程工程编译结果无错误,无警告,移植到此结束,完美。 。
将Gitee上的项目导入或迁移到Keil开发环境,主要涉及两个关键步骤:**获取Gitee上的项目代码** 和 **将其适配并导入到Keil中**。以下是具体的操作流程: ### 获取Gitee上的项目代码 1. **克隆项目到本地**: 使用Git工具将Gitee上的项目克隆到本地计算机。可以通过以下命令实现: ```bash git clone https://gitee.com/用户名/项目名.git ``` 这将把远程仓库中的代码完整地复制到本地目录中。 2. **检查项目结构和依赖**: 打开项目文件夹,查看其文件结构,包括源代码文件(`.c`, `.h`)、启动文件(`.s`)、配置文件(如`Makefile`或`CMakeLists.txt`)等。如果项目中包含依赖库或第三方模块,确保这些资源在Keil中可用,或者需要手动添加到项目中。 ### 在Keil中创建并配置项目 1. **新建Keil项目**: 打开Keil µVision,选择`Project -> New µVision Project`,指定一个新项目目录,并选择目标MCU型号(例如STM32F4系列)。这一步将生成一个基础的Keil项目框架。 2. **添加源文件**: 在Keil项目中,右键点击`Source Group 1`,选择`Add Existing Files to Group 'Source Group 1'`,然后将本地克隆的项目中的`.c`和`.h`文件逐个添加进去。需要注意的是,如果项目中有特定的目录结构,建议在Keil中也保持相同的结构以便管理。 3. **配置头文件路径**: 如果项目中使用了自定义头文件或第三方库,需要在Keil中配置头文件路径。进入`Options for Target -> C/C++ -> Include Paths`,添加相应的头文件目录。 4. **配置宏定义**: 如果项目中使用了特定的宏定义(例如`USE_STDPERIPH_DRIVER`),可以在`Options for Target -> C/C++ -> Define`中添加这些宏定义。 5. **配置链接脚本和启动文件**: 如果项目中包含自定义的链接脚本(`.sct`文件)或启动文件(`.s`文件),需要将它们添加到项目中,并在`Options for Target -> Linker`中指定链接脚本路径。 6. **编译和调试**: 完成上述配置后,点击`Rebuild`按钮进行编译。如果出现错误,可能需要进一步调整配置,例如检查是否缺少依赖库或路径配置错误。编译成功后,可以连接调试器进行调试。 ### 其他注意事项 - **兼容性问题**: 如果原项目是为其他开发环境(如STM32CubeIDE或IAR)设计的,可能会存在一些兼容性问题。例如,启动文件、链接脚本或编译器选项可能需要调整以适应Keil的编译器(ARMCC或CLANGARM)。 - **库文件支持**: 如果项目中使用了某些库文件(如HAL库或标准外设库),需要确认这些库是否支持Keil编译器,或者是否需要重新编译。 - **版本控制**: 在迁移过程中,建议使用版本控制工具(如Git)对Keil项目进行管理,以便跟踪修改记录并方便后续维护。 ### 示例代码:Keil项目中的主函数结构 ```c #include "stm32f4xx.h" // Device header #include "main.h" int main(void) { // 初始化代码 HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); while (1) { // 主循环代码 } } ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值