刷新
《痞子衡嵌入式半月刊》 第 110 期

博主头像 痞子衡嵌入式半月刊: 第 110 期 这里分享嵌入式领域有用有趣的项目/工具以及一些热点新闻,农历年分二十四节气,希望在每个交节之日准时发布一期。 本期刊是开源项目(GitHub: JayHeng/pzh-mcu-bi-weekly),欢迎提交 issue,投稿或推荐你知道的嵌入式那些事儿。 上期回 ...

[rCore学习笔记 031] SV39多级页表的硬件机制

博主头像 看到这个题目就知道上一节提到的RISC-V手册的10.6节又有用武之地了. 这里只需注意,RV32 的分页方案Sv32支持4GiB的虚址空间,RV64 支持多种分页方案,但我们只介绍最受欢迎的一种,Sv39。: RISC-V 的分页方案以SvX的模式命名,其中X是以位为单位的虚拟地址的长度。 虚拟地 ...

[rCore学习笔记 030] 虚拟地址与地址空间

博主头像 时隔很久,终于忙里偷闲可以搞一搞rCore,上帝啊,保佑我日更吧,我真的很想学会. 导读部分 首先还是要看官方文档. 我决定看一遍然后自己表述一遍(智将). 这里反复提到MMU,就是因为之前学MCU的时候有一个疑问,就是为什么MCU上不选择跑一个Linux,当时找到的答案是因为没有MMU. MMU的 ...

痞子衡嵌入式:瑞萨RA系列FSP固件库分析之外设驱动

博主头像 大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是瑞萨RA系列FSP固件库里的外设驱动。 上一篇文章 《瑞萨RA8系列高性能MCU开发初体验》,痞子衡带大家快速体验了一下瑞萨 MCU 开发三大件(开发环境e² studio、软件包FSP、评估板EK),其中软件包 FSP 为何不叫更通用 ...

定时中断基本结构

博主头像 打开时钟-->配置 时钟源-->配置 时基单元-->配置 中断输出-->配置 NVIC-->启动 定时器 程序 void Timer_Init(void) { RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE); /*配置时钟*/ TIM_Inter ...

《痞子衡嵌入式半月刊》 第 109 期

博主头像 痞子衡嵌入式半月刊: 第 109 期 这里分享嵌入式领域有用有趣的项目/工具以及一些热点新闻,农历年分二十四节气,希望在每个交节之日准时发布一期。 本期刊是开源项目(GitHub: JayHeng/pzh-mcu-bi-weekly),欢迎提交 issue,投稿或推荐你知道的嵌入式那些事儿。 上期回 ...

定时器与数码管之数码管

博主头像 数码管的基本介绍 数码管共有 a、b、c、d、e、f、g、dp 八段,每一段都是一个LED灯,所以一个数码管是由8个LED灯组成的 数码管分为共阳极和共阴极两种。 共阴极就是8个LED灯的阴极连接在一起,阴极是公共端,由阳极来控制单个小灯的亮灭 共阳极就是8个LED灯的阳极连接在一起,阳极是公共端, ...

定时器与数码管之定时器

博主头像 时钟周期(T):是时序最小的时间单位,具体的计算方法是 1/时钟源频率 例如:我们单片机开发板上的晶振是11.0592M,那么对于我们这个单片机系统来说,时钟周期=1/11059200秒 机器周期:我们单片机完成一个操作的最短时间 机器周期主要是针对汇编语言而言,在汇编语言下程序的每一条语句执行所使 ...

ESP-IDF 学习 2 IO & interrupt 的使用

博主头像 API of IO 使用 ESP-IDF 的时候,不似STC单片机那样,它帮助我们集成了 FreeRTOS,很少会直接访问寄存器,访问 IO 亦如此,所以我们调用它提供给我们的 API 就可以访问 IO 当前的 level 。 相应的,我们对 IO 初始化的时候也不是访问 IO 配置寄存器 来初始化 ...

定时器与数码管基础之逻辑电路与逻辑运算

博主头像 在数字电路或C语言中,非零为真,即逻辑上的“假”就是数字电路或C语言中的“0”这个值,而逻辑“真”就是其他一切“非0值” 以下逻辑运算符都是按照变量整体值进行运算的,通常叫做逻辑运算符: &&逻辑与:F = A && B,当 A、B 的值都为真(非0)时,F 的值为真(1),否则 F 为假(0) | ...

freeRTOS源码解析4--tasks.c 7

4.2.20 空闲任务调用1--prvCheckTasksWaitingTermination 删除所有终止的任务, 释放资源。简单描述就是清空xTasksWaitingTermination列表,释放资源,递减uxCurrentNumberOfTasks和uxDeletedTasksWaiting ...

[rCore学习笔记 029] 动态内存分配器实现-以buddy_system_allocator源码为例

博主头像 在上一部分,我们讲了动态内存分配器的原理是维护一个堆,而且是实现各种连续内存分配方法. 但是上一部分是直接通过引用了buddy_system_allocator来解决的问题. 那么对于内存分配算法有兴趣的我,还是决定看一下源码,总之人是咸鱼但是还是需要有梦想. 人生这么不顺,若是连梦想都没有了,可能 ...

流水灯代码实现

博主头像 //流水灯左移 //其中调用math.h文件中的pow函数 #include <reg52.h> #include <math.h> sbit ADDR0 = P1 ^ 0; sbit ADDR1 = P1 ^ 1; sbit ADDR2 = P1 ^ 2; sbit ADDR3 = P1 ^ 3; ...

LED小灯闪烁程序

博主头像 //LED闪烁程序 #include<reg52.h> sbit LED = P0^ 0; sbit ADDR0 = P1 ^ 0; sbit ADDR1 = P1 ^ 1; sbit ADDR2 = P1 ^ 2; sbit ADDR3 = P1 ^ 3; sbit ENLED = P1 ^ 4; ...

《痞子衡嵌入式半月刊》 第 108 期

博主头像 痞子衡嵌入式半月刊: 第 108 期 这里分享嵌入式领域有用有趣的项目/工具以及一些热点新闻,农历年分二十四节气,希望在每个交节之日准时发布一期。 本期刊是开源项目(GitHub: JayHeng/pzh-mcu-bi-weekly),欢迎提交 issue,投稿或推荐你知道的嵌入式那些事儿。 上期回 ...

[rCore学习笔记 028] Rust 中的动态内存分配

博主头像 引言 想起我们之前在学习C的时候,总是提到malloc,总是提起,使用malloc现场申请的内存是属于堆,而直接定义的变量内存属于栈. 还记得当初学习STM32的时候CubeIDE要设置stack 和heap的大小. 但是我们要记得,这么好用的功能,实际上是操作系统在负重前行. 那么为了实现动态内存 ...

点亮小灯之代码

博主头像 点此查看电路分析 //点亮单个小灯 #include <reg52.h> sbit P0_0 = P0 ^ 0; sbit P1_0 = P1 ^ 0; sbit P1_1 = P1 ^ 1; sbit P1_2 = P1 ^ 2; sbit P1_3 = P1 ^ 3; sbit P1_4 = P ...

<123···20>