芯查查logo
  • 数据服务
    1. 新产品
    2. 物料选型
    3. 查替代
    4. 丝印反查
    5. 查品牌
    6. PCN/PDN
    7. 查方案
    8. 查代理
    9. 数据合作
  • SaaS/方案
      SaaS产品
    1. 供应链波动监控
    2. 半导体产业链地图
    3. BOM管理
    4. 解决方案
    5. 汽车电子
    6. 政府机构
    7. 数据API
  • 商城
  • 行业资讯
    1. 资讯
    2. 直播
  • 论坛社区
    1. 论坛
    2. 学习
    3. 测评中心
    4. 活动中心
    5. 积分商城
  • 查一下
  • 开通会员
End
创作者认证
G32A开发板测评 RT-Thread工程模板创建与测试

极海半导体-G32A1465开发板测评 01-RT-Thread工程模板创建与测试

G32A1465开发板简介

极海 G32A1465 评估板 支持 KEIL、IAR 等 IDE 集成开发环境,板上资源丰富可适配广泛的应用场景,包括串口接口、JTAG/SWD 接口、

DC 12V 供电接口、CAN/LIN 收发器、RGB LED、电位计、复位按键等,符合 ISO 26262 功能安全 ASIL-B 设计规范。

G32A1465 评估板是 G32A1465 MCU 的完整演示和开发平台,搭载了一颗 G32A1465 MCU 芯片,该芯片基于 Arm® Cortex® M4 内

核、工作主频 112MHz、 Flash 1024KB。

芯片系统框图

MCU主控板原理图

CAN 总线和 LIN 总线

其他部分的硬件原理图查看,参考《G32A1465 EVAL Board原理图 V1.0.SchDoc》.pdf

实物测试

拿到开发板默认是下载了RGB LED 循环闪烁。

 

 

SDK 介绍

 

SDK 包括

  • 板载驱动包 Boards 文件夹,如基本的 LED、 Button 及 COM 口的驱动等;
  • 多个必要的库 Libraries 文件夹,如 G32A1465 标准库、外设驱动库等;
  • 多个例程 Examples 文件夹,如 ADC采样、 CAN/CANFD 收发、 CRC校验等;
  • 中间件文件在 Middlewares 文件夹内,是 G32A1465 评估板提供的 demo 所使用到的第三方工具或源码;
  • 数据手册 Documents 文件夹,点击链接进入官网下载数据手册、原理图及用户手册等资料;
  • 设备包 Package 文件夹,用于安装 Keil 等 IDE 的设备包;
  • 此外还包含 G32A1xxx_SDK_um.chm 用户手册,便于查找 SDK 对应的部件说明和相关解决方案。

开发环境搭建

极海 Geehy 为开发者提供了十分友好的开发平台和编译环境,便于初学者上手测试,一般提供了KEIL和IAR两种常见的嵌入式开发环境。

以 Keil MDK IDE 作为编译软件,创建工程。默认已经安装 Keil MDK IDE 软件,

  1. 下载 G32A1465_SDK 压缩包,双击安装 Package 文件夹中的 Geehy.G32A1xxx_DFP.1.0.1.pack Keil 设备支持包。

2. 创建工程模板,我们选择 G32A1465_SDK里面的Examples的工程模板作为基础。(一般拿到新开发板寻找GPIO案例作为测试基础,但是这个SDK里面,GPIO被命名成了PINS;本次测试我们以RTOS工程作为基础案例,然后一步步添加代码,完成测评)。

3. RTOS例程提供了FreeRTOS和RT-Thread-nano两个比较常见的嵌入式实时操作系统,本次实验以RT-Thread-Nano版本作为基础。

(后续尝试给移植RT-Thread标准版本,创建BSP)

RT-Thread诞生于2006年,是一款以开源、中立、社区化发展起来的物联网操作系统。

RT-Thread主要采用 C 语言编写,浅显易懂,且具有方便移植的特性(可快速移植到多种主流 MCU 及模组芯片上)。

RT-Thread把面向对象的设计方法应用到实时系统设计中,使得代码风格优雅、架构清晰、系统模块化并且可裁剪性非常好。RT-Thread完整版,通过在线的软件包管理工具,配合系统配置工具实现直观快速的模块化裁剪,并且可以无缝地导入丰富的软件功能包,从而实现复杂功能。

RT-Thread Nano 是一个极简版的硬实时内核,它是由 C 语言开发,采用面向对象的编程思维,具有良好的代码风格,是一款可裁剪的、抢占式实时多任务的 RTOS。其内存资源占用极小,功能包括任务处理、软件定时器、信号量、邮箱和实时调度等相对完整的实时操作系统特性。适用于大量使用的 32 位 ARM 入门级 MCU 的场合。

下图是 RT-Thread Nano 的软件框图,包含支持的 CPU 架构与内核源码,还有可拆卸的 FinSH 组件:

4. 复制RT-Thread的Project工程文件到新创建的文件夹中,同时复制Boards、Libraries、Middlewares等文件夹。

复制RT-Thread文件夹到新文件夹中,同时修改文件夹命名。

5. 重构工程架构

Application 应用层控制代码

Boards 板级驱动代码

Libraries 芯片底层驱动代码

Middlewares 中间件代码

Project 工程文件

UserConfig 用户模块外设配置代码

ModuleDrivers 模块驱动代码

6. 重新配置工程文件与头文件

如果直接打开工程会发现缺少大量的文件,因为我修改了文件的路径,因此需要重新配置。

添加相关文件,修改之后效果

7. 工程结构

(工程结构根据个人习惯即可,下面的部分我已经做了一些修改,比如支持 log_printf 标准打印组件 支持彩色 、SEGGER_Printf 标准打印组件)

Application ——》main.c(主函数) g32a1xx_int.c(中断服务函数)

UserConfig 用户模块外设配置代码 (主要有芯片外设配置文件、rt-thread接口配置文件、finsh-port等

CmsisDrivers CMSIS底层驱动代码

BoardDrivers 板级驱动代码 board.c

PeriphDrivers 芯片底层标准库代码

Middlewares 中间件代码 (RT-Thread OSIF FINSH SEGGER-RTT)

ModuleDrivers 模块驱动代码

 

8. 编写程序


​/*
 *  极海半导体-Geehy-G32A146X开发板软硬件资料
    * Change Logs:
    * Date           Author       Notes
    * 2024-12-30      Coderend     mdk-template (log_printf)
    * 2024-12-31      Coderend     rt-thread +finsh         
 */
/* 包含头文件-----------------------------------------------------------------*/
#include "main.h"
​
/* 私有宏定义-----------------------------------------------------------------*/
​
/* 私有变量-------------------------------------------------------------------*/
static const char* tag = "main";
​
/** @addtogroup G32A1465_Examples
  @{
  */
​
/** @addtogroup RTOS_RT-Thread
  @{
  */
​
/** @defgroup RTOS_RT-Thread_Variables Variables
  @{
*/
​
static rt_thread_t led_thread = RT_NULL;
​
/**@} end of group RTOS_RT-Thread_Variables*/
​
/** @defgroup RTOS_RT-Thread_Functions Functions
  @{
  */
​
void led_thread_entry(void* parameter);
​
static void board_information_log(void)
{
        LOGI(tag,"Geehy-G32A1465 rt-thread finsh testing[ok]! \r\n");
        LOGI(tag,"Geehy-G32A1465 SEGGER-RTT testing[ok]! \r\n");
        LOGE(tag,"Geehy-G32A1465 by coderend 2024.12.30 testing[ok]! \r\n");
}
/*!
 * @brief   Main function
 *
 * @param   None
 *
 * @retval  None
 */
int main(void)
{   
      /* 调用这句进行初始化以及打印开机信息【Demo start!】*/
      segger_rtt_init("Geehy-G32A1465-SEGGER-RTT-Tempalte [ok] \r\n");  
      board_information_log();
    /* Initialize LEDs */
    LED_Init();
    /* Create thread */
    led_thread = rt_thread_create("led1",
                               led_thread_entry,
                               RT_NULL,
                               256,
                               3,
                               20);
​
    /* Startup thread */
    rt_thread_startup(led_thread);
}
​
/*!
 * @brief   LED thread entry function
 *
 * @param   parameter: the parameter of thread enter function
 *
 * @retval  None
 */
void led_thread_entry(void* parameter)
{
    while (1)
    {
        LED_Toggle(LED_GREEN);
                LOGI(tag,"LED_GREEN LED_Toggle \r\n");
        rt_thread_delay(1000);
              LED_Toggle(LED_RED);
              LOGI(tag,"LED_RED LED_Toggle \r\n");
              rt_thread_delay(1000);
              LED_Toggle(LED_BLUE);
                LOGI(tag,"LED_BLUE LED_Toggle \r\n");
              rt_thread_delay(1000);
    }
}
​
/**@} end of group RTOS_RT-Thread_Functions */
/**@} end of group RTOS_RT-Thread */
/**@} end of group Examples */

具体完整代码见仓库代码。  https://gitee.com/End-ING/geehy-g32mcu-evaluation-board-note

9. 编译代码

10. 下载代码

板子支持JLINK下载,并提供了接口,因此本次实验使用JLINK下载,当然使用DAPlink同样可以,只要接上对应的接口。

注意问题:如果刚开始点击JLINK选项时,可能会弹出需要选择芯片的情况,但是jlink目前不支持这个芯片,出现这个情况的原因是选择了JATG模块,因此我们需要改成SW模式,才能出现ARM CoreSight SW-DP才能能够正常下载。

 

11. 下载程序完成之后,观察串口打印信息

msh组件显示RT-Thread版本

使用J-Link RTT Viewer 查看打印效果,一般用于板子没有多余串口的情况,SEGGER-RTT是一个强大的嵌入式调试组件

移植log_printf组件,标准打印组件,同时支持彩色,文件来源之前在APM32F407工程里面的,感觉十分好用就一直在用。

 

 

 


 

开发板测评
版块: 极海半导体
2024/12/30 21:09
  • 举报
😁😂😃😄😅😆😉😊😋😌😍😏😒😓😔😖😘😚😜😝😞😠😡😢😣😤😥😨😩😪😫😭😰😱😲😳😵😷😸😹😺😻😼😽😾😿🙀🙅🙆🙇🙈🙉🙊🙋🙌🙍🙎🙏✂✅✈✉✊✋✌✏✒✔✖✨✳✴❄❇❌❎❓❔❕❗❤➕➖➗➡➰🚀🚃🚄🚅🚇🚉🚌🚏🚑🚒🚓🚕🚗🚙🚚🚢🚤🚥🚧🚨🚩🚪🚫🚬🚭🚲🚶🚹🚺🚻🚼🚽🚾🛀Ⓜ🅰🅱🅾🅿🆎🆑🆒🆓🆔🆕
@好友

全部评论

加载中
游客登录通知
已选择 0 人
自定义圈子
移动
发布帖子
发布动态
发布问答
最新帖子
树莓派pico 2测评 - 初体验【工程师经验】+ 飞线【开源】zvs142857 2.1A,3A快充 充电宝迷你UC3842 开关电源优化全解析:攻克常见难题,提升性能飞腾CPU × DeepSeek大模型,双芯加持全系列稳跑
热门版块
查看更多
维修技术
电子元器件
萤火工场
电子DIY
汽车电子工程师论坛
工业电子专区
新手入门指南
单片机/MCU论坛
PCB设计
开源项目

168

收藏

分享

微信扫码
分享给好友

评论