发 帖  
原厂入驻New
[原创] 灵动微课堂 (第122讲) | 基于MM32 MCU的OS移植与应用:AMetal平台新建工程
2020-5-22 17:04:59  122
分享
1.jpg
立功科技推出的AMetal平台,无论选择何种 MCU 和 OS,只要 AMetal平台支持,就可以在目标板上实现跨平台运行。无论何种 OS,它只是 AMetal 的一个组件,针对不同的OS,AMetal 都提供相应的适配器,那么所有的组件都可以根据需求互换。AMetal 采用高度复用的原则和只针对接口编程思想为前提,则应用软件均可实现“一次编程,终身使用、跨平台”,其所带来的最大价值就是不需要再重新发明轮子。我们今天将和大家一起实战操作基于立功科技的AMetal平台的MM32 MCU的新建工程

立功科技基于AMetal平台为灵动微电子MM32 MCU适配了底层驱动及标准接口,用户使用时,可以完全脱离用户手册及繁杂的寄存器操作,直接调用AMetal提供的接口函数,软件开发效率将大大提高。

AMetal共分为三层,硬件层、驱动层和标准接口层,这三层对应的接口均可被应用程序使用。硬件层对SOC做最原始封装;驱动层在硬件层的基础上进一步封装,简化对外设的操作;标准接口层提取出了一套标准API接口,不仅适用于AWorksOS开发平台也适用于其他操作系统

2.jpg
图1 AMetal构架

同时AMetal 提供高效、功能完善的服务组件,主要包括USB、Lora、Modbus、链表、环形缓冲区;以及常用器件的驱动,如:74HC595、LM75、EP24Cxx、MX25xx、DS1302 等;应用程序需要的一切,都可以提供,利用平台提供的软件组件,用户可以省去大量的软件编写及测试时间,专注于应用代码的开发,将极大提高研发效率,尽快走向量产之路。

了解了AMetal平台的特点,我们从今天开始将在后续的系列文章中和大家一起实战演练如何搭建开发环境,如何编写应用程序,如何编写、 调试和固化应用程序,在eMiniboard硬件平台与大家一起一步一步的熟悉如何在AMetal平台使用MM32 MCU开发产品。

一、准备工作

MDK 开发环境:需要安装 MDK-ARM 5.27 (正式版或评估版,5.12 版本及以上版本均可),并且安装灵动微电子官网(www.mm32mcu.com)的pack驱动包。在AMetal官网有介绍IAR、MDK和GCC的新建工程说明文档,大家如果有兴趣可以去官网获取资料。 

硬件平台:MM32 eMiniBoard板载MM32-LINK OB调试器,所以无需外接仿真调试器。 

•  MM32L073PF (Cortex-M0 MCU:128k FLASH、20k SRAM)
•  板载SPI Flash芯片
•  板载IIC EEPROM芯片
•  板载CAN转换芯片
•  板载无源蜂鸣器
•  具备3个VR
•  具备4个LED
•  具备4个KEY
•  双USB接口,USB-1支持USB仿真、下载和调试,USB-2支持USB device和供电
•  板载MM32-LINK OB,可对主控MCU进行在线仿真、调试和下载
•  支持 Keil UVision/ IAR EWARM开发环境

3.jpg
图2 MM32 eMiniBoard硬件平台

获取源码:
目前可以通过两种方式获取源码:

AMetal 在Github平台开源下载网址:
https://github.com/zlgopen/ametal
用户可直接通过此页面下载 AMetal 开源代码包。

AMetal 在码云平台开源下载网址:
https://gitee.com/zlgopen/ametal
用户可直接通过此页面下载 AMetal 开源代码包

二、认识AMetal 源码目录结构

我们通过上述链接获取源码并解压对应的文件夹中,我们可以看到如下目录:

文件/文件名
描述
3rdparty
存放第三方软件包
arch
存放内核相关文件
board
存放板级相关文件
components
存放组件文件
documents
存放各类文档
examples
存放各类例程
inteRFace
存放 AMetal 标准接口文件
soc
存放片上系统相关文件
tools
存放一些工具包,如 Keil 的 PACK 包
CHANGELOG
版本修改记录文件
COPYING
版本声明文件
LICENSE
版权许可证文件(AMetal 采用的是 LGPL 许可证)
README
README 文件

表1 AMetal源码结构


1
3rdparty
3rdparty 用于存放一些由第三方提供的软件包,比如 CMSIS 软件包。CMSIS是 ARM Cortex 微控制器软件接口标准,是 CortexM 处理器系列的与供应商无关的硬件抽象层,可以在灵动微电子官网或MDK官网下载。

2
arch
arch 文件夹用于存放与架构相关的通用文件,该目录下按不同的架构分成不同的文件夹,如 arm 文件夹。

3
board
board 文件夹包含了与开发板相关的文件,如启动文件及与开发板相关的设置和初始化函数等。board 文件夹内分为板级通用文件夹“bsp_common”和若干某一型号开发板的专用文件夹,如“am116_core” 。分别用于存放板级通用文件和对应型号开发板的专用板级文件。

4
components
components 文件夹用于存放 AMetal 的一些组件。比如 AMetal 通用服务组件service,其内部包含了一些通用外设的抽象定义,如蜂鸣器、数码管等以及它们的标准接口函数定义等,用户可通过 AMetal 标准接口调用。

5
Documents
documents 用于存放 SDK 相关文档。

6
examples
examples 文件夹主要包含各级示例程序,包括硬件层 demo、驱动层 demo、板级 demo及组件 demo 等。

7
interface
interface 文件夹下包含 AMetal 提供的通用文件,包括标准接口文件和一些工具文件,这些标准接口与具体芯片无关,只与外设的功能相关,屏蔽了不同芯片底层的差异性,使不同厂商、型号的 MCU 都能以通用接口进行操作。

以“am_gpio.h”文件为例,它包含了用于控制 GPIO 的各个函数的函数原型及一些参数宏定义,如 GPIO 配置函数“int am_gpio_pin_cfg(int pin, uint32_t flags) ” ,用户可以直接调用此函数对 MCU 的 GPIO 引脚进行配置,而不用考虑不同芯片之间的差异。

8
Soc
soc,片上系统文件夹,主要包含了与 MCU 密切相关的文件,包括硬件层和驱动层文件。

9
tools
tools 目录下存放 SDK 相关工具,如 Keil 的 PACK 包。



三、新建工程

AMetal已经为用户提供了MDK、IAR和GCC的工程模板,用户可以自由选择自己熟悉的平台,用户可选择灵活度高。下载的源码已经为用户提供了工程模板,如果用户不打算重新新建工程,可以直接在工程模板上进行开发,如果用户需要使用自己的程序构架,用户可以参考灵动微电子官网应用说明栏的《AN0001 MDK5.18安装指南》和立功科技的《面向AMetal框架和接口的C编程》的1.2 搭建开发环境章节,在这里我就不做过多的赘述。

用户如需在现有的工程构架上新建工程,只需要复制一份 project_template 并粘贴即可。eMiniboard工程模板目录为ametal/board/ mm32l073_core /project_template,以新建一个操作测试工程为例,直接复制一份 project_template 并粘贴。复制粘贴后如图3所示。

注意:只能粘贴在 ametal/board/{board_name}/目录下,即与 project_template 处于同一级目录,不可随意拷贝、粘贴至其他目录。
4.jpg
图3 复制一份工程模板

复制工程模板成功后,将 project_template - 副本重命名为自己期望的工程名即可,如命名为testcode,重命名后如图4所示。

5.jpg
图4 重命名工程目录

打开重命名的testcode文件夹,然后打开 project_keil5 文件夹,template.uvprojx 即为工程文件,debug文件里面存放着工程编译信息文件。建议将工程文件命名为与工程项目相关的名字,如将 template.uvprojx 重命名为testcode.uvprojx。

6.jpg
图5 显示工程结构

至此,我们新建工程的流程已操作完成,在图5的工程结构中,arm 下面存放着系统定时和中断控制,drivers 下包含了该开发板支持的驱动源文件及实现;libc 下是 AMetal 开发平台相关的库文件;service 下面为用户提供的一些标准服务接口,soc 下面是与芯片底层相关的一些功能实现,startup 下面是系统启动文件,user_config 下为配置文件;user_code 下面用户添加开发的文件。

在工程窗口中,目录 user_code 是存放用户程序的地方,点击 user_code 前面的“+”号可以显示该结点下所有的文件,默认只有一个文件 main.c, 双击 main.c 便会出现 main.c的代码编辑窗口,用户可以开始编写代码。



在本章节中主要介绍了基于AMetal平台的MM32 MCU的新建工程,由于篇幅限制,我们将在下一章节与大家一起学习基于AMetal平台快速开发应用程序,为方便用户快速熟悉 AMetal平台,我们将以一个简单的示例——LED 闪烁来展示运行一个应用程序需要经历哪些基础步骤,敬请期待!

注:本章节有参考周立功老师的

●《面向AWorks框架和接口的C编程》
○ 下载链接:https://www.zlg.cn/foxmail/weixinpdf/AWorks.pdf

●《面向AMetal框架和接口的C编程》
○ 下载链接:https://www.zlg.cn/foxmail/weixinpdf/AMetalzl.pdf
这两本书可以在立功科技官网下载电子版,大家有兴趣可以去官网下载电子版阅读,相信理解、熟悉该书籍后,定能从入门到精通,从小白到大神的蜕变之路,在此对周老师表示感谢!
0
2020-5-22 17:04:59   评论 分享淘帖

只有小组成员才能发言,加入小组>>

1446个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /7 下一条

快速回复 返回顶部 返回列表