MiniOS-Arm64 bootloader设计实现 编程 一.概述实现 loader 实现了汇编准备和跳转到 C 程序 EL 等级切换,sp 栈指针,bss 段清理,异常向量和跳转到 C 程序 实现了串口显示 实现了屏幕显示 实现了 sd 读写 实现了 fat32 文件系统及其读取 实现了 mmu 初始化,建立了 2 份页表 加载了 kernel.img 镜像文件,并跳转到 kernel 执 二.具体实现loader 汇编部分...
开源镜像站建设 技术 1. 背景在单位局域网下的计算机设备由于没有连接到Internet,每次要安装什么软件的时候都很麻烦,需要手动下载安装包再上传,当安装包有众多依赖包的时候,很是麻烦。国内有多家单位都建设了镜像站,为国内开发人员提供了很大便利,但是对于不能访问Internet的局域网服务器来说,还是用不了。那么为何不自己建设一个镜像站呢。 2. 准备工作2.1. 硬件设备 一台局域网中可以...
如何调试真机上的 OS 技术 1 技术背景1.1 stub 初探GDB作为 GNU 项目一款知名的调试工具大家应该都不陌生,我们可以通过其很方便地对本地代码进行调试。当我们在本地调试不便的时候,也可以选择在目标机上启动gdbserver,在调试机上运行 GDB 并通过 IP 地址和端口号连接到目标机,从而实现远程调试。 但是 gdbserver 存在其本身的限制:它所需要的操作系统环境基本上与 GDB...
树莓派3——DMA技术访问SD卡的实现与分析 技术 概述在SD卡读写和framebuffer拷贝功能上用DMA实现 添加了dma.c和dma.h源码文件,定义了dma接口和实现 在sd.c的sd_readblock和sd_writeblock函数中添加了DMA相关函数调用实现数据传输。 树莓派dma简介概述BCM2835 中的大多数硬件流水线和外设都是总线主控器,使它们能够有效地满足自己的数据需求。这降低了 DMA 控...
树莓派3——EMMC访问SD卡的实现与分析 技术 相关知识The External Mass Media Controller(EMMC)是 Arasan™ 提供的嵌入式 MultiMedia™ 和 SD™ 卡接口。 卡的接口使用它自己的时钟 clk_emmc,它由时钟管理器模块提供。该时钟的频率应在 50 MHz 和 100 MHz 之间选择。即使 VideoCore 以降低的时钟频率运行,拥有单独的时钟也可以对卡进行...
vscode图形界面在qemu上调试裸机程序 技术 1. 准备工作1)从扩展安装ms-vscode.cpptools插件2)配置文件launch.json 从顶层目录打开miniOS项目,编辑debug配置文件launch.json,点击debug,创建launch.json文件,输入以下内容,重点在miDebuggerServerAddress设置为qemu对外暴露的调试端口IP填写qemu虚拟机所...
内嵌汇编 编程 内嵌汇编学习操作系统高级教程上面需要阅读Linux内核0.11的源码,其中在书《Linux内核设计的一书》第2.5节异常处理类中段服务程序挂接的部分,遇到了嵌入在C语言中的汇编代码,之前从来没有学习过汇编,因此记录下。 AT&T基础知识内嵌汇编使用的是AT&T汇编,所以首先稍微讲解下AT&T的汇编指令的基础知识。 1234### 操作数前缀movl...
Docker学习笔记 一:Docker 架构及工作原理 技术 Docker 架构及工作原理摘要:Docker 是一个客户端-服务器(C/S)架构程序。Docker 客户端只需要向 Docker 服务器或者守护进程发出请求,服务器或者守护进程将完成所有工作并返回结果。Docker 提供了一个命令行工具 Docker 以及一整套 RESTful API。 通过下图可以得知,Docker 在运行时分为 Docker 引擎(服务端守护进程)...
石子合并 编程 题目有一个石子归并的游戏。最开始的时候,有n堆石子排成一列,目标是要将所有的石子合并成一堆。合并规则如下: 每一次可以合并相邻位置的两堆石子每次合并的代价为所合并的两堆石子的重量之和求出最小的合并代价。 样例样例 1: 输入: [3, 4, 3]输出: 17样例 2: 输入: [4, 1, 1, 4]输出: 18解释: 合并第二堆和第三堆 => [4, 2, 4...
软件工程-复习总结 技术 第一章 软件工程 什么是软件?软件的特点? 软件是计算机系统中与硬件相互依存的另一部分;它是包括程序,数据,文档的完整集合 软件危机的定义 软件开发和维护过程中所遇到的这一系列严重问题为软件危机: 软件十分复杂,价格昂贵,供需差日益则大 软件开发时常受挫,质量差,进度和完成日期不按时,研制失去控制 软件危机的原因 软件的复杂...