【SemiDrive G9X】 【PTG5.0】:G9 如何使用 IAR 调试 R5

一、概述

本文主要讲述使用 IAR 调试 G9 的 R 核。目前 G9 不支持在线烧写 FLASH,只能通过 SDFactoryTool 来烧写工程编译生成的 bin 文件,并且不支持通过 Debugs 方式直接调试,JLINK 只能支持 attach 在线调试,也就是暂停板子上运行的程序调试。

二、使用环境

硬件:SemiDrive SD004_G9X REF_A03_131 DEMO Board,JLINK V11
软件:G9 PTG5.0,IAR EW for Arm 9.30.1

三、创建 IAR 工程

进入 /buildsystem/ 工程目录,执行以下命令

cd rtos/freertos_safetyos

make safety-g9x-ref iar

成功创建工程后会在 /buildsystem/rtos/freertos_safetyos/ide/IAR/safety-g9x-ref/ 下生成 safety-g9x-ref.eww 工程,可以使用 IAR 打开这个工程,如图是其目录结构。

四、编译 IAR 工程

1、设置 IAR 环境

在 options->General options->Floating-point setting 下设置 FPU 参数为 VFPv3,如下图:

2、编译

点击 IAR 工具菜单栏中编译选项选择编译,如下图:

出现以下,表示编译完成。

3、常见编译错误

3.1 找不到 malloc.h

在报错文件下添加以下两个头文件

#include <heap.h>

#include <stdlib.h>

在报错文件下删除以下头文件

#include<malloc.h>

3.2 缺少 AVB_COMPILATION 宏定义

在 option->C/C++Comlier->Processor->Defined symbols 中添加 AVB_COMPILATION 定义


3.3 栈对齐方式不能满足变量要求

将报错文件的对应变量设置为  static 变量。

五、烧录

使用 SDFactoryTool 工具加载 PAC 包,选择 OSPI1_SAFETY_OS 镜像替换为 IAR 编译的 binary 文件,该文件是 /buildsystem/rtos/freertos_safetyos/ide/IAR/safety-g9x-ref/safety-g9x-ref_ddr/Exe/safety-g9x-ref.bin 下,如下图:

六、调试

烧录完成后,取消勾选 Verify download ,如下图:

将开发板拨码 0000,上电启动,使用 IAR 中 Project → Attach to Running Target 启动在线调试,在 Safety 串口下输入 help 命令,如下图,即可查看程序跑到什么位置,还可以 在 IAR 工具下通过 View 工具栏查看 Call Stack 、Registers 等信息。


以上就是使用 IAR 调试 R5 的过程。 

七、参考文档

《G9_SDK_IAR编译环境参考手册_Rev1.2.pdf》

《SemiDrive_G9_IAR_参考手册.pdf》

八、预告

鄙人使用 IAR 调试 R5 经验少,如果有更多 G9 使用  IAR 调试 R5 的问题,欢迎在评论区留言,同时,接下来也会更新更多关于 G9 的博文,喜欢这个系列博文的小伙伴敬请关注我吧。 

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论