Linux 0.11 内核笔记

ST7789T3与CST816D驱动全解析,面试技巧第11篇:嵌入式面试场景问答 10 连发。 SPI模式下,SCLK、MOSI、CS、DC、RST为必需引脚;8080模式下需连接D0-D7、WR、RD等信号线。CST816D触摸芯片通常通过I2C接口通信,需连接SCL、SDA及INT(中断)引脚。确保电源引脚(VCC、GND)稳定供电,ST7789T3典型工作电压为3.3V。显示异常时检查时序参数,如SPI时钟频率(建议≤40MHz)、数据建立时间。初始化流程需发送一系列命令序列,包括设置像素格式、扫描方向、帧率控制等。扫描方向(MADCTL)可调整显示旋转角度,需根据实际硬件布局配置。 阅读详情

<1> 任务0的堆栈问题

一直不明白schedule.c里的task_union的stack和user_stack是什么关系,head.s里就设置了esp指向user_stack, 却一直没有用到task_union,直到看到INIT_TASK才明白,从进入保护模式到跳转进用户态都是用的user_stack这个栈,而任务0的tss中的esp0指向task_union的stack, 也就是当任务0再跳转进内核态时才用task_union的栈。总结起来就是从进入保护模式到初始化完成,user_stack用作内核态栈,进入用户态后user_stack用做用户态栈,task_union的stack用做内核态栈。

 

<2> 内核态寻址问题

内核代码段和数据段基址为0, 段限长为16M,而且在head.s中所设置的前四个页表与物理内存页是一一对应的,所以在内核态可以直接寻址16M内存(0.11版只支持16M内存),也即线性地址和物理地址相等。

 

<3>物理地址分配

 

 

<4>线性地址分配

每个任务占64M的线性地址空间,任务0实际只用了0-64M的前640KB,因为段限长被设成了640KB。因为最多支持64个任务,所以总共使用了4G的线性地址空间。

使用Qt在FreeRTOS上构建MCU应用程序 如果我们想要在FreeRTOS上运行该应用程序,我们需要选择适用于我们处理器架构的交叉编译工具链,并将目标设备设置为我们的开发板。在该代码中,我们使用xTaskCreate()函数创建了一个名为“qt_task”的任务,并将其启动。首先,我们需要安装Qt for MCU开发环境。Qt for MCU是基于Qt 5开发的针对MCU的特殊版本,它可以生成最小体积的代码,从而适用于资源有限的嵌入式系统。如果我们想要在FreeRTOS上运行这个程序,我们需要将其包装在一个任务中,并在任务创建后启动Qt的事件循环。 阅读详情

相关推荐

海康VisionMaster使用学习笔记7-Group模块

光标需放在[]中选择循环索引,循环索引用于实现依次检测10个匹配框的顶点,若不订阅,模块会循环检测同一个匹配框。可以看到绿色是它的边缘点.为方便查看顶点,将边缘点设置为不可见。循环使能打开,开始值设为0,循环结束值设为快速匹配的匹配个数。回到上一层,点击Group工具的设置图标,圆拟合的点设置为Group工具输出的点集。图像输入源选择Group的图像输入源。区域选择Group的快速匹配的匹配框。添加订阅到Group内部的顶点检测。对匹配框区域进行顶点检测。用于定位匹配框中的顶点。添加快速匹配的匹配框。

风凌的博客 4178

聚散两依依最新章节

聚散两依依 作者:琼瑶 作品类型:言情小说 作品驻站:2005-10-18 作品状态:已完成 总点击量:52714 总推荐数:55 书籍简介:《聚散两依依》目录 第一章 第二章 第三章 第四章 第五章 第六章

网络Online 1236

Pi0 项目复现及项目问题解决方案(全网抢先发布~)

Pi0 项目复现及项目问题解决方案(全网抢先发布~)

m0_68167062的博客 2262

linux 0.11 内核学习 -- char_dev.c

/* *  linux/fs/char_dev.c * *  (C) 1991  Linus Torvalds */ #include #include // 定义了基本的系统数据类型 #include #include // 含有一些内核常用函数的原形定义 #include #include  /* 中断读 */extern

记录、分享 1057

保姆级教程:用Kalibr搞定Intel D435i三目(RGB+双目)相机联合标定,附完整ROSbag录制避坑指南

本文详细介绍了如何使用Kalibr工具对Intel D435i三目相机(RGB+双目)进行高精度联合标定,包括硬件准备、ROSbag录制技巧、Kalibr标定实战及结果验证。特别针对实际工程中的常见问题提供了解决方案,帮助开发者提升SLAM和三维重建等应用的精度。

weixin_42524762的博客 405

多时间尺度源储荷微电网协调调度+日前日内实时+需求响应——附代码

为提高区域电网新能源消纳率,使电力系统运行成本最小,提高电力系统供电可靠性。提出考虑特性分布的储能电站接入的电网多时间尺度“源–储–荷”协调调度策略。综合储能电站、负荷侧各类需求响应资源的多时间尺度特性制定日前调度计划,并通过日内滚动与实时修正实现对预测数据更高精度的保证。以系统运行成本、弃风惩罚成本、失负荷惩罚成本为目标函数,建立多时间尺度调度模型。最后通过 MATLAB 平台调用商用软件包 CPLEX 完成混合整数规划优化,结果表明该调度策略可以达到系统运行成本最优,降低弃风率的效果。

不定时分享电力优化、神经网络、数学建模等技术等 6386

《linux内核完全注释》第3章总结

 /** 《linux内核完全注释》第3章*  (C) 2010-10-2 yang hui yu*  mail: gisyhy@163.com*/3.2.1 bootsect.s程序问题分析: 1)seg cs :表示下一条语句操作数强制使用该段作为数据段 比如: seg cs mov sectors,cx 等价于: mov cs:[

cug_fish_2009的专栏 1013

配置VS Code使用Linux服务器上的Matlab

0、需求 Linux服务器上安装有Matlab 无图形界面,只能使用命令行工具,编辑文件不方便 1、VS Code插件安装 在扩展商店中搜索matlab,会出现Matlab Extension Pack,里面有整理好的matlab扩展 这里只安装了第一排的三个扩展 2、设置(Windows、Mac的设置类似,只是不同系统的文件路径不同) 安装好扩展,重启VS Code后,进行设置 打开:文件→首选项→设置(或快捷键ctrl+,),搜索matlab,结果如下图所示;直接打开完整json配置文件(图

赵彬的博客 5009

LINUX0.11内核阅读笔记

我是通过阅读赵炯老师编的厚厚的linux内核完全剖析看完LINUX0.11的代码,不得不发自内心的说Linus真的是个天才。虽然我觉得很多OS设计的思想他是从UNIX学来的,但是他自己很周全很漂亮很巧妙地实现了如此庞大一个系统的绝大多数代码。这里面有太多环节需要注意,很难得。。。 读完之后觉得很有收获,虽然版本很低,但是已经对OS有一个很具体的认识了,比理论上的要来得深刻、真实。下面是我自己学习

乘风的专栏 2631

RAGFlow + GraphRAG+ 知识图谱 + QwQ32B探索实践

RagFlow 是一款开源的 RAG(Retrieval-Augmented Generation)引擎,专注于深度文档理解,能够助力企业及个人构建高效的 RAG 工作流程。借助大语言模型(LLM),它可以精准处理各种复杂格式的数据,为用户提供可靠的问答服务,并附上详实的引用依据。

技术引领业务创新 8万+

SAP Fiori 会话超时全解析:从 Launchpad 到 Identity Authentication 的统一策略

SAP Fiori会话超时机制解析与配置策略 本文深入探讨SAP Fiori项目中的会话超时机制,分析其对系统安全和用户体验的双重影响。文章系统拆解了SAP Fiori Launchpad与SAP Cloud Identity Services之间的会话超时工作原理,重点介绍了两种超时机制:服务器驱动的超时(通过SESSION_TIMEOUT_STOP_DATA_REFRESH参数控制)和UI驱动的超时(通过SESSION_TIMEOUT_INTERVAL_IN_MINUTES参数控制)。文中结合制造业产线

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 213

Linux0.11内核笔记 一

《Linux内核设计的艺术》笔记

GBEDC的博客 404

【考试大纲】中级多媒体应用设计师考试大纲

中级多媒体应用设计师考试大纲

邓邓子的博客 382

linux 内核概述,Linux 内核学习笔记:Linux 0.11 内核概述

8种机械键盘轴体对比本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?前面博文中,算是把个人认为关于 Linux 内核学习必需的“预备知识”写完了,接下来就是对内核源码的学习。在源码学习之前,我们先来看看 Linux 0.11 内核的一个概况,以便于后续学习有个大纲,不致走偏。对于那些已经在“预备知识”中阐述过的知识点在这里就不再重复;而对于那些会在后续博文详细描述的(如进程)也暂不述及。...

weixin_35797127的博客 296

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

linux内核0.11学习笔记

linux0.11内核目录结构 linux | |--- boot 系统引导汇编程序 | |--- fs 文件系统 | |--- include 头文件(*.h) | | | |--- asm 与CPU体系结构相关的部分 | | | |--- linux Linux内核专用部分 | | | |...

liuyangxin的专栏 202

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

LINUX0.11 内核阅读笔记

一.源码目录图1二.系统总体流程:系统从boot开始动作,把内核从启动盘装到正确的位置,进行一些基本的初始化,如检测内存,保护模式相关,建立页目录和内存页表,GDT表,IDT表。然后进入main进行初始化设置,main完成系统各个模块要用到的所有数据结构和外部设备的初始化。使得系统可以正常的工作。然后才进入用户模式。执行第一个fork生成进程1执行init,运行shell,接受并执行用户命令.这里

张勤一 2538

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

linux 0.11 内核代码行,linux0.11内核完全注释读书笔记

《Linux0.11内核完全注释》读书笔记嵌入汇编asm("汇编语句":输出寄存器:输入寄存器:会被修改的寄存器);kernel/traps.c文件中第22行开始的一段代码作为例子。#defineget_seg_byte(seg,addr)\({\registerchar__res;\//定义了一个寄存器变量__res。__asm__("push%%fs;\//首先保...

weixin_39632291的博客 297

linux内核启动总结,《Linux0.11内核完全注释》读书笔记之内核启动方式总结

Linux0.11启动方式BIOS启动当PC电源打开后,80X86结构的CPU将自动进入实模式,并从0xFFFF0开始自动执行程序,这通常是ROM-BIOS中的地址。PC机的BIOS将执行某些系统检测,并在物理地址0处开始初始化中断向量。此后将可启动设备的第一个扇区读入内存绝对地址0x7C00处,并跳转到这个地方。bootsect.s/setup.sbootsect.sLinux最前面的部分是bo...

weixin_29053073的博客 188

linux 0.11 进程,《Linux0.11内核完全注释》读书笔记之内核启动方式总结

#Linux0.11启动方式##BIOS启动 当PC电源打开后,80X86结构的CPU将自动进入实模式,并从0xFFFF0开始自动执行程序, 这通常是ROM-BIOS中的地址。PC机的BIOS将执行某些系统检测,并在物理地址0处开始初 始化中断向量。此后将可启动设备的第一个扇区读入内存绝对地址0x7C00处,并跳转到这 个地方。##bootsect.s/setup.s###bootsect.s L...

weixin_30673943的博客 334

《LINUX内核完全注释0.11》学习笔记(草稿)

 一、相关概念1:GNU计划的产物,emacs、gcc、gdb、bash shell、make等软件的开发为linux的开发铺平了道路,linux后来实际上也成为GNU计划的一部分。2:POSIX标准是根据UNIX的实践提出的操作系统的标准接口,目的是提高应用程序的可移植性,使其可以在多种支持POSIX接口标准的操作系统上运行。 二、用户态和内核态:通过CPL寄存器区分,==0

yt77_2000的专栏 804

linux内核研究笔记1(linux0.11 boot部分总结)

最近花了点时间仔细阅读了linux0.11内核代码的boot部分。要看懂该部分的代码,需要事先准备如下知识点: 1.80x86体系结构基础 包括寄存器、基本指令等 2.80x86实模式 3.80x86保护模式及编程 主要理解分段机制,分页机制。需要理解几个表和结构:GDT、IDT、LDT、TSS、页目录表、页表及各自表项结构。 4.早期IBM PC机的启动过程 5.BIOS基本中断服...

sunxiaohusunke的专栏 669

LINUX0.11内核阅读笔记 (1)

 我是通过阅读赵炯老师编的厚厚的linux内核完全剖析看完LINUX0.11的代码,不得不发自内心的说Linus真的是个天才。虽然我觉得很多OS设计的思想他是从UNIX学来的,但是他自己很周全很漂亮很巧妙地实现了如此庞大一个系统的绝大多数代码。这里面有太多环节需要注意,很难得。。。 读完之后觉得很有收获,虽然版本很低,但是已经对OS有一个很具体的认识了,比理论上的要来得深刻、真实。下面是我

以琛 的专栏 624
上一篇: 关于文件保存到数据库及其读取的方法
下一篇: 飞思卡尔9S12XF512的地址空间分配
Doom119
博客等级 码龄20年 9粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值