自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Krysdong

BNUZ、北师珠

  • 博客(56)
  • 资源 (1)
  • 收藏
  • 关注

原创 嵌入式STM32F103温湿度SHT30

**嵌入式STM32F103VE驱动温湿度STH30管脚配置连接SCL->GPIOC8SDA->GPIOE6程序代码#include "stm32f10x.h"#define BIT(x,n) ((x&(1<<n))!=0)#define SCL_PIN GPIO_Pin_6 //SCL PC6#define SDA_PIN GPIO_Pin_...

2019-09-26 11:16:37 2750

原创 蓝桥杯c51单片机省赛温度记录器

温度记录器#include &amp;amp;lt;STC15F2K60S2.H&amp;amp;gt;#include “DS18b20.H”#include &amp;amp;lt;INTRINS.H&amp;amp;gt;#define Y(n) P2=P2&amp;amp;amp;0x1F|(n&amp;amp;lt;&amp;amp;lt;5),P2=P2&amp;amp;amp;0x1Funsigned char

2018-12-15 17:53:59 1620

原创 C51单片机数码管显示数字实现

代码部分:#include &lt;STC15F2K60S2.H&gt;#include &lt;INTRINS.H&gt;#define Y(n) P2=P2&amp;0x1F|(n&lt;&lt;5)unsigned char digit[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};unsigned char num[8...

2018-12-13 17:09:54 9455 7

原创 java依赖抽象而非具体实现

在大型项目中,某些核心服务(如日志系统、数据库连接、配置管理)需要被多个模块频繁访问。如果每个模块都直接依赖具体实现类的实例化方式(如 new System()),会导致:代码重复:每个模块都需要自己实例化对象。耦合性高:修改具体实现类时,所有依赖它的模块都需要同步修改。难以扩展:替换实现类需要全局搜索并替换所有相关代码。解决方案:通过一个 全局访问点(如 HostInterface.SystemImpl),所有模块只需通过这个统一的入口获取服务实例,无需关心实例如何创建。

2025-04-17 10:10:22 460

原创 eSIM Profile结构与元素(ASN.1)

ASN1START 和 ASN1STOP:是注释标识,表明中间代码段是 ASN.1(一种用于定义数据结构的标准标记法)相关定义。基本整数类型及大小约束maxUint8:定义为INTEGER 类型,值为 255 ,代表 8 位无符号整数能表示的最大值。Uint8:也是 INTEGER 类型,取值范围是 0 到 maxUint8(即 0 - 255 ) ,是 8 位无符号整数类型。maxUint15:值为 32767 ,是 15 位无符号整数能表示的最大值。

2025-04-15 11:24:54 990

原创 T=0 协议下,命令响应传输的规则

在 2、3、4 类情况里,如果在传输完所有命令和(或)响应数据字节前出现该警告指示,可能继续当前过程(如使用 GET RESPONSE 命令传输响应数据字节),也可能触发另一个命令(如 ‘6202’ 到 ‘6280’,使用 GET DATA 命令传输卡中生成的字节串,详见 ISO/IEC 7816 - 4)。在 1 和 3 类情况中,卡不应使用该值。在 4 类情况里,卡接收完 Nc 个命令数据字节后,要准备好接收至少一个 GET RESPONSE 命令,用于传输最多 Ne 个响应数据字节。

2025-04-11 13:37:30 245

原创 私钥、证书、CA 公钥、签名和证书验证服务

当 eUICC 接收到来自 SM - DP + 的操作请求时,会使用私钥对响应数据进行签名,SM - DP + 通过对应的公钥来验证签名的合法性,从而确认数据确实来自该 eUICC。在验证 SM - DP + 的证书时,eUICC 会使用 eSIM CA RootCA Public Key 来验证证书的签名,确保证书的真实性和有效性,进而信任 SM - DP + 的身份和公钥。含义:一种用于验证证书合法性的服务,通过检查证书的颁发者、有效期、证书链的完整性以及证书是否被吊销等信息,来确定证书是否可信。

2025-04-10 11:19:21 530

原创 逻辑通道、LSI 与 LSE 的关系

逻辑通道(Logical Channels):UICC 支持的多个独立通信会话,每个通道可运行不同应用或任务,共享物理接口。通过MANAGE CHANNEL命令管理(打开 / 关闭),最多支持 19 个通道(编号 0-19)。逻辑安全接口,允许终端通过单一物理接口与多个LSE通信。LSI 由连续数字标识(0-0x1F),通过MANAGE LSI命令配置和管理。逻辑安全元件,运行在 UICC 上的独立安全域,每个 LSE 拥有独立的文件系统、应用、安全状态等,逻辑上等同于独立的安全芯片。

2025-03-26 11:04:03 263

原创 LSI、LSE(7816)逻辑安全元素接口

逻辑安全接口、逻辑安全元素

2025-03-26 10:38:25 350

原创 CMAC​(Cipher-based Message Authentication Code)

CMAC​(Cipher-based Message Authentication Code,基于分组密码的消息认证码)是一种基于对称加密算法的消息认证技术,用于验证数据的完整性和真实性。它结合了分组密码(如AES)与特定运算模式,确保只有持有密钥的合法方才能生成或验证认证码。以下是CMAC的详细解析:​。

2025-03-25 11:25:08 526

原创 AES算法和CBC加密模式

AES 是一种对称加密算法,而 ​CBC 是一种加密模式,两者共同协作完成数据加密。

2025-03-25 11:20:28 197

原创 ARM 汇编基础

ARM 汇编是嵌入式开发、操作系统底层编程和性能优化的核心技能之一。以下是一份系统的 ARM 汇编指令教学指南,涵盖基础语法、核心指令、编程模式和实用示例。

2025-03-21 13:57:06 1312

原创 setJmp,longJmp

是 C 语言中用于实现非局部跳转(Non-local Jump)的库函数,允许从深层嵌套的函数调用中直接跳转回某个预设的“检查点”。它们通常用于错误恢复或中断处理,但需要谨慎使用,因为可能绕过正常的函数返回流程,导致资源泄漏等问题。// 跳转到错误处理。// 第一次调用保存上下文。printf(“无法打开文件\n”);printf(“协程启动\n”);printf(“协程恢复\n”);2. ​协程或状态机。

2025-03-19 16:12:50 286

原创 Keil中出现“function definition is not allowed here”错误

在Keil中出现“function definition is not allowed here”错误,通常是因为在C语言中不允许在特定位置定义函数。头文件中直接定义函数。

2025-03-11 14:38:27 443

原创 c语言 结构体对齐

ARM7架构(基于ARMv4T)的结构体内存对齐遵循以下规则,以确保数据访问的正确性和效率。​编译器指令:使用#pragma pack(n)或__attribute__((packed))可修改对齐规则,但可能导致性能下降或错误。通过sizeof可验证结构体实际大小,结合调试器查看内存布局。​硬件限制:ARM7不支持非对齐访问,编译器必须严格对齐。​成员顺序优化:合理排列成员可减少填充,节省内存。

2025-03-10 16:06:53 278

原创 嵌入式软件开发流程

目标:明确模块的功能、性能及约束条件。功能需求:模块的输入/输出、数据处理逻辑、交互接口。非功能需求:实时性要求(如响应时间)、资源限制(内存、功耗)、可靠性(容错机制)。外部依赖:与硬件(传感器、外设)、其他模块的交互协议(如CAN、SPI、UART)。输出:需求文档(含功能清单、接口定义、性能指标)。

2025-02-06 16:37:39 398

原创 AES-128、3DES 和 DES 的详细介绍以及示例教程

以下是 AES-128、3DES 和 DES 的详细介绍以及示例教程,包括它们的原理、特点、优缺点以及如何使用 Python 实现加密和解密。

2025-02-06 11:39:30 495

原创 嵌入式软件架构设计

对于不同的微控制器,其 GPIO 寄存器操作方式可能不同,但在 HAL 中可以提供统一的 gpio_init、gpio_set、gpio_get 等函数,内部根据不同的硬件平台调用相应的寄存器操作代码。包含对处理器、外设(如 UART、I2C、SPI、GPIO 等)的初始化、配置和基本操作的函数。例如操作系统抽象层(如果使用操作系统)、文件系统、网络协议栈、加密库等。一个简单的文件系统可以基于存储设备驱动实现文件的创建、读写、删除等操作。对设备进行初始化、数据读写、状态监测等操作,实现设备的具体功能。

2025-01-22 09:47:56 221

原创 应用HCI非接参数切换

3.在修改参数的native函数添加事件通知,请求发起HCI typeA参数切换流程。4.在dispatch分配命令,处理完成命令后,添加while(参数切换成功)等待。5.设置超时200ms,切换超时break,跳出死循环。1.更新typeA参数到配置区。2.添加typeA参数修改标志。

2025-01-13 13:50:49 86

原创 vscode修改中文显示格式

点击该选项的下拉菜单,选择你需要的中文编码格式,如 GBK、GB2312 等。这样,当你新建文件或打开文件时,VSCode 会尝试使用你设置的编码格式来处理文件。2.在搜索框中输入 “encoding”,可以看到 “Files: Encoding” 选项。1.点击 VSCode 界面左侧的 “管理”(齿轮图标),选择 “设置”。

2024-12-26 11:46:55 1168

原创 嵌入式 数据类型占用字节数

在 32 位系统中,long类型一般占用 4 个字节,和int类型字节数相同(在这种情况下,long和int可以相互替代使用,不过它们的语义稍有不同)。这里enum Color类型的变量在 32 位系统中一般占用 4 个字节,它实际上是用整数来表示枚举值,默认情况下RED可能被赋值为 0,GREEN为 1,BLUE为 2 等。在 32 位系统中,union Data类型的变量大小为 4 个字节,因为int和float在 32 位系统中都是 4 个字节,取其中最大的字节数作为联合体的大小。

2024-12-23 10:26:04 811

原创 ARM异常处理 M33

ARM异常处理

2024-12-23 10:21:13 1356

原创 嵌入式教程系列(5)SPI模块

SPI模块

2024-12-17 11:04:29 307

原创 修改Eclipse中中文的字体大小

在弹出的“Font Size”对话框中,可以设置中文字体的大小。选择需要的字体大小,例如“小”或“中”。在“Font”选项卡中,可以看到当前使用的所有字体。选择需要修改的中文字体,例如“宋体”。在Eclipse菜单栏中选择“Window”->“Preferences”。在弹出的窗口中选择“General”->“Appearance”。在“Appearance”窗口中选择“Font”选项卡。首先,打开Eclipse并打开一个Java项目。点击“OK”按钮,保存设置。

2024-12-14 15:51:02 206

原创 CGM:卡与应用内存管理

内存管理

2024-12-11 17:08:47 935

原创 Flash操作 原子写 非原子写

这就叫非原子操作,因为他使用了超过一条的汇编指令,并且可以被中断(相反,只用到一条指令的,无法中断的称作原子操作)。更新一个结构体的多个成员,或者更新一个大于CPU结构的字长(例如,在16位机器上更新一个32位变量)的变量,都是非原子操作的例子。如果中断,可能会导致数据丢失或损坏。第1句,从PORTA的地址读取数据,保存到R1;第3句,R1和R2进行或操作,并存入R1;第4句,把R1的值保存到PORTA的地址去。第2句,把0x01保存到R2;

2024-12-10 21:02:19 165

原创 Freertos任务切换

FreeRTOS 有些 API 函数也会调用函数 taskYIELD(),这些 API 函数都会导致任务切换,这些 API 函数和任务切换函数 taskYIELD()都统称为系统调用。taskSELECT_HIGHEST_PRIORITY_TASK()本质上是一个宏,在 tasks.c 中有定义。(2)、调用函数 taskSELECT_HIGHEST_PRIORITY_TASK()获取下一个要运行的任务。FreeRTOS 中查找下一个要运行的任务有两种方法:一个是通用的方法,另外一个就是使用。

2024-12-05 17:47:35 1056 2

原创 7816-3

R block带的是期望对方下一帧发的块号。0 1 0 1进行翻转,即对2取模。I block 带的是自己的块号。

2024-11-20 20:15:58 123

原创 FreeRtos异常调试手段

MSP(主堆栈指针)通常用于操作系统和异常事件(中断或其他fault)。在复位后,Cortex-M默认进入线程模式、特权级、使用MSP堆栈³。裸机操作时,使用的就是MSP指针。PSP(进程堆栈指针)通常用于用户程序(线程)。在OS初始化时,对PSP进行初始化。

2024-11-19 15:22:31 194

原创 GPC_Communication Interface Access Configuration(GP规范附录C接口访问权限)

2024-11-01 11:26:20 127

原创 uicc.hci.service的理解

i : getHCIservice 调用并实现serviceimp,并记录appid。二、uicc.hci.serviced的三个包。

2024-10-28 20:40:16 422

原创 原码 反码 补码

补码: 正数的补码就是其原码,负数的补码是它的反码加1。负数: 原码符号位除外,其他位按位取反。负整数: 补码等于负整数的反码加一。反码: 符号位不变,其它位按位取反。数据在内存中都是按照补码存储。原码: 数据本身的二进制。

2024-10-28 15:02:26 368

原创 AC访问规则--规则优先级

AC规则优先级

2024-09-06 16:12:03 599 1

原创 AC访问规则--- 设备执行环境

AC规则

2024-09-06 10:57:15 315

原创 存储管理功能

在这里插入图片描述。

2024-08-21 11:49:38 243

原创 嵌入式堆栈、ARM寄存器

ARM寄存器、嵌入式堆栈

2024-08-21 10:08:48 596

原创 mifare4mobile框架

VC Manager生命周期状态:包括SELECTABLE、VC_CREATED、VCM_PERSONALIZED和LOCKED等状态,以及这些状态之间的转换规则,如通过特定命令或事件进行状态转换,同时在状态转换时需要考虑与关联的Service Manager的交互以及VC的状态。综上所述,MIFARE4Mobile框架通过这些组件、接口、元数据管理和生命周期状态的定义,实现了对MIFARE虚拟卡和应用程序的全面管理和控制,确保了系统的安全性、灵活性和可扩展性。

2024-07-25 10:12:59 742

原创 git bash右键菜单失效解决方法

解决git bash右键菜单找不到应用

2024-01-23 15:11:36 2182

原创 SWP CLT M1

CLT

2024-01-09 10:00:54 491

原创 扩展APDU

扩展APDU

2023-03-02 14:16:41 513 2

C51单片机18个功能的例子程序适合小白新手入门学习.zip

c51单片机的所有功能的例子程序,适合小白入手,是嵌入式的铺垫。有17个例子,包括数码管点亮,流水灯,ADC,DAC,定时器,串口等等。

2019-09-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除