• 可穿戴设备主控制器芯片AMA3B 源码解析之初体验


    一 背景和缘由
     
    现在的mcu非常多,在超低功耗mcu这块,能赢得市场穿戴式设备使用的产品的确不多,以前是的是stm32 L系列,可是,随着L系列的缺货涨价和技术指标没有快速的发展,很多厂商都抛弃了。转而使用了阿波罗的AMA3B系列芯片。比如,国内的oppo,一加,华为等公司都采用了这颗芯片。说明了这颗芯片的成熟度还是可以的。
    通过调研分析,笔者发现这颗芯片的sdk规范度比较高,支持arm-gcc,可在ubuntu上编译。这些特点让我知晓,这个芯片公司的技术手段是新的,应用十分成熟,有差异化的东西在里面,非常适合做出差异化的产品。基于此,笔者的计划是先熟悉这颗芯片,然后在接下来的产品中用上它。
     
    二 源码架构
     
    该公司的sdk架构产品和国内一家芯片公司的非常像,做这种架构的公司,一般里面是有软件大牛在的。无论是工具,还是测试代码,所有的都在一个目录下,并且开放程度很高。具体目录如下所示:
    添加图片注释,不超过 140 字(可选)
    ambiq_ble:该目录是ble的协议部分,基本把所有的能用到的ble协议都开放了。
    boards:该目录是不同工程下的目标编译文件所在地,可以在里面找到你所要编译的目标工程并新建目标工程
    bootloader:启动加载代码,多种方式启动的源码。
    CMSIS: 这里面是arm和芯片公司的底层函数所在位置
    devices:接口驱动和应用接口
    mcu:该芯片的寄存器接口
    third_party:第三方操作系统freertos所在地
    tools:工具脚本,bat和py的都有
    utils: 软硬件的接口层,也就是广泛意义的hal层。
     
    三 编译方法
     
    该芯片是基于arm的,可以使用arm-gcc编译,笔者习惯了使用Ubuntu,所以在ubuntu下使用的是arm-gcc编译的。结果和命令行如下所示:
     
     
    四 hello world源码解析
     
     该芯片可以使用ITM和串口两种方式打印日志信息,hello world小命令用的是ITM方式打印,后面针对这种方式方法,笔者会有专门的论述。
        //
        // Print the device info.
        //
        am_util_id_device(&sIdDevice);
        am_util_stdio_printf("Vendor Name: %s\n", sIdDevice.pui8VendorName);
        am_util_stdio_printf("Device type: %s\n", sIdDevice.pui8DeviceName);
    
    
        am_util_stdio_printf("Qualified: %s\n",
                             sIdDevice.sMcuCtrlDevice.ui32Qualified ?
                             "Yes" : "No");
     
  • 相关阅读:
    Winform自定义窗体样式,实现标题栏可灵活自定义
    肿瘤转录组数分析CRN:Cancer RNA-Seq Nexus
    TCGA系列--miRNA数据分析
    TCGA系列--甲基化神器mexpress
    R:reshape2包中的melt
    TCGA系列--GDCRNATools
    R软件中排序:sort(),rank(),order()
    TCGA系列--TCGA长链非编码RNA的可视化工具TANRIC
    记一次RabbitMQ解决分布式事务问题
    RabbitMQ整合Spring Booot【死信队列】
  • 原文地址:https://www.cnblogs.com/dylancao/p/16082900.html
Copyright © 2020-2023  润新知