首页 > 其他分享 >嵌入式入职上班第一天:读懂保护与解读保护

嵌入式入职上班第一天:读懂保护与解读保护

时间:2024-07-16 13:25:17浏览次数:15  
标签:LED1 入职 void FLASH 嵌入式 保护 GPIO

摘要:

作为一名嵌入式工程师,了解和掌握保护机制至关重要。本文将为大家介绍嵌入式系统中常见的保护机制,帮助新入职的嵌入式工程师快速上手。

#正文:

##一、引言
嵌入式系统在各个领域都有广泛的应用,为了保证系统的稳定性和安全性,各种保护机制应运而生。作为一名嵌入式新入职的工程师,了解和掌握这些保护机制至关重要。本文将重点介绍嵌入式系统中常见的保护机制,包括读保护和解读保护。

##二、读保护
概述
读保护,顾名思义,是指对嵌入式系统中的存储器进行读取权限控制。通过设置读保护,可以防止未经授权的访问和修改存储器内容,确保系统数据的安全。

实现方式
(1)硬件实现:通过硬件电路设计,如存储器管理单元(MMU)或存储器保护单元(MPU),实现对存储器的访问控制。

(2)软件实现:在操作系统层面,通过设置文件权限、用户权限等手段,限制对存储器的读取操作。

应用场景
(1)保护关键数据:如系统参数、用户隐私等,防止被非法读取。

(2)防止恶意代码执行:限制对代码区的读取,防止恶意代码植入。

##三、解读保护
概述
解读保护,是指对嵌入式系统中的程序代码进行加密处理,使得攻击者难以理解程序逻辑,从而提高系统的安全性。

实现方式
(1)代码加密:通过对程序代码进行加密,使得攻击者无法直接读取和修改代码。

(2)代码混淆:通过变换程序结构、插入无关代码等手段,降低代码的可读性。

应用场景
(1)保护知识产权:防止核心算法和关键技术被窃取。

(2)防止逆向工程:提高攻击者破解系统的难度。

##四、案例实现:LED灯亮灭控制案例
展示如何在嵌入式系统中实现读保护,并通过按键中断来解锁读保护,以LED灯的亮灭作为直观的现象展示。

软件实现:

1. LED控制

void LED1_Toggle(uint8_t state) {
    if (state) {
        GPIO_SetBits(LED1_GPIO_PORT, LED1_PIN); // 点亮LED1
    } else {
        GPIO_ResetBits(LED1_GPIO_PORT, LED1_PIN); // 熄灭LED1
    }
}

2. 读保护函数

void LED1_Toggle(uint8_t state) {
    if (state) {
        GPIO_SetBits(LED1_GPIO_PORT, LED1_PIN); // 点亮LED1
    } else {
        GPIO_ResetBits(LED1_GPIO_PORT, LED1_PIN); // 熄灭LED1
    }
}

3.解锁读保护

void FLASH_UnlockReadProtection(void) {
    FLASH_Unlock();
    FLASH_Status status;

    // 解锁选项字节
    FLASH_OB_Unlock();

    // 清除读保护
    FLASH_OB_RDPConfig(OB_RDP_Level_0);

    // 启动选项字节编程
    status = FLASH_OB_Launch();
    if (status == FLASH_COMPLETE) {
        // 选项字节编程成功
    }

    // 锁定选项字节
    FLASH_OB_Lock();
    FLASH_Lock();
	
    // 读保护解锁,灭LED1
    LED1_Toggle(0);

}

###4. main函数

int main(void) {
    // 配置系统时钟
    SystemInit();

    // 配置RCC
    RCC_Configuration();

    // 配置GPIO
    GPIO_Configuration();

    // 配置外部中断
    EXTI_Configuration();

    // 启用读保护并点亮LED1
    EnableReadOutProtection();

    // 其他初始化代码...

    while (1) {
        // 主循环
    }
}

##五、总结
作为一名嵌入式新入职的工程师,了解和掌握读保护与解读保护机制至关重要。在实际工作中,要根据项目需求和安全性要求,合理运用这些保护措施,确保嵌入式系统的稳定性和安全性。随着技术的发展,保护机制也在不断更新和升级,我们需要不断学习,紧跟行业发展趋势。

最后,希望大家在嵌入式领域取得更好的成绩,为我国嵌入式技术的发展贡献力量。

本文仅代表个人观点,如有不足之处,敬请指正。谢谢!

标签:LED1,入职,void,FLASH,嵌入式,保护,GPIO
From: https://blog.csdn.net/m0_62129284/article/details/140460914

相关文章

  • 嵌入式C语言指针面试题大全(持续更新)
    什么是指针?指针在C语言中的作用是什么?在C语言中,指针是一种变量类型,它存储的是其他变量或数据结构的内存地址,而不是实际的数据值。指针允许程序员直接操作和管理内存,这是C语言的一个重要特性,也是它能够高效地处理资源和进行底层编程的原因之一。指针在C语言中有多种作用,包括......
  • 《痞子衡嵌入式半月刊》 第 104 期
    痞子衡嵌入式半月刊:第104期这里分享嵌入式领域有用有趣的项目/工具以及一些热点新闻,农历年分二十四节气,希望在每个交节之日准时发布一期。本期刊是开源项目(GitHub:JayHeng/pzh-mcu-bi-weekly),欢迎提交issue,投稿或推荐你知道的嵌入式那些事儿。上期回顾:《痞子衡嵌入式半月......
  • 【嵌入式DIY实例-ESP8266篇】-LCD ST7789显示DS1307 RTC时间数据
    LCDST7789显示DS1307RTC时间数据文章目录LCDST7789显示DS1307RTC时间数据1、硬件准备与接线2、代码实现本文将介绍如何使用ESP8266NodeMCU板和DS1307RTC集成电路构建简单的实时时钟和日历(RTCC),其中时间和日期打印在ST7789TFT显示模块上。S......
  • 【嵌入式DIY实例-ESP8266篇】-LCD1602显示DS1621传感器数据
    LCD1602显示DS1621传感器数据文章目录LCD1602显示DS1621传感器数据1、DS1621介绍2、硬件准备与接线3、代码实现在本文中,介绍如何将ESP8266NodeMCU板(ESP-12E)与DS1621数字温度传感器连接,其中温度值(摄氏度和华氏度)打印在1602LCD屏幕上。本项目......
  • 【嵌入式DIY实例-ESP8266篇】-LCD ST7735显示BME280传感器数据
    LCDST7735显示BME280传感器数据文章目录LCDST7735显示BME280传感器数据1、硬件准备与接线2、代码实现本文中将介绍如何使用ESP8266NodeMCU板(ESP12-E模块)和BME280气压、温度和湿度传感器构建气象站。NodeMCU微控制器(ESP8266EX)从BME280传感......
  • C++嵌入式压缩库bundle基础操作:内存压缩与zip文件操作
    bundle是一个轻量级的C++压缩库,集成在一对简洁的文件中(bundle.h和bundle.cpp),支持内存数据的压缩与解压缩,以及zip格式文件的操作,方便嵌入到C++程序中执行压缩、解压缩操作。本文将详细介绍如何使用bundle库进行高效的数据压缩处理。简介bundle库支持多种压缩算法,使用std::string......
  • 嵌入式经典面试题30道
    1.*a和&a有什么区别&a:其含义就是“变量a的地址”。*a:用在不同的地方,含义也不一样。在声明语句中,*a只说明a是一个指针变量,如int*a;        在其他语句中,*a前面没有操作数且a是一个指针时,*a代表指针a指向的地址内存放的数据,如b=*a;*a前面有操作数且a是一个普通变量......
  • 智慧水利解决方案:从理论到实践的全面跨越,展示其在水资源管理、水灾害预警、水生态保护
    目录一、引言:智慧水利的时代背景与意义二、智慧水利的理论框架与技术体系1、理论框架2、技术体系三、智慧水利在水资源管理中的应用1、水资源优化配置2、水量水质协同管理四、智慧水利在水灾害预警中的应用1、洪水预警与应急响应2、干旱监测与评估五、智慧水利在水......
  • 嵌入式C++、Qt/QML和MQTT:智能工厂设备监控系统的全流程介绍(附代码示例)
    1.项目概述本项目旨在开发一套先进的智能工厂设备监控系统,集成嵌入式技术、工业通信协议和人机界面等多项技术,实现对工厂设备的全方位实时监控、高精度数据采集和智能化分析。该系统将显著提升工厂设备的运行效率,大幅降低维护成本,并为管理层决策提供可靠的数据支持。主要功......
  • 常见的保护器件包括TVS管、自恢复保险丝、气体放电管和压敏电阻,使用这些器件时应该如
    在电子电路设计中,保护电路元件的选择和使用至关重要。无论是避免电源过压、静电放电(ESD)还是浪涌,保护器件都能有效保护电路,延长产品的使用寿命。本文将详细介绍几种常见的保护器件:TVS管、自恢复保险丝、气体放电管和压敏电阻,包括它们的工作原理、选择参数以及常用型号推荐。......