- 目录 1、启动文件 2、系统初始化过程 3、全局变量的初始化 从事嵌入式开发的伙伴可能会思考过一个问题,我们一般都是使用芯片厂商提供的驱动库和初始化文件,直接从main函数开始写程序,那么系统上电之后,程序怎么引导进main函数执行的呢?还有,系统上电之后RAM的数据是随机的,那么定义的全局变量的初始值又是怎么实现的呢? 下面我将带着这两个问题,以Cortex-M... 目录 1、启动文件 2、系统初始化过程 3、全局变量的初始化 从事嵌入式开发的伙伴可能会思考过一个问题,我们一般都是使用芯片厂商提供的驱动库和初始化文件,直接从main函数开始写程序,那么系统上电之后,程序怎么引导进main函数执行的呢?还有,系统上电之后RAM的数据是随机的,那么定义的全局变量的初始值又是怎么实现的呢? 下面我将带着这两个问题,以Cortex-M...
- 压缩微指令长度1. 改直接表示为编码表示(压缩互斥性微指令)2. 去掉下址字段,采用 μPC = μPC + 1 的方式生成微指令地址3. 改水平型微指令为垂直型微指令(牺牲并行性) 压缩微指令长度 1. 改直接表示为编码表示(压缩互斥性微指令) 互斥性微命令 输出信号不能同时为 1 XXX(out)运算器的 +1, ADD, SUB 信号... 压缩微指令长度1. 改直接表示为编码表示(压缩互斥性微指令)2. 去掉下址字段,采用 μPC = μPC + 1 的方式生成微指令地址3. 改水平型微指令为垂直型微指令(牺牲并行性) 压缩微指令长度 1. 改直接表示为编码表示(压缩互斥性微指令) 互斥性微命令 输出信号不能同时为 1 XXX(out)运算器的 +1, ADD, SUB 信号...
- 数据校验的基本原理<1> 数据校验的必要性<2> 校验的基本原理<3> 码距的概念<4> 码距与检错或纠错能力的关系<5> 选择码距要考虑的因素 奇偶校验CRC校验及其实现海明校验 数据校验的基本原理 <1> 数据校验的必要性 受元器件的质量、电路故障或噪音干扰等因素的影响... 数据校验的基本原理<1> 数据校验的必要性<2> 校验的基本原理<3> 码距的概念<4> 码距与检错或纠错能力的关系<5> 选择码距要考虑的因素 奇偶校验CRC校验及其实现海明校验 数据校验的基本原理 <1> 数据校验的必要性 受元器件的质量、电路故障或噪音干扰等因素的影响...
- 今天是个好日子,困扰一周的bug终于解决了,迫不及待将这个奇葩问题分享给各位朋友~ 硬件环境: 国产MCU:华大HC32L130 问题描述: 最近做一款基于Modbus协议的三通道温度采集模块,程序设计是移植之前验证过的两通道温度、压力采集模块的程序,完成后,三通道温度采集程序可正常运行。 最后需要对三通道温度采集模块添加二次校准算法功能,新功能写好后,也可正常采集... 今天是个好日子,困扰一周的bug终于解决了,迫不及待将这个奇葩问题分享给各位朋友~ 硬件环境: 国产MCU:华大HC32L130 问题描述: 最近做一款基于Modbus协议的三通道温度采集模块,程序设计是移植之前验证过的两通道温度、压力采集模块的程序,完成后,三通道温度采集程序可正常运行。 最后需要对三通道温度采集模块添加二次校准算法功能,新功能写好后,也可正常采集...
- 计算机系统性能评价<1> 非时间指标1)机器字长:指机器一次能处理的二进制位数2)总线宽度:数据总线一次能并行传送的最大信息位数3)主存容量与存储带宽 <2> 时间指标1)主频f/时钟周期T,外频、倍频2)CPI(Clock cycles Per Instruction)3)MIPS (Million Instructions Per Second)4)CP... 计算机系统性能评价<1> 非时间指标1)机器字长:指机器一次能处理的二进制位数2)总线宽度:数据总线一次能并行传送的最大信息位数3)主存容量与存储带宽 <2> 时间指标1)主频f/时钟周期T,外频、倍频2)CPI(Clock cycles Per Instruction)3)MIPS (Million Instructions Per Second)4)CP...
- 编写一个程序,求 100~999 之间的所有水仙花数 如果一个3位数等于其个位数字的立方和,则称这个数为水仙花数。例如:153 = 1^3 + 5^3 + 3^3,因此153就是一个水仙花数 for i in range(100,1000): temp = list(str(i)) a = temp[0] b = temp[1] c = temp[2] if a *... 编写一个程序,求 100~999 之间的所有水仙花数 如果一个3位数等于其个位数字的立方和,则称这个数为水仙花数。例如:153 = 1^3 + 5^3 + 3^3,因此153就是一个水仙花数 for i in range(100,1000): temp = list(str(i)) a = temp[0] b = temp[1] c = temp[2] if a *...
- 今天是个好日子,困扰一周的bug终于解决了,迫不及待将这个奇葩问题分享给各位朋友~ 硬件环境: 国产MCU:华大HC32L130 问题描述: 最近做一款基于Modbus协议的三通道温度采集模块,程序设计是移植之前验证过的两通道温度、压力采集模块的程序,完成后,三通道温度采集程序可正常运行。 最后需要对三通道温度采集模块添加二次校准算法功能,新功能写好后,也可正常采集... 今天是个好日子,困扰一周的bug终于解决了,迫不及待将这个奇葩问题分享给各位朋友~ 硬件环境: 国产MCU:华大HC32L130 问题描述: 最近做一款基于Modbus协议的三通道温度采集模块,程序设计是移植之前验证过的两通道温度、压力采集模块的程序,完成后,三通道温度采集程序可正常运行。 最后需要对三通道温度采集模块添加二次校准算法功能,新功能写好后,也可正常采集...
- 目录 1、硬件设计 2、软件设计 WiFi物联网智能插座的电耗采集依托于合力为的HLW8110计量芯片实现,选取它的主要原因是精度不错,价格美丽,并且可以通过串口驱动,使用便捷。 1、硬件设计 HLW8110是一款高精度的电能计量 IC,它采用 CMOS 制造工艺,主要用于单相计量应用。它能够测量线电压和电流,并能计算有功功率,视在功率和功率因素。该器件内部集... 目录 1、硬件设计 2、软件设计 WiFi物联网智能插座的电耗采集依托于合力为的HLW8110计量芯片实现,选取它的主要原因是精度不错,价格美丽,并且可以通过串口驱动,使用便捷。 1、硬件设计 HLW8110是一款高精度的电能计量 IC,它采用 CMOS 制造工艺,主要用于单相计量应用。它能够测量线电压和电流,并能计算有功功率,视在功率和功率因素。该器件内部集...
- C++宏定义学过C语言的读者,对宏定义应该不陌生,同样在C++中,也可以用宏定义命令将一个指定的标识符来代表一个字符串,宏定义的作用一般是用一个短的名字代表一个长的字符串。一般形式为:#define 标识符 字符串 定义PI的符号常量:#define PI 3.14 在C++中还可以用#define命令定义带参数的宏定义,一般形式为:#define 宏名(参数表) 字符串 比如... C++宏定义学过C语言的读者,对宏定义应该不陌生,同样在C++中,也可以用宏定义命令将一个指定的标识符来代表一个字符串,宏定义的作用一般是用一个短的名字代表一个长的字符串。一般形式为:#define 标识符 字符串 定义PI的符号常量:#define PI 3.14 在C++中还可以用#define命令定义带参数的宏定义,一般形式为:#define 宏名(参数表) 字符串 比如...
- C++register寄存器变量一般情况下,C++中的变量的值是存放在内存中的。当程序中用到哪一个变量的值时,由控制器发出指令将内存中该变量的值送到CPU中的运算器。经过运算器运算,如果需要存数,再从运算器将数据送到内存存放。为提高执行效率,C++允许将局部变量的值放在CPU中的寄存器中,需要用时直接从寄存器取出参加运算,不必再到内存中去存取。这种变量叫做寄存器变量,用关键字r... C++register寄存器变量一般情况下,C++中的变量的值是存放在内存中的。当程序中用到哪一个变量的值时,由控制器发出指令将内存中该变量的值送到CPU中的运算器。经过运算器运算,如果需要存数,再从运算器将数据送到内存存放。为提高执行效率,C++允许将局部变量的值放在CPU中的寄存器中,需要用时直接从寄存器取出参加运算,不必再到内存中去存取。这种变量叫做寄存器变量,用关键字r...
- 目录 1、将未使用的GPIO 配置为模拟输入模式 2、调节GPIO 速度 3、GPIO不使用时禁用寄存器时钟 4、避免悬空未使用的引脚 STM32低功耗模式下GPIO如何配置最节能,这里总结了一下四点,亲测有效(基于STM32L011芯片 LL库),可降低几百微安。 1、将未使用的GPIO 配置为模拟输入模式 GPIO始终有一个输入通道,可以是数字或模拟通道,... 目录 1、将未使用的GPIO 配置为模拟输入模式 2、调节GPIO 速度 3、GPIO不使用时禁用寄存器时钟 4、避免悬空未使用的引脚 STM32低功耗模式下GPIO如何配置最节能,这里总结了一下四点,亲测有效(基于STM32L011芯片 LL库),可降低几百微安。 1、将未使用的GPIO 配置为模拟输入模式 GPIO始终有一个输入通道,可以是数字或模拟通道,...
- 实时时钟 (RTC) 是一个独立的 BCD 定时器/计数器,提供具有可编程闹钟中断功能的日历时钟/日历,可用于管理所有低功耗模式的自动唤醒单元。在配置RTC时钟时预分频器是关键指标,通过配置预分频器可以自定义计数周期。 以STM32L0系列MCU为例,介绍RTC时钟的异步预分频和同步预分频配置方法。 RTC 时钟源 (RTCCLK) 通过时钟控制器从 LSE 时钟、LSI... 实时时钟 (RTC) 是一个独立的 BCD 定时器/计数器,提供具有可编程闹钟中断功能的日历时钟/日历,可用于管理所有低功耗模式的自动唤醒单元。在配置RTC时钟时预分频器是关键指标,通过配置预分频器可以自定义计数周期。 以STM32L0系列MCU为例,介绍RTC时钟的异步预分频和同步预分频配置方法。 RTC 时钟源 (RTCCLK) 通过时钟控制器从 LSE 时钟、LSI...
- 目录 1、实验目的 2、实验设计 3、实验步骤 3.1、使用 STM32CubeMX 新建项目工程 3.2、编写ADC代码 3.3、配置烧写参数 3.4、烧录程序 1、实验目的 了解STM32L432KC ADC的原理及特性;学习STM32CubeMX新建ADC工程的方法;掌握STM32编程实现光敏电阻传感器模数转换的编程技巧。 2、实验设计 分析ST... 目录 1、实验目的 2、实验设计 3、实验步骤 3.1、使用 STM32CubeMX 新建项目工程 3.2、编写ADC代码 3.3、配置烧写参数 3.4、烧录程序 1、实验目的 了解STM32L432KC ADC的原理及特性;学习STM32CubeMX新建ADC工程的方法;掌握STM32编程实现光敏电阻传感器模数转换的编程技巧。 2、实验设计 分析ST...
- 目录 1、理论 2、实践 1、理论 众所周知,单片机复位后变量数值会自动初始化,以华大半导体HC32L136为例,具有 7 个复位信号来源,每个复位信号都可以让 CPU 重新运行,绝大多数寄存器会被复位到复位值,程序会从复位向量处开始执行。 数字区域上电掉电复位 POR 外部 Reset PAD,低电平为复位信号 WDT 复位 PCA 复位 LVD 低电压复位 C... 目录 1、理论 2、实践 1、理论 众所周知,单片机复位后变量数值会自动初始化,以华大半导体HC32L136为例,具有 7 个复位信号来源,每个复位信号都可以让 CPU 重新运行,绝大多数寄存器会被复位到复位值,程序会从复位向量处开始执行。 数字区域上电掉电复位 POR 外部 Reset PAD,低电平为复位信号 WDT 复位 PCA 复位 LVD 低电压复位 C...
- 拓展: 嵌入式工程师题库(适用于各大名厂笔试、软考、计算机等级考试) 第1题:下面代码片段中有哪些隐患或者错误? 回答: 1、调用get2(m)函数的时候,没有return,也不是全局变量,无法将new申请的内存地址传出,无法修改m的实际值; 2、调用m=get1()函数的时候,函数内定义的数组是局部变量,对应的内存在这个函数结束的时候就会被释放,因此re... 拓展: 嵌入式工程师题库(适用于各大名厂笔试、软考、计算机等级考试) 第1题:下面代码片段中有哪些隐患或者错误? 回答: 1、调用get2(m)函数的时候,没有return,也不是全局变量,无法将new申请的内存地址传出,无法修改m的实际值; 2、调用m=get1()函数的时候,函数内定义的数组是局部变量,对应的内存在这个函数结束的时候就会被释放,因此re...
上滑加载中
推荐直播
-
崇本英才·智汇吴江·无人车挑战赛赛前培训
2022/08/12 周五 19:00-21:00
无人车领域大咖
本次直播主要介绍初赛总结&开发者认证宣讲、决赛赛题介绍&决赛赛前备赛培训、往届优胜队伍经验分享。
回顾中 -
华为云杯“少年开发者”空中课堂 —— 体验人工智能
2022/08/13 周六 14:00-15:00
刘烨 上海市高中通用技术学科中心组成员/复旦大学附属中学通用技术教师
华为云杯“少年开发者”空中课堂,特邀复旦附中讲师,助力初中阶段参赛选手在本次大赛中取得优异成绩!
回顾中 -
如何基于华为云开天aPaaS实现积木式应用创新
2022/08/15 周一 19:00-21:00
包老师/梁老师
华为云开天aPaaS提供面向行业开发和使用的业务能力积木组装平台,简单几步实现应用创新,本次直播将解读aPaaS赛题,演示API->连接器->自动化流的过程和两个工业应用间的数据集成操作。
即将直播
热门标签