Git Product home page Git Product logo

ametal's Introduction

简介

AMetal是芯片级的裸机软件包,定义了跨平台的通用接口(使得基于AMetal的应用程序可以和具体硬件完全分离,实现跨平台复用),并提供了一系列驱动及常用的软件服务。

背景

在MCU产业快速发展的今天,芯片厂商推出了越来越多的MCU。不同厂商、型号之间,MCU外设的差异却是千差万别的,这给广大嵌入式开发人员带来了诸多烦恼。Apollo平台对同一类外设进行了抽象,并设计了相应的标准接口以及对应的中间层,使得不同厂商、型号的MCU外设都能以标准的接口操作。

但是,各个外设的差异实在是太大了,Apollo平台只能将最通用的那一部分功能抽象出来,外设特有的功能就被去除,毕竟,鱼和熊掌不能兼得。在Apollo早期版本中,为了操作外设特有的功能,程序员则需要绕过Apollo直接操作寄存器,这就要求程序员花大量时间去熟读外设的用户手册。

此外,部分从传统单片机转过来的程序员,更喜欢直接控制硬件,对操作系统之类比较排斥。在某些特殊应用下,为了提高效率、节省内存资源或“榨干”MCU,程序员会选择直接操作硬件。

对于上层操作系统而言,例如,AWorks、Linux等,对各个外设都需要编写驱动。在编写特定操作系统下的驱动时,必须要熟悉特定的驱动框架及操作系统调用,这往往会花费开发人员相当大的精力。对于同一个外设而言,如果要支持多个操作系统,就需要编写多个驱动,其实,驱动底层对硬件的操作是有相通之处的。

AMetal裸机软件包的出现便是解决这里提到的问题。

特点

  • 将外设操作标准化,避免上层软件、驱动的再次开发;
  • 能独立运行的软件包,全部开源,提供工程模板与DEMO程序,可在此基础上开发应用程序;
  • 不依赖操作系统服务;
  • 尽可能将外设的所有特性开放出来;
  • 尽可能浅地对外设进行封装,把效率放在第一位;
  • 用户不用看芯片手册也能使用。

快速入门

  • 模板工程位于 ametal/board/{board_name}/project_template 目录下。例如:硬件板 am116_core 对应的 keil5 模板工程位于:ametal/board/am116_core/project_template/project_keil5/template_am116_core.uvprojx。可以直接打开后使用。

    注意:ZLG 相关芯片的 keil pack 包位于:ametal/tools/keil_pack。

  • 示例工程位于 ametal/board/{board_name}/project_example 目录下。默认为LED闪烁的demo,通过修改调用的demo函数,可以运行其他demo,如 SPI、ADC、EEPROM 等等。

  • TODO:

ametal's People

Stargazers

 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.