OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 29|回复: 0

在AT32微控制器上如何实现当前使用内核版本、MCU厂商及型号的识别

[复制链接]

68

主题

68

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
275
金钱
275
注册时间
2024-12-9
在线时间
15 小时
发表于 8 小时前 | 显示全部楼层 |阅读模式
前言

本应用笔记介绍了在AT32微控制器上如何实现当前使用内核版本、MCU厂商及型号的识别。

注:本应用笔记对应的代码是基于雅特力提供的V2.x.x 板级支持包(BSP)而开发,对于其他版本BSP,需要注意使用上的区别。

支持型号列表:AT32 全系列

备注说明:本文档仅供有需求的小伙伴们参考,原文档和更多资料,可访问雅特力官网获取https://www.arterytek.com/cn/support/index.jsp?index=1

1.功能实现
1.1 识别内核版本
所有的MCU内部都包含一颗内核(CPU),数据处理等操作都由它来完成。各MCU厂商在设计MCU的时候会根据使用场景等不同来选择不同的内核版本满足需求。本部分就是提供一种方法自动识别MCU的内核版本。通常本应用涉及到的MCU使用内核情况如表1所示:

内核的系统控制块(SCB)中存在一个名为CPU ID基本寄存器的寄存器,它是只读的,其中包括处理器类型和版本号,即为表1所示的CPU ID(内核版本号)。该寄存器的地址为0XE000ED00(只支持特权访问),在程序中,可以利用SCB->CPUID访问该寄存器,也可通过绝对地址访问,如*(uint32_t *)0xE000ED00。本指南的配套程序就是通过这种方式获取到内核版本号并判断出MCU所使用的内核版本。

注:如需增加其他内核版本的识别,自行添加即可。

1.2 识别 MCU 厂商
AT32 MCU内部包含PID和UID编码。UID总共为96bit,基地址为0x1FFFF7E8。这里只需要最高地址的一个Byte的数据,则地址为0x1FFFF7F3,该地址中的内容可以识别AT32系列MCU为403A系列或其他系列。得到UID后还需要获取PID以得到MCU的其他信息(例如封装、内部FLASH大小,SRAM大小等)从而达到区分的目的,PID的基地址为0xE0042000。本指南配套的程序中将获取到的信息组装成一个64bit的数据,它可以区分出是AT32系列下的哪一种型号,但是程序中只是判断是否为AT32的MCU系列,并没有做其它的细分判断。

AT32系列MCU的PID/UID以及型号的对照表如表2所示:


配套程序通过对表2进行遍历查找,判断当前MCU是否为AT32系列。
注:本应用指南主要为识别AT32系列MCU,若需实现对其他MCU厂商的MCU识别支持,采用类似方法自行添加即可。

注:表格2中所列为AT32系列MCU的F403、F413、F415、F403A、 F407和F421,若需支持更多型号的MCU,添加到程序内的数组表中即可。

2.功能演示
  • AT32 MCU被识别实验: 下载程序到AT32F403A MCU中并运行,查看串口助手打印信息,如图1;


从打印结果可知目前程序运行的MCU为AT32F403A的MCU且内核版本为Cortex-M4。
  • AT32 MCU被识别实验:

下载程序到AT32F407 MCU中并运行,查看串口助手打印信息,如图2;
[size=0.83em]
图2.JPG (26.19 KB)
[color=rgb(153, 153, 153) !important]2026-11-3 11:22 上传




从打印结果可知目前程序运行的MCU为AT32F407的MCU且内核版本为Cortex-M4。

注:所有project都是基于AT32F403A而建立,若用户需要在其他型号上使用,请参考AT32xxx_Firmware_Library_V2.x.x\project\at_start_xxx\templates中各种型号示例工程进行简单修改即可。可将此工程内recognize_at32mcu.h/.c文件放到其他工程内即可使用。
注:所有project都是基于keil 5而建立,若用户需要在其他编译环境上使用,请参考AT32xxx_Firmware_Library_V2.x.x\project\at_start_xxx\templates中各种编译环境(例如IAR6/7,keil 4/5)进行简单修改即可。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /1 下一条

正点原子公众号

如发现本坛存在违规或侵权内容, 请点击这里发送邮件举报 (或致电020-38271790)。请提供侵权说明和联系方式。我们将及时审核依法处理,感谢配合。

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2026-11-3 19:44

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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