自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 Linux的启动流程与级别,以ARM-RK3566开发板系统为例

当一台Linux电脑启动后,处理器会先在系统存储中查找BIOS,之后BIOS会检测系统资源然后找到第一个引导设备,通常为硬盘,然后会查找硬盘的主引导记录(MBR),然后加载到内存中并把控制权交给它,以后的启动过程就由MBR控制。主引导记录会初始化引导程序(Linux上有两个著名的引导程序,GRUB和LILO,80%的Linux系统在用GRUB引导程序),这个时候GRUB或LILO会加载内核模块。字段:与本服务有冲突的模块,如果列出的模块中有已经在运行的,本服务就不能启动,反之亦然。

2024-04-13 22:10:26 1041

原创 简单学习速记-STM32串口接收使用DMA+空闲中断

这是一篇简单的学习笔记,记录使用STM32串口接收不定长数据,之前都是使用接收中断+缓冲区的方式,这篇笔记使用DMA+空闲中断的方式。清除idle标志位,停止DMA传输。DMA当前帧实际接收的数据长度。DMA当前帧实际接收的数据长度。使用串口空闲中断的基本思路是。设置串口接收完成标志。使能串口和DMA中断。

2024-03-19 21:04:27 958 1

原创 立创泰山派tspi-rk3566修改编译设备树,即编译内核(使用WSL、docker)

本文主要讲解使用WSL2与Docker修改设备树文件,编译内核并下载到立创泰山派rk3566开发板上。

2024-03-10 12:48:37 1658 3

原创 立创泰山派tspi-训练营笔记-WSL2使用Docker编译泰山派tspi的SDK(Win11)

本文是在使用WSL2编译立创泰山派SDK时的一些笔记,也整合了网上很多大佬解决WSL2安装Docker,以及repo等方法。本文的系统为专业版编译流程参考泰山派官方文档:https://lceda001.feishu.cn/wiki/Da5owUV4dipiqUkZycbcxckinvc。

2024-02-06 12:24:33 1271 2

原创 立创泰山派tspi-训练营笔记-WSL2安装使用Docker(Win11)

本文是在使用WSL2编译立创泰山派SDK时的一些笔记,也整合了网上很多大佬解决WSL2安装Docker,以及repo等方法。本文的系统为专业版

2024-02-06 12:21:10 1073 2

原创 立创泰山派tspi-Windows11安装与配置WSL2用于Linux开发

Windows 的 Windows Subsystem for Linux (WSL)AI解释:WSL 2允许用户在 Windows 系统上运行一个完整的 Linux 内核。与 WSL 1 相比,WSL 2 使用了更高度虚拟化的架构。WSL 1 主要是通过为 Windows 提供一个兼容层来运行 Linux 二进制文件,而 WSL 2 则是在 Windows 中运行一个真正的 Linux 内核,这也使得 WSL 2 具备更好的性能和更好的兼容性。

2024-02-02 15:05:21 1242 2

原创 泰山派tspi-设备树编译方法以及解决串口终端一直打印网口错误信息

参考在RK的SDK中设备树是和内核一起编译打包成zboot.img文件的。

2023-12-12 14:46:07 416

原创 泰山派tspi-上手编译SDK连接WIFI

嘉立创-泰山派tspi-上手

2023-12-12 14:23:59 1553 7

原创 Linux驱动学习-关中断与自旋锁

自旋锁可以保证临界区不受别的CPU和本CPU内的抢占进程打扰,但是得到锁的代码路径在执行临界区的时候,还可能受到中断和底半部(BH,稍后的章节会介绍)的影响。如果在获取锁期间发生中断,中断处理程序将不会执行,因为 IRQ 被禁用,这可能会导致一些问题。这对函数会在获取锁之前保存当前 CPU 的 IRQ 状态,并在释放锁后恢复保存的 IRQ 状态。DS18B20温度传感器Linux驱动,因为设备脉冲信号时间很短,很可能错失中断,且需要关中断。这两对函数的区别在于 IRQ(中断请求)的状态的保存和恢复方式。

2023-12-03 22:04:00 112 1

原创 用筛选法求100之内的素数(个人笔记和思路)

所谓筛选法是指“Eratosthenes筛法”,采用的方法就像拿一个“筛子”不断地筛掉一组数中非素数的数,那么剩下的就都是素数了,具体做法如下:从1开始,先将1筛掉。(1是特殊的非素数,直接去掉即可,具体的素数定义可以参考维基百科)然后从2开始,2是素数,2的整数倍都不是素数,都筛去。然后3也同理,而4则是2的两倍,已经被筛去就跳过,所以下一个是5。一直到99为止。(实际上只需要筛选到为止即可,因为<=n,已经可以筛选到n项了)下面我们看代码#include<stdio

2022-03-08 15:06:09 3768

原创 学习笔记,递归函数

1.递归和非递归分别实现求第n个斐波那契数。非递归:int main(){ int i = 1; int j = 1; int n = 7; for (int k =1;k<=(n/2);k++) { i = i + j; j = i + j; } printf("第%d个斐波那契数为",n); if (n % 2 == 1) printf("%d\n", i); else printf("%d\n", j); return 0;}递归:in..

2022-02-25 13:09:12 666

原创 注意数组是不用允许拷贝,只存在传址调用。所以代码对形参数组arr的修改会作用在实参上,和使用指针是一样的

创建一个数组,实现函数init()初始化数组、实现empty()清空数组、实现reverse()函数完成数组元素的逆置。要求:自己设计函数的参数,返回值。1、初始化数组代码,初始化为0~sz-1:void init(int* pa,int sz){ int i = 0; for (i = 0; i < sz; i++) { *(pa + i) = i; }}2、清空数组代码:void empty(int* pa, int sz){ int i = 0;

2022-02-19 21:12:27 110

原创 求某一个数的二进制位中1的个数的方法(c语言)

方法1:除二取余注意:函数参数要定义为unsigned int(无符号整型),这样确保复数进来也可以被统计,如-1的补码为11111111111111111111111111111111(32个1)就可以被统计。int count_bit(unsigned int n){ int count = 0; while(n) { if (n % 2 == 1) { count++; } n /= 2; } return count;}int main(){

2022-02-17 20:43:41 528

原创 记录下,由输入缓冲区导致的问题------编写一个程序,可以一直接收键盘字符,1、如果是小写字符就输出对应的大写字符,2、如果接收的是大写字符,就输出对应的小写字符,3、如果是数字不输出。

问题如下:编写一个程序,可以一直接收键盘字符,1、如果是小写字符就输出对应的大写字符,2、如果接收的是大写字符,就输出对应的小写字符,3、如果是数字不输出。#include<stdio.h>int main(){ char a = '0'; while (1) { printf("请输入:"); a = getchar();//会有个回车键在输入缓冲区,下一次访问会直接被读取。 if ('a' <= a && a <= 'z')

2022-02-15 16:11:14 235

原创 三个C语言题目

1. 将数组A中的内容和数组B中的内容进行交换。(数组一样大)2. 计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值。3. 编写程序数一下 1到 100 的所有整数中出现多少个数字9。代码如下:1. 将数组A中的内容和数组B中的内容进行交换。(数组一样大)int main(){ int a[5] = { 1,2,3,4,5 }; int b[5] = { 5,4,3,2,1 }; int sz = sizeof(a) / sizeof(a[1

2022-02-11 16:11:42 216

空空如也

空空如也

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

TA关注的人

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