国产开发板移植指南-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个月内不可修改。