国产开发板移植指南-APM32F10

举报
Lionlace 发表于 2021/08/16 11:32:08 2021/08/16
【摘要】 APM32F103xDxE 系列 MCU ,基于 32 位 ARM®Cortex ®-M3 内核,最高工作主频 96MHz ,支持 FPU 浮点运算单元,配置增强型外部存储控制器 EMMC ,支持 USB 和 CAN 接口同时使用。

APM32F103简介

厂家介绍 :珠海极海半导体有限公司,是艾派克微电子旗下全资子公司,其前身为艾 派克物 联网芯片事业部,总部 为纳思达 股份有限公司。

芯片介绍: APM32F103xDxE 系列 MCU ,基于 32 位 ARM®Cortex ®-M3 内核,最高工作主频 96MHz ,支持 FPU 浮点运算单元,配置增强型外部存储控制器 EMMC ,支持 USB 和 CAN 接口同时使用;集成片上储存器、定时器以及数据转换器等多种外设接口,具有功耗低、容量大、可移植性好、 Flash 擦除 / 编程速度快等特点。目前已经通过中国 IEC61508 SIL2 认证和 USB-IF 测试,符合工业级高可靠性标准。适用于航模飞机、手持云台、 扫码枪 、报警器、密码锁、电子秤等领域。

硬件介绍:

开发板: APM32ZE_MINI

CPU : APM32F103ZET6

主频: 96MHz

Flash/SRAM : 512KB/128KB


移植准备

硬件环境: 本实验使用了 APM32ZE_MINI 开发板、 USB 转 TTL 模块和 JLINK 烧录器。

软件环境: 本实验需要先 按照码云上 的 LiteOS 教程搭建好 linux 环境( make 、 arm-none- eabi 编译工具链)。

软件环境搭建教程参考: https://gitee.com/LiteOS/LiteOS/blob/master/doc/LiteOS_Build_and_IDE.md

本实验需要用户先下载 APM32 官方的 SDK (当前使用版本为 APM32F10x_SDK_V1.5 )、数据手册、烧录器仿真器使用说明书等资料。链接地址: https://www.geehy.com/apm32?id=17

注:如果有 APM32 官方 demo 使用的 keil 软件可以直接按照 APM32 官方教程测试该开发板的串口和定时器的实现。


移植过程

1. 创建目录框架

在 targets 文件夹下新增 APM32F103_Geehy 文件夹,其目录结构参考 STM32F103_FIRE_Arbitrary 文件夹结构进行创建。

拷贝 APM32 官方 SDK 中的驱动库到 targets\ bsp \drivers 下。

拷贝文件夹 Inc 、 include 、 os_adapt 、 Src 和文件 liteos.ld 、 los_startup_gcc.S 、 Makefile 到 APM32F103_Geehy 目录中。

替换 Inc 和 Src 中文件,将 Inc 目录下 stm32f1xx_hal_conf.h 、 stm32f1xx.h 、 stm32f103xe.h 、 system_stm32f1xx.h 文件替换为 apm32f10x.h 、 system_apm32f10x.h ;将 Src 目录下 system_stm32f1xx.c 文件替换为 system_apm32f10x.c 。

适配编译配置,参考其他同架构的开发板在 targets\bsp.mk 、 targets\ bsp \ Makefile 、 tools\build\ config 、 targets\Kconfig.apm32 中添加 APM32F103 相关内容。

最终板载目录结构如下:

上述步骤完成后执行下面两条指令进行调试:

• 在 shell 终端中输入命令 make menuconfig ,确保在文件夹 targets\APM32F103_Geehy\include\ 下生成了 menuconfig.h 文件及根目录下的 . config 文件中内容是所配置的。

• 在 shell 终端中输入命令 make clean && make – j ,确保编译选项和文件链接正常。


2. 移植代码

• 适 配系统时钟

系统时钟是通过 los_startup_gcc.S 文件调用 system_apm32f10x.c 中的 SystemInit 来初始化,无需主动实现。

• 适配串口

参考 APM32 官方 SDK 中的 Examples\USART\ Printf 文件夹下示例,实现串口初始化和 UartControllerOps 结构体。

• 适配定时器(用于 cpup ,计算 cpu 使用率)

参考 APM32 官方 SDK 中的 Examples\TMR\ TimeBase 文件夹下示例,实现定时器初始化和 TimControllerOps 结构体。



3. 编译烧录测试

上述步骤完成后,在 shell 终端输入命令 make clean && make – j 进行编译,编译成功会在 out\APM32F103_Geehy\ 下生成 Huawei_LiteOS.bin 文件。

通过 JLINK 下载生成的 Huawei_LiteOS.bin 文件到开发板,本实验使用 JLINK 软件中的 J-Flash Lite.exe 来进行烧录:

• 打开 J-Flash Lite.exe

• 配置烧写芯片 为 APM32F103ZET6

• 修改烧录地址为 0x08000000 (默认烧录地址是 0x00000000 )

• 点击 Program Device 进行烧录

参考文献链接:

[1]APM32 官方资料: https://www.geehy.com/apm32?id=13


结语

至此, LiteOS 系统成功启动和运行。该移植工程已经在 Gitee LiteOS 社区上线,相关代码链接地址为: https://gitee.com/LiteOS/LiteOS/tree /master/targets/APM32F103_Geehy

感谢您的阅读,有任何问题、建议,都可以留言给我们,让我们一起进步:

https://gitee.com/LiteOS/LiteOS/issues

为了更容易找到“ LiteOS ”代码仓,建议访问 https://gitee.com/LiteOS/LiteOS ,关注“ Watch ”、 点赞“ Star ” 、并“ Fork ”到自己账号下,如下图。

0 (1).png


- end-

0.jpg

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。