当前位置: 首页 > article >正文

计院操作系统实验10

基于QEMU将UART串口重定向至控制台的实现使用UART串口作为输入设备通过设置信号量和中断每次用户输入字符串GIC会接收到中断号33随后调用shell进程存储输入至缓冲区并在控制台上回显输入实现简单的shell功能本次实验难度比较低最好随便水水然后赶快去做CS的汇编题目建议耗时120分钟目录1 实验项目一... 31.1 项目名称... 31.2 实验目的... 31.3 实验资源... 42 实验任务... 52.1.1 src/include/prt_shell.h. 52.2 接受输入... 52.2.1 src/bsp/print.c. 52.2.2 src/bsp/prt_exc.c. 82.2.3 src/kernel/task/prt_task.c. 82.2.4 src/kernel/tick/prt_tick.c. 82.2.5 src/shell/shmsg.c. 93 总结... 143.1 实验中出现的问题... 143.2 真实感受... 14实验项目一项目名称SHELL实验目的实现shell实验资源实验任务src/include/prt_shell.h接受输入src/bsp/print.cPRT_UartInit()定义了一个新的中断用于串口接收设置了这些操作数的位数0x24是波特率的设置。之后再启用。控制位启用接收使能和发送使能非常重要。OsUartRxHandle()每次输入字符以后等到FIFO非空的时候结束循环因为已经接收到了字符基本上也是轮询pollingsrc/bsp/prt_exc.csrc/kernel/task/prt_task.csrc/kernel/tick/prt_tick.csrc/shell/shmsg.c运行过程任务启用时SHELL先WAIT等待串口输入shell自己放弃运行进入阻塞态串口输入中断号33调用串口处理程序把输入的内容传到shell内并POST唤醒SHELL周SHELL继续经过循环等待直到输入换行符shell开始解析指令。指令完成后清空buffer等待下一次输入。以上便是一次完整的过程作业这里需要清除中断后才能正常进行信号接收之前因为我是RR调度Post会直接运行新的任务在中断启用之前所以说要把Post操作放到这里才能正常运行并发任务。实现了创建并发任务这里以DPP哲学家就餐问题示例清屏操作展示当前时钟展示当前任务展示当前系统运行轨迹取消运行轨迹展示还有退出这7个功能。Flag打印自己的logoTrace展示系统运行轨迹从这里可以看出运行过程与之前的分析一致Untrace关闭追踪多线程任务创建以及Top查看运行任务Tick显示运行时间Quit退出终端总结实验中出现的问题这次实验比较轻松主要难点还是之前综合知识点的运用中断和信号一起上如果掌握不好会有些应接不暇。这次写的驱动和print那次难度差不多这也不是第一次写驱动了所以比较容易看文档也轻松多了。我做shell的时候遇到了创建并发任务的时候遇到tick无法更新的bug因为我是RR调度这里默认是基于优先级的抢占式调度他在post的时候就开始唤醒任务了导致运行任务的时候没有开中断只有下一次wait了以后恢复内核栈的上下文运行到UARThandler结束后的intclear才会关闭中断所以说时间计数一开始才会准确但是运行并发任务的时候会出问题。做完全部实验的真实感受感觉这次最后的实验还是放了我们一马难度相当于实验二的printf一路走来从不会写驱动到现在稍微会一点嵌入式开发还是可以的也解决了许多并发问题做完实验以后才觉得掌握数据结构最重要了任务调度那块比较难做出来也对掌握任务的运行状态有帮助。内存mmu那里也很难理解了页表的数据结构就不难了再见了所有的OS实验

相关文章:

计院操作系统实验10

基于QEMU将UART串口重定向至控制台的实现,使用UART串口作为输入设备,通过设置信号量和中断,每次用户输入字符串,GIC会接收到中断号33,随后调用shell进程存储输入至缓冲区并在控制台上回显输入,实现简单的sh…...

[特殊字符] OpenClaw(小龙虾)CentOS 7 完整安装手册

🔧 **适用系统**:CentOS 7.x(本文基于 CentOS 7.9 编写) 🏗️ **架构要求**:x86_64 👤 **操作用户**:root(为简化操作,本文全程使用 root 用户&#xff0…...

打不开游戏提示缺少D3DCompiler_47.dll文件 分享免费下载

在使用电脑系统时经常会出现丢失找不到某些文件的情况,由于很多常用软件都是采用 Microsoft Visual Studio 编写的,所以这类软件的运行需要依赖微软Visual C运行库,比如像 QQ、迅雷、Adobe 软件等等,如果没有安装VC运行库或者安装…...

【小程序】✈️一口气用AI肝了50+功能的小程序(已上线)

💥💥✈️✈️欢迎阅读本文章❤️❤️💥💥 🏆本篇文章阅读大约耗时5分钟。 ⛳️motto:不积跬步、无以千里 📋📋📋本文目录如下:🎁🎁&am…...

构建StructBERT模型集群:负载均衡与高可用部署架构

构建StructBERT模型集群:负载均衡与高可用部署架构 最近和几个做企业服务的同行聊天,大家普遍遇到一个头疼的问题:单个模型服务扛不住业务高峰期的流量。平时跑得好好的,一到促销或者活动,服务就卡顿甚至挂掉&#xf…...

Emoji国旗代码大全:如何在网页和App中正确显示各国旗帜(附完整Unicode列表)

Emoji国旗代码实战指南:跨平台兼容方案与Unicode最佳实践 在全球化数字产品设计中,emoji国旗已成为用户界面不可或缺的视觉元素。从社交平台的用户国籍标识到电商网站的物流追踪,这些彩色小旗帜背后却隐藏着令人头疼的技术挑战——不同设备显…...

Qwen3-VL-2B-Instruct如何保护隐私?数据安全指南

Qwen3-VL-2B-Instruct如何保护隐私?数据安全指南 在AI应用日益普及的今天,我们享受技术便利的同时,也面临着数据隐私的挑战。当你使用一个能“看懂”图片的AI模型时,一个核心问题自然浮现:我上传的图片和数据安全吗&a…...

Coze-Loop游戏AI开发:强化学习算法加速

Coze-Loop游戏AI开发:强化学习算法加速 1. 引言 游戏AI开发正在经历一场革命性的变化。传统的游戏AI往往依赖于预设的行为树和有限状态机,虽然稳定可控,但缺乏真正的智能和适应性。随着强化学习技术的成熟,我们现在可以创建能够…...

哪吒监控面板SSH功能安全关闭指南:保护你的VPS不被入侵

哪吒监控面板SSH功能安全管理全指南 对于使用哪吒监控面板的VPS管理员来说,SSH功能的安全管理是一个需要谨慎对待的议题。这个功能虽然在某些紧急情况下能提供便利,比如服务器失联时的远程访问,但它也可能成为潜在的安全隐患。特别是在当前网…...

2026 论文写作工具实测:Paperxie 领衔 9 款 AI 工具,搞定初稿 / 绘图 / 排版 / AI 率全流程

paperxie-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/aippthttps://www.paperxie.cn/ai/dissertationhttps://www.paperxie.cn/ai/dissertation 毕业季的论文焦虑,从来都不是「不会写」,而是「写不完、写不好、通不过」。从选题卡壳到格…...

论文人救星!Paperxie:从初稿到终稿,一站式搞定写作 / 绘图 / 排版 / AI 率

paperxie-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/aippthttps://www.paperxie.cn/ai/dissertationhttps://www.paperxie.cn/ai/dissertation 谁懂啊家人们!写毕业论文的苦,只有经历过的人才懂:选题抓耳挠腮、大纲逻辑混乱…...

C#上位机+AI视觉:基于Halcon/OpenCV的工业缺陷检测系统开发(汽车零部件厂真实落地案例 | 附完整可复用代码 | 漏检率从15%降至0.5%)

我在天津滨海新区的汽车密封条厂做了8年工业上位机开发,见过90%的工厂都面临同一个质检痛点: 人工检测密封条的表面划痕、气泡、缺胶,一天8小时盯着看,眼睛花了漏检率高达15%,客户投诉不断; 后来上了一套国外的视觉检测系统,贵得离谱,一套200万,还只能检测一种产品,换…...

论文初稿不再熬夜:PaperXie 把写作、绘图、排版、降 AI 率全打包,本科生也能一键通关

paperxie-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/aippthttps://www.paperxie.cn/ai/dissertationhttps://www.paperxie.cn/ai/dissertation 一、毕业季的 “隐形加班”:谁在为论文的细枝末节买单? 凌晨两点的宿舍灯还亮着&#xff…...

绑定 控件与数据的绑定 控件与控件的绑定 DAY4

引出&#xff1a;需要slider与textbox互相影响互相绑定 “双向绑定”事件驱动private void Slider_ValueChange(object sender, RoutedPropertyChangedEventArgs<double> e){text1.Text slider.Value.ToString();text2.Text slider.Value.ToString();text3.Text slide…...

记录项目基于HAL+STM32+Freertos的天气桌面(暂时就叫这个了)(day1)

简介&#xff1a;主控STM32F103C8T6&#xff0c;元器件ESP01S。主频为72mhz&#xff0c;开启usart1与usart2&#xff0c;usart1用于回传esp01s发送的信息&#xff0c;usart2用于连接esp01s。freertos新建1个任务&#xff0c;大小128*4&#xff0c;1个用于获取心知天气内的数据。…...

SpyGlass CDC检查所需的SGDC文件编写规则

SGDC(SpyGlass Design Constraints)是SpyGlass CDC检查的核心约束文件&#xff0c;用于明确时钟、复位、数据域、特殊路径的检查说明&#xff0c;确保跨时钟域分析准确、无漏检、无大量误报。本篇文章讲解实战中常用的约束语句及含义&#xff0c;个人总结&#xff0c;仅供参考。…...

MQ基础(异步通信)

文章目录day06-MQ基础 学习总结一、同步调用 vs 异步调用1. 同步调用&#xff08;OpenFeign&#xff09;2. 异步调用&#xff08;MQ&#xff09;二、RabbitMQ基础1. 核心概念2. 安装与端口3. 数据隔离三、SpringAMQP1. 功能介绍2. 工作模式2.1 简单队列2.2 Work Queue&#xff…...

Intel vGPU技术GVT-g与kvmgt实现分析和实践

Intel GVT-g & KVMGT Intel GVT-g是Intel图形虚拟化技术(Intel Graphics Virtualization Technology-graphics)的缩写&#xff0c;它是一种硬件辅助的GPU虚拟化解决方案&#xff0c;允许将一个Intel集成显卡(Integrated Graphics Processor, IGP)虚拟化为多个虚拟GPU(vGPU…...

HeBA Heterogeneous Bottleneck Adapters for Robust Vision-Language Models

HeBA: Heterogeneous Bottleneck Adapters for Robust Vision-Language Models Authors: Md Jahidul Islam Deep-Dive Summary: HeBA: 用于鲁棒视觉语言模型的异构瓶颈适配器 (Heterogeneous Bottleneck Adapters) 摘要 将 CLIP 等大规模视觉语言模型&#xff08;VLMs&…...

协程学习笔记1

一、CPU密集型任务Test fun test Cpu Task()runBlocking{val startTime System.currentTimeMillis()val joblaunch(Dispatchers.Default){var nextTimestartTimevar i0while (i<5){if(System.currentTimeMillis()>nextTime){println("job:Im sleeping ${i}")ne…...

团队协作效率遭遇瓶颈?这 1 个开放式网盘生态,救活了 10 万+ 企业的文档流(含竞品实测)

在 2026 年的企业级 SaaS 市场&#xff0c;很多团队管理者陷入了一个怪圈&#xff1a;买了一堆功能大而全的“全家桶”网盘&#xff0c;结果员工依然习惯用微信传文件&#xff0c;文档躺在云端变成死数据。 为什么&#xff1f;因为真正的“生态”不是强迫用户在网盘里用简陋的…...

结构建模与数字孪生破解偏远桥梁监测难题

STAAD与iTwin提供结构建模与数字孪生解决方案&#xff0c;助力实现智能、经济高效的桥梁维护策略优化桥梁检测与维护I-15州际公路纵贯美国南加州与加拿大阿尔伯塔省&#xff0c;全长1400英里&#xff0c;仅有29英里穿过亚利桑那州最西端的莫哈维县&#xff0c;其中有15英里的路…...

Android jetpack LiveData (二) 原理篇

Android jetpack LiveData&#xff08;二&#xff09;原理篇引言源码前置分析核心类源码第一步&#xff0c;定义LiveData对象第二步&#xff0c;观察LiveData数据第三步&#xff1a; 设置LiveData数据到这里我们先总结下黏性数据的步骤&#xff1a;小结引言 上一篇我们学习了L…...

【PCIe 验证每日学习・Day13】DLLP 与 ACK/NAK 重传机制基础验证

大家好&#xff0c;继续我们「PCIe 验证每日学习・30 分钟打卡」系列。今天进入数据链路层核心&#xff1a;DLLP 帧结构、ACK/NAK 应答机制与重传验证。内容严格遵循 PCIe 规范、100% 无错误&#xff0c;讲解通俗、结构清晰、代码可直接复用&#xff0c;风格与前几日完全统一&a…...

Linux 的 cat 命令

Linux 的 cat 命令详解 命令概述 cat&#xff08;concatenate 的缩写&#xff09;是 Linux 系统中最基础且常用的命令之一&#xff0c;主要用于查看文件内容、合并文件以及创建简单文件。该命令属于 GNU coreutils 包的一部分&#xff0c;几乎在所有 Linux 发行版中都默认安装…...

burpsuite详细安装教程及功能讲解

好久不见&#xff0c;各位道友 目录 好久不见&#xff0c;各位道友 Brp Suite 介绍 正常情况下&#xff08;不使用Burp Suite&#xff09;&#xff0c;客户端与服务器的交互过程如下&#xff1a; 当加入Burp Suite时&#xff0c;客户端与服务器的交互过程如下&#xff1a;…...

春日桌搭新首选!ROG魔霸9 Mini:3L 迷你机身,塞下锐龙 9+RTX5070

三月春意渐浓&#xff0c;很多人都开始给自己的桌面焕新升级&#xff0c;而一款体积小巧、性能够强的主机&#xff0c;绝对是桌搭升级的核心。最近 ROG 推出的魔霸 9 Mini 电竞迷你主机&#xff0c;就精准命中了玩家与办公人群的核心需求 —— 仅 3L 的超小体积&#xff0c;却塞…...

Qt导航栏组件A03:VS Code 风格的图标侧栏

目录 一、引言 二、最终效果预览 三、核心实现原理 3.1 布局结构设计 3.2 核心技术点 四、代码实现详解 4.1 项目结构 4.2 导航组件的核心代码 4.3 样式表设计 五、总结 5.1 核心要点回顾 5.2 学习建议 源码下载 系列编号:A-03 导航风格:只有图标的侧栏 适用场景:IDE、编辑器…...

计算机毕业设计源码:Python贝壳租房数据可视化与智能推荐系统 Scrapy爬虫 可视化 推荐系统 大数据 数据分析 大模型 房源 房子(建议收藏)✅

博主介绍&#xff1a;✌全网粉丝10W,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业项目实战6年之久&#xff0c;选择我们就是选择放心、选择安心毕业✌ > &#x1f345;想要获取完整文章或者源码&#xff0c;或者代做&#xff0c;拉到文章底部即可与…...

深度探索Fluent中的电弧、激光与熔滴一体化模拟

Fluent电弧&#xff0c;激光&#xff0c;熔滴一体模拟。 UDF包括高斯旋转体热源、双椭球热源&#xff08;未使用&#xff09;、VOF梯度计算、反冲压力、磁场力、表面张力&#xff0c;以及熔滴过渡所需的熔滴速度场、熔滴温度场和熔滴VOF。初识激光熔化沉积&#xff1a;一场材料…...