自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 AI技术创业有哪些机会?

人工智能(AI)技术作为当今科技创新的前沿领域,为创业者提供了广阔的机会和挑战。随着AI技术的快速发展和应用领域的不断拓展,未来AI技术方面会有哪些创业机会呢?

2024-04-05 17:30:17 221 1

原创 Linux驱动----设备文件自动生成

自动创建设备节点:利用udev(mdev)来实现设备文件的自动创建

2023-01-02 14:04:41 264

原创 进程间通信(IPC)

进程间通信指的是系统中两个进程之间的通信,不同的进程都在各自的地址空间中、相互独立、隔离,所以它们是处在于不同的地址空间中,因此相互通信比较难, Linux内核提供了多种进程间通信的机制。......

2022-08-06 23:35:20 533

原创 Linux页错误异常处理

本文总结了Linux内存处理页错误中断一些概念和过程

2022-08-06 17:58:27 343

原创 EAS(能量感知调度)绿色节能调度器

当调度程序决定当前任务应该在哪里运行时(在唤醒期间),EM用来打破了几个好的CPU候选者之间的平等关系,选择一个最佳的候选CPU运行当前任务会产生最少的电量消耗而不牺牲系统的吞吐量的目标。增加了描述能效模型的数据结构structsched_group_energy,MC等级的调度组描述单个CPU的能效模型,DIE等级的调度组描述的cluster的能效模型。2).判断当前的CPU的计算负载是否超过了该CPU最高计算能力的80%,如果是,说明触发overutilized条件了。...

2022-07-16 23:32:40 1729

原创 Linux内核源码 ---- el2_setup源码解析

kernel版本:5.10.129进入内核的时候,arm64处理器的异常级别可能是1或者2,函数el2_setup的主要工作如下:1、如果异常级别是1,那么在异常级别1执行内核2、如果异常级别是2, 那么根据处理器是否支持虚拟化宿主扩展(Virtuallization Host Extensions,VHE),决定是否需要降级到异常级别1.具体实现代码如下:该汇编函数,用w0寄存器保存返回值,返回值有两种:BOOT_CPU_MODE_EL1:表示当前CPU跳入内核时处于权限级EL1BOOT_CPU_

2022-07-10 15:29:44 1010

原创 Linux源码解析

参考代码:Linux 5.10.129内核初始化分为汇编语言部分和C语言部分(1)汇编语言部分arm64架构的内核的入口标号是_head,直接跳转到标号primary_entry。配置宏 CONFIG_EFI 表示提供UEFI运行时支持,UEFI(Unified Extensible Firmware Interface)是统一的可扩展固件接口,用于取代BIOS。1、调用函数 preserve_boot_args,把引导程序传递的4个参数保存在全局数组boot_args中。2、调用函数 el2_set

2022-07-10 11:32:48 653

原创 调度器的配置参数

调度器的配置参数/proc/sys/kernel/sched_min_granularity_ns(4000000ns): sysctl_sched_min_granularity,表示进程最少运行时间,防止频繁的切换,对于交互系统(如桌面),该值可以设置得较小,这样可以保证交互得到更快的响应(见周期调度器的check_preempt_tick过程)/proc/sys/kernel/ sched_latency_ns(20000000ns):sysctl_sched_latency,表示一个运行队列所有进程

2022-07-06 09:30:23 580

原创 ARMv8 - 高速缓存(cache)

一个经典的arm64体系结构处理器系统包含了多级的高速缓存。如上图每个CPU内核都有自己的L1高速缓存。L1高速缓存采用分离的两部分高速缓存。d-cache表示L1数据高速缓存, i-cache表示指令高速缓存。每个CPU内核共享一个L2 高速缓存,L2高速缓存采用混合的方式,不再区分指令和数据cache,此时还外接了一个扩展的L3高速缓存。cache工作方式处理器在访问存储器时,会把地址同时传递给TLB(Translation Lookaside Buffer)和cache。TLB是一个用于存储虚拟地

2022-07-05 23:00:25 1493 1

原创 lvgl8.2-canvas -Transparent Canvas with chroma keying

创建带色度键控的透明画布效果图

2022-06-30 00:04:40 352

原创 lvgl8.2-canvas

lv_canvas是一个画布控件,可以在它上面绘制任意图形,以及进行旋转操作,但是必须依赖一个buffer缓冲区,缓冲区可以是全局的或者静态的。在画布上绘制矩形• lv_canvas_draw_rect(canvas, x, y, width, heigth, &draw_dsc)在画布上绘制文本内容• lv_canvas_draw_text(canvas, x, y, max_width, &draw_dsc, txt)在画布上绘制图片• lv_canvas_draw_img(canvas, x

2022-06-28 23:50:02 1193

原创 无重复字符的最长子串之C语言实现

示例 1:输入: s = “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: s = “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: s = “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。请注意,你的答案必须是 子串 的长度,“pwke” 是一个子序列,不是子串。提示:0 ...

2022-06-26 22:07:54 1005 1

原创 算法学习与理解

算法 (Algorithm) 是为了解决某类问题而规定的一个有限长的操作序列。一个算法必须满足以下五个重要特性。(1)有穷性。一个算法必须总是在执行有穷步后结束,且每一步都必须在有穷时间内完成。(2) 确定性。对千每种情况下所应执行的操作,在算法中都有确切的规定,不会产生二义性,使算法的执行者或阅读者都能明确其含义及如何执行。(3) 可行性。算法中的所有操作都可以通过已经实现的基本操作运算执行有限次来实现。(4) 输入。一个算法有零个或多个输入。当用函数描述算法时,输入往往是通过形参表示的,在它们

2022-06-26 18:27:19 272

原创 CFS调度算法的思想与实现

CFS(Complete Fair Schedule)调度算法的思想是为每一个task维护一个虚拟的运行时间vruntime调度程序优先选择vruntime值最小的任务执行,之所以引入vruntime的概念,是为了支持优先级调度。vruntime其实是基于task的实际运行时间及优先级权重计算出来的值,其计算公式如下:vruntime += delta_exec * NICE_0_LOAD / weightvruntime:虚拟运行时间delta_exec: 实际的执行时间NICE_0_LOAD:进程

2022-06-26 18:03:41 953

原创 Linux内核进程与调度实现

进程管理和调度

2022-06-25 21:35:20 610

原创 Linux内存管理架构

当vm_area_struct结构的数目较少的时候,所有结构以单链表的形式组织在一起,并且所有vm_area_struct结构按照虚拟地址大小升序排序。目前的Linux系统中经常使用的是Slub分配器,它是Slab分配器的优化版本和Slab分配器相比在复杂性和管理数据造成的内存开销上有很大的优化,对内存对象的管理更为直接。另外,进程堆栈占用的空间也是必备的,也是在建立进程时就预先分配的,并且堆栈空间可以动态扩展。...

2021-11-07 21:08:46 246

arm32+汇编实例练习

ARM32 汇编入门和提升实例学习不可多得的材料

2024-04-09

嵌入式物联网 + 无线传感控制网络

这是一个嵌入式物联网开源项目。以一个无线传感控制网络项目为实际案例,开源了一些无线控制模块和传感器模块。目前无线模块主要使用2.4GHz和433MHz通信,涉及单片机硬件原理设计,PCB-Layout,单片机软件开发,嵌入式Linux Qt应用程序开发,等等。

2024-04-09

毕业设计+学生成绩管理系统/学生信息管理系统

Java毕业设计+学生成绩管理系统/学生信息管理系统

2024-04-08

STM32F103C8T6最小系统原理图和PCB

STM32F103C8T6最小系统原理图和PCB

2024-04-07

树莓派4B开发板原理图 + 开发板机械图 + 处理器Soc开发手册

上传的资料包括树莓派4B开发板的原理图、机械图和处理器SoC开发手册。原理图展示了开发板各个电路模块的连接关系,包括处理器、存储器、接口、传感器等。机械图则展示了开发板的物理结构和外部接口,方便用户进行外壳设计和外部连接。处理器SoC开发手册提供了对树莓派4B使用的处理器芯片的详细介绍,包括硬件特性、寄存器配置、引脚定义等。适合学生、教育机构、嵌入式系统开发者、物联网项目工程师以及个人DIY爱好者借鉴使用。

2024-04-05

python + 资源大全

详细介绍了Python 资源列表,内容包括:Web 框架、网络爬虫、网络内容提取、模板引擎、数据库、数据可视化、图片处理、文本处理、自然语言处理、机器学习、日志、代码分析等

2024-04-05

嵌入式驱动开发 + 设备树详细讲解

以树莓派4B的 设备树为例子,详细透彻的讲解了设备树的语法规则和使用方法

2024-04-05

空空如也

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

TA关注的人

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