前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【GD32L233C-START】5、获取MCU96位唯一ID、SRAM、FLASH大小

【GD32L233C-START】5、获取MCU96位唯一ID、SRAM、FLASH大小

作者头像
ManInRoad
发布2022-04-04 15:52:52
9550
发布2022-04-04 15:52:52
举报
文章被收录于专栏:物联网思考物联网思考

1、关于电子签名

设备的电子签名中包含的存储容量信息和96位的唯一设备ID。它被存储在片上闪存的信息模块 中。96位唯一设备ID对于每颗芯片而言都是唯一的。它可以用作序列号,或安全密钥的一部分, 等等。

2、96位唯一ID

96位ID信息,地址依次为0x1FFFF7E8、0x1FFFF7EC、0x1FFFF7F0,设备出厂的时候,已经固化在mcu内部的,用户不可更改。

3、关于SRAM和FLASH大小

存储容量信息,地址为0x1FFFF7E0,设备出厂的时候,已经固化在mcu内部的,用户不可更改。

4、程序读取

代码语言:javascript
复制
#define   STORAGE_INFO       0x1FFFF7E0

#define   UNIQUE_ID          0x1FFFF7E8

#define   UNIQUE_ID_0_31     0x1FFFF7E8
#define   UNIQUE_ID_32_63    0x1FFFF7EC
#define   UNIQUE_ID_64_95    0x1FFFF7F0

struct McuInfo_t
{
	union
	{
		uint32_t Size;
		struct
		{
			uint16_t FlashSize;
			uint16_t SramSize;
		};
	}Storage;
	uint8_t UniqueId[12];
}McuInfo;

void GetMcuInfo(void)
{
	McuInfo.Storage.Size=*(uint32_t*)STORAGE_INFO;
	
	printf("sram size=%dk\r\n\r\n",McuInfo.Storage.SramSize);
	printf("flash size=%dk\r\n\r\n",McuInfo.Storage.FlashSize);
	printf("unique id:[");
	for(uint8_t i=0;i<12;i++)
	{
		McuInfo.UniqueId[i]=*(uint8_t*)(UNIQUE_ID+i);
		printf(" %02x",McuInfo.UniqueId[i]);
	}
	printf("]\r\n");
}

5、实验现象

可以看出,程序读取的和调试器调试读取的一致。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-02-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 物联网思考 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、关于电子签名
  • 2、96位唯一ID
  • 3、关于SRAM和FLASH大小
  • 4、程序读取
  • 5、实验现象
相关产品与服务
腾讯电子签
弹指间,放心签。腾讯电子签(E-Sign Service)致力为企业及个人提供极简且高效的电子合同管理工具。您只需要一部手机即可完成合同签约及常见的合同管理操作;电子签将对签约全程进行区块链记录,为您的业务与生活保驾护航。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档