-
2022-02-06 10:52:46
近期在看《30天自制操作系统》、《一个64位操作系统的设计与实现》、linux-2.4.36内核源码,于是就想自制一个属于自己的操作系统。
现开设此专栏,目标是从零开始自制一个64位的操作系统。麻雀虽小五脏俱全,所以我的操作系统要有图形界面、有内存管理、进程管理、中断管理、相应外设驱动。本专栏会持续更新,直至开发出一个完整的64位操作系统。如有兴趣,请订阅收藏。如有疑问,也请评论留言。
本专栏的所有代码位于GitHub: https://github.com/xqd-githup/xqd-os
开发环境
工欲善其事必先利其器,开发的第一步当然是准备开发环境
操作系统
Linux
为方便开发,建议使用Linux桌面系统,原因有两个:
- Linux有很多现成的开发工具,安装也方便,尤其是GCC对Linux非常友好。
- 开发过程中会有图形界面交互,所以必须使用Linux桌面系统
我这里使用的是xubuntu: https://mirrors.tuna.tsinghua.edu.cn/ubuntu-cdimage/xubuntu/releases/20.04/release/
Windows
如果特别排斥Linux,想使用Windows开发的话,可以直接跳到下面的windows系统的开发环境
开发工具
用于编译代码:
apt-get install gcc make nasm
- gcc 用于编译C程序
- make用于批量编译
- nasm用于编译汇编、反汇编程序
下载sublimetext:https://www.sublimetext.com/download,用于代码编辑,如果vim特别熟练的可以不安装。
硬件模拟
不可能每次开发之后,都部署到专门的硬盘上,然后重启系统观察运行效果。这样既不方便开发,也不方便调试,所以需要一个方便模拟运行的软件。
我这里使用的是bochs,非常小巧(只有7MB),而且方便调试,用于模拟器计算机,相当于vmware、visualbox之类的软件。apt-get install bochs bochs-x
windows系统的开发环境
- 必须是win10
- 需要安装Linux子系统,可以参考win10搭建Ubuntu子系统(wls)
- 在Windows中安装bochs,下载地址
- 将bochs的目录(我的是C:\Program Files\Bochs-2.6.11)加入环境变量
WSL(Windows Subsystem for Linux)是一个很神奇的东西,它几乎具备了原生Linux的所有功能,但是又跟win10共享CPU、内存、硬盘,甚至连环境变量也是共享的,Ubuntu子系统可以直接运行Windows下的exe应用程序。
这里安装Ubuntu子系统的目的只有一个,就是安装GCC,因为我们的汇编、C程序都是需要靠GCC来编译的。本来window下也有一些GCC的编译环境,如mingw、cygwin等,但是里面的gcc都是阉割版,开发普通的Windows应用绰绰有余,但是开发OS就有点力不从心了。
综上,只有gcc需要在Linux子系统安装,其他软件都装在Windows上。在Linux子系统上执行命令:sudo apt-get install gcc make
然后执行vi .bashrc,在最后面加入:alias bochs='/mnt/c/Program\ Files/Bochs-2.6.11/bochs.exe' alias bximage='/mnt/c/Program\ Files/Bochs-2.6.11/bximage.exe'
解释一下:
- windows的C盘对应子系统的/mnt/c
- Program Files这个目录中间的空格,需要用反斜杠转义
执行: . .bashrc 让配置生效,这样开发环境就配置好啦。
结束
到此为止,开发一个操作系统所需要的所有工具都已准备完毕,接下来将使用这些工具开发一个helloWord级别的操作系统引导程序,并观察运行效果。
请参考下一节:(02)第一个操作系统引导程序
更多相关内容 -
Android 开发环境下载
2016-09-15 11:47:45原文地址:http://blog.csdn.net/baiyulinlin1/article/details/52159756 -
完整的ESP32环境搭建总结,别再因为开发环境被劝退了
2022-04-05 22:36:18ESP32安装开发环境一. 声明
本专栏文章我们会以连载的方式持续更新,本专栏计划更新内容如下:第一篇:ESP-IDF基本介绍,主要会涉及模组,芯片,开发板的介绍,环境搭建,程序编译下载,启动流程等一些基本的操作,让你对ESP-IDF开发有一个总体的认识,比我们后续学习打下基础!
第二篇:ESP32-IDF外设驱动介绍,主要会根据esp-idf现有的driver,提供各个外设的驱动,比如LED,OLED,SPI LCD,TOUCH,红外,Codec ic等等,在这一篇中,我们不仅仅来做外设驱动,还会对常用的外设总线做一个介绍,让大家知其然又知其所以然!
第三篇:目前比较火热的GUI LVGL介绍,主要会设计LVGL7.1,LVGL8的移植介绍,并且也会介绍各个组件,知道原理后,最后,我们会推出一款组态软件来构建我们的GUI,来提升我们的效率!
第四篇:ESP32-蓝牙,熟悉我的,应该都知道,我即使从事蓝牙协议栈的开发的,所以这个是我们独有的优势,在这一篇章,我们会提供不仅仅是蓝牙应用方法的知识,也会应用结合蓝牙底层协议栈的理论,让你彻底从上到下打通蓝牙任督二脉!
第五篇:Wi-Fi介绍,熟悉我的,应该也知道,我们也做过一款sdio wifi的驱动教程板子,所以在wifi这方面我们也是有独有的优势,在这一篇章,我们同样不仅仅提供Wi-Fi应用方面的知识,也会结合底层理论,让你对Wi-Fi有一个清晰的认知!
另外,我们的教程包括但是不局限于以上篇章,为了给你一个更好的导航,以下信息尤其重要,请详细查看!!
------------------------------------------------------------------------------------------------------------------------------------------
蓝牙交流扣扣群:539357317
微信公众号↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
------------------------------------------------------------------------------------------------------------------------------------------
二.前言
每种开发板都要自己的开发模式,比如STM32用keil或者IAR,甚至直接用arm gcc,所以熟悉了开发模式,是我们开始一款芯片的第一步,之前的ESP32的环境安全就劝退了很多人,我们的教程力求在这里简单明了,不因为开发环境而苦恼。
首先,在介绍之前,我们先看下一个框架,目前乐鑫ESP32的做open sdk开发都基于这个框架,叫做ESP-IDF(Espressif IoT Development Framework) ,这里面会有基本的Driver,常用外设的bsp,蓝牙,wifi,以及有各种各样的例程,以最低的学习成本能达到做产品的水平!!
我们只用两种工具:
1. vscode,下载连接如下:Visual Studio Code - Code Editing. Redefined
2. esp-idf tool(可选),下载连接如下:https://dl.espressif.com/dl/esp-idf/?idf=4.4
其中esp-idf可以在windows,linux,mac下开发,我们直接选择windows,另外第二个工具是可选的,至于为什么可选,我们会在下个小节来做介绍
三.安装方法
在这里,我们忽略vscode的安装,这个比较简单,基本上一路next就行了。我们只是来介绍esp32的idf怎么安装!
在这里我会提供两种方法来安装esp-idf,之所以会有两种方法,是因为我两台电脑,一台用简单的第一种方法安装不成功,所以我才找到了第二种安装方法!你们先可以尝试第一种方法,如果第一种方法不可行,那么再选择第二种方法!
另外需要注意这点:一定要全英文目录,这个我安装过一次中文,失败了,提示utf8某一个字符不认!
方法一
1)在VSCODE扩展插件中搜索:esp-idf,点击安装
2)在VSCODE菜单中选中查看->命令面板,搜索:ESP-IDF:Configure ESP-IDF extension ,然后点击进去配置
直接一路安装就行了,直到最后成功
方法二
1.先安装ESP IDF tool
1)打开esp-idf-tools-setup-offline-2.12.exe
2)我同意此协议,下一步
3) 应用修复,下一步
4)选择最新版本
5)去掉eclipse以及选择优化使用esp镜像
6)点击安装
2.VSCODE配置
1)在VSCODE扩展插件中搜索:esp-idf,点击安装
2)在VSCODE菜单中选中查看->命令面板,搜索:ESP-IDF:Configure ESP-IDF extension 进去配置
我这里选择 USE EXISTING SETUP
3)安装ESP-IDF需要的python虚拟环境
4)一定要耐心等待,这个步骤花的时间比较久,2000 years later
我们就大功告成了!!!接下来我们会讲解怎么创建工程/编译工程/烧录程序等
-
Android开发环境配置
2022-02-12 21:09:35本文是Android开发环境的搭建教程,最近用到了Android开发,对环境搭建做个总结。 1、安装JDK 首先去官网下载JDK。 Java SeSdk下载地址: https://www.oracle.com/java/technologies/javase-downloads.html 选择...本文是Android开发环境的搭建教程,最近用到了Android开发,对环境搭建做个总结。
1、安装JDK
首先去官网下载JDK。
Java SeSdk下载地址: https://www.oracle.com/java/technologies/javase-downloads.html
选择Windows版本。
下载完成后,直接双击安装,使用默认路径C:\Program Files\Java\jdk-17.0.2即可。然后配置环境变量。
然后,运行CMD,输入java -version。
如上图,看到版本信息,说明配置成功了。
2、Android.Studio安装
首先登陆官方网站下载Android Studio的安装包。
下载地址:https://developer.android.google.cn/studio/
点击下载,然后拉到最后,勾选复选框,再点击下载按钮。
下载完成后,运行安装文件。
点击下一步,勾选安卓虚拟机。
选择路径,如果C盘空间足够,就直接选用默认路径。
点击Next。
然后,点击Install。等待安装完成。
3、Android.Studio配置
启动Android Studio,然后弹出界面如下:
因为第一次安装,没有Android Studio的配置文件,所以只能选择“Do not import settings”,然后点击OK。
然后弹出Andriod Studio Sdk缺失提示,因为没有代理,所以选择取消,如上图。
进入Android Studio配置引导界面,点击下一步。
选择标准配置,然后点击下一步。
点击Next。
点击“Android Emulator”,然后选择“Accept”。剩下的执行同样的操作。
然后,点击Finish。等待下载选择的SDK
出现上面的图片,则安装完成。点击Finish。
4、第一个安卓应用
选择“New Project”。
选择“Empty Activity”,选择“Next”。
选择4.4的安卓版本,下面显示可以在99.4%的设备上运行。然后点击“Finish”。
等待,红框的下载完成后就可以。
安装模拟器,“点击Device Manager”,然后点击“Create device”
选择手机,点击Next
选择30版本,点击Download。
等待下载完成,点击“Finish”。
选择“Next”。
设置AVD Name,选择Portrait,然后选择“Finish”。
点击红框中的绿三角按钮,然后安心等待。
恭喜,Hello World 完成了。
-
FPGA集成开发环境
2021-07-27 18:59:36我们的FPGA集成开发环境可以做什么 HDL设计文件编写 RTL级仿真 综合、技术映射 ...我们的FPGA集成开发环境可以做什么
HDL设计文件编写
RTL级仿真
综合、技术映射
门级仿真
打包、布局、布线
后仿
码流生成
码流下载
我们的集成开发环境长这样
FPGA开发流程图
通过FPGA开发流程可以发现我们的集成开发环境基本覆盖了FPGA开发的全流程;其中每个步骤的作用如下:1) RTL级HDL设计
RTL级(Register Transfer Level,寄存器传输级)指不关注寄存器和组合逻辑的细节(如使用了多少个逻辑门、逻辑门的连接拓扑结构等),通过描述数据在寄存器之间的流动和如何处理、控制这些数据流动的模型的HDL设计方法。RTL级比门级更抽象,同时也更简单和高效。RTL级的最大特点是可以直接用综合工具将其综合成为门级网表,其中RTL级设计直接决定着系统的功能和效率。
2) RTL级仿真
也称为功能(行为)仿真,或是综合前仿真,是在编译之前对用户所设计的电路进行逻辑功能验证,此时的仿真没有延迟信息,仅对初步的功能进行检测。仿真前,要先利用波形编辑器和HDL等建立波形文件和测试向量(即将所关心的输入信号组合成序列),仿真结果将会生成报告文件和输出信号波形,从中便可以观察各个节点信号的变化。如果发现错误,则返回设计修改逻辑设计。常用的工具有Model Tech公司的ModelSim、Sysnopsys公司的VCS和Cadence公司的NC-Verilog以及NC-VHDL等软件。虽然功能仿真不是FPGA开发过程中的必需步骤,但却是系统设计中最关键的一步。
为了提高功能仿真的效率,需要建立测试平台testbench,其测试激励一般使用行为级HDL语言描述,其中RTL级模块是可综合的,它是行为级模块的一个子集合。
3) 综合
所谓综合就是将较高级抽象层次的描述转化成较低层次的描述。综合优化根据目标与要求优化所生成的逻辑连接,使层次设计平面化,供FPGA布局布线软件进行实现。就目前的层次来看,综合优化(Synthesis)是指将设计输入编译成由与门、或门、非门、RAM、触发器等基本逻辑单元组成的逻辑连接网表,而并非真实的门级电路。真实具体的门级电路需要利用FPGA制造商的布局布线功能,根据综合后生成的标准门级结构网表来产生。为了能转换成标准的门级结构网表,HDL程序的编写必须符合特定综合器所要求的风格。由于门级结构、RTL级的HDL程序的综合是很成熟的技术,所有的综合器都可以支持到这一级别的综合。常用的综合工具有Synplicity公司的Synplify/Synplify Pro软件以及各个FPGA厂家自己推出的综合开发工具。
4) 门级仿真
也称为综合后仿真,综合后仿真检查综合结果是否和原设计一致。在仿真时,把综合生成的标准延时文件反标注到综合仿真模型中去,可估计门延时带来的影响。但这一步骤不能估计线延时,因此和布线后的实际情况还有一定的差距,并不十分准确。目前的综合工具较为成熟,对于一般的设计可以省略这一步,但如果在布局布线后发现电路结构和设计意图不符,则需要回溯到综合后仿真来确认问题之所在。在功能仿真中介绍的软件工具一般都支持综合后仿真。
5) 布局布线
实现是将综合生成的逻辑网表配置到具体的FPGA芯片上,将工程的逻辑和时序与器件的可用资源匹配。布局布线是其中最重要的过程,布局将逻辑网表中的硬件原语和底层单元合理地配置到芯片内部的固有硬件结构上,并且往往需要在速度最优和面积最优之间作出选择。布线根据布局的拓扑结构,利用芯片内部的各种连线资源,合理正确地连接各个元件。也可以简单地将布局布线理解为对FPGA内部查找表和寄存器资源的合理配置,布局可以被理解挑选可实现设计网表的最优的资源组合,而布线就是将这些查找表和寄存器资源以最优方式连接起来。
目前,FPGA的结构非常复杂,特别是在有时序约束条件时,需要利用时序驱动的引擎进行布局布线。布线结束后,软件工具会自动生成报告,提供有关设计中各部分资源的使用情况。由于只有FPGA芯片生产商对芯片结构最为了解,所以布局布线必须选择芯片开发商提供的工具。
6) 时序仿真
是指将布局布线的延时信息反标注到设计网表中来检测有无时序违规(即不满足时序约束条件或器件固有的时序规则,如建立时间、保持时间等)现象。时序仿真包含的延迟信息最全,也最精确,能较好地反映芯片的实际工作情况。由于不同芯片的内部延时不一样,不同的布局布线方案也给延时带来不同的影响。因此在布局布线后,通过对系统和各个模块进行时序仿真,分析其时序关系,估计系统性能,以及检查和消除竞争冒险是非常有必要的。
7) FPGA码流生成与板级调试
通过编程器将布局布线后的配置文件下载至FPGA中,对其硬件进行编程。配置文件一般为.pof或.sof文件格式,下载的方式包括AS(主动)、PS(被动)、JTAG(边界扫描)等方式。
用自己的FPGA集成环境生成个RISC-V的例程来验证集成开发环境的健壮性
通过复杂的例程,验证我们FPGA集成开发环境的健壮性;
我们想做什么
IDE集成环境软件开发
逻辑综合算法
高层次综合算法
布局布线算法
逻辑、时序仿真工具
我们需要什么
我们需要有爱国情怀、能吃苦奋斗的你加入我们,和我们一起完成这个充满崎岖坎坷的旅程;如果你的情怀够、精神力足、对FPGA编译器或则集成开发环境软件开发有兴趣,那还等什么,简历走起来呗! 简历可以往哪走:centuryofmine@gmail.com
我们能提供什么
我们能伴你成长;我们能提供你一个非常温馨的工作环境;公司能提供可观的收入;
-
搞定Android开发环境部署——非常详细的Android开发环境搭建教程
2021-07-18 22:45:11在windows安装Android的开发环境不简单也说不上算复杂,本文写给第一次想在自己Windows上建立Android开发环境投入Android浪潮的朋友们,为了确保大家能顺利完成开发环境的搭建,文章写的尽量详细,希望对准备进入... -
JAVA开发环境搭建
2022-01-13 10:46:54目录 一.JDK下载与安装 二.配置环境变量 三.... ...一.JDK下载与安装 ...搜索jdk8,一定要进入官网Oracle下载。...下一步,建议路径设置成比较好找的,后面配置环境变量要用到。 二.配置环境变量 右击,选择属性,点... -
科普一下什么是开发环境,测试环境,生产环境
2022-03-21 10:35:18提到测试环境,首先就要搞清楚开发环境,测试环境,生产环境三者有什么区别? 项目部署环境一般可分为三种:生产环境,测试环境,开发环境 1、开发环境:开发环境时程序猿们专门用于开发的服务器,配置可以比较随意... -
搭建 Python 开发环境
2020-08-01 17:43:31在学习 Python 之前需要先搭建 Python 开发环境,由于 Python 是跨平台的,所以可以在多个操作系统上进行编程,并且编写好的程序可以在不同系统上运行。常用的的操作系统为 Windows、Linux、Mac OS。 Windows上推荐... -
1.Python简介&&开发环境配置&&工具准备
2022-01-25 13:38:28Python第一课: ①Python简介;②Python开发环境配置&&pycharm开发工具配置;③各种Python解释器一览~ -
搭建以太坊智能合约开发环境
2021-08-16 02:08:44搭建以太坊智能合约开发环境 搭建以太坊智能合约开发环境 相关概念 以太坊智能合约开发环境介绍 Linux安装Geth 搭建私网并启动Geth 第一步:配置创世块文件 第二步:数据初始化 第三步:启动Geth节点 相关资料 ... -
快速搭建自己的Python开发环境,进入机器学习的正确姿势
2022-01-28 09:04:59很多小伙伴私信咨询我 我的机器学习开发环境是什么样的? 机器学习硬件设备 无论是学习机器学习还是开发大型操作模型,其实工作站硬件并不是那么重要。 原因是不建议在工作站上安装大型模型。 机器学习开发涉及许多... -
适合C/C++的集成开发环境
2020-09-26 07:59:15“工欲善其事,必先利其器”,选择合适的集成开发环境(IDE)往往能做到事半功倍的作用,下面给您介绍一下适合C/C++语言的集成开发环境。 适合C/C++常用IDE工具 序号 名称 适合操作系统... -
Android开发环境搭建
2021-01-26 00:13:40Android开发环境搭建 Android开发所需的环境。JDK和SDK一般来说不用独自安装了,只需安装一个Android Studio即可。Android Studio集成了。如果JDK不能弄,可以参考我的另一篇博客的安装步骤,安装一下。因为我装过了... -
头歌Educoder——大数据Hadoop开发环境搭建
2021-03-11 18:51:43文章目录第1关:配置开发环境 - JavaJDK的配置任务描述相关知识下载JDK解压配置环境变量测试编程要求实现代码第2关:配置开发环境 - Hadoop安装与伪分布式集群搭建任务描述相关知识下载Hadoop配置Hadoop环境设置SSH... -
scala windows搭建开发环境
2022-01-24 13:27:11学习一门语言的第一步是搭建开发环境 我的电脑是windows的,所以本文是围绕windows系统进行展开的 本文的版本是 2.11.8 开发工具的技术选择为idea 2 下载 Scala 2.11.8 | The Scala Programming Language ... -
Android应用开发环境搭建
2021-09-06 14:35:49开发Android应用至少需要具备如下开发工具和开发包...Android Studio是谷歌2013年推出的新的Android开发环境,提供了集成开发工具,开发者可以在编写程序的同时看到自己的应用在不同尺寸屏幕中的样子。 随着Android St -
Android Studio开发环境搭建(图文教程)
2022-02-14 12:00:20Android Studio开发环境搭建一、下载Android Studio二、安装Android Studio三、下载Android SDK四、创建第一个Android工程五、下载和创建模拟器 一、下载Android Studio 在Android官网下载Android Studio最新版本 ... -
SpringMVC+Spring+Mybatis集成开发环境
2015-04-28 11:28:08SpringMVC+Spring+Mybatis集成开发环境 -
从零开始搭建GoLang语言开发环境
2022-04-06 11:37:13如下: 二、配置环境变量 安装完成后,需要配置环境变量,便于我们开发。需要配置的环境变量有 GOROOT、Path、GOPATH 环境变量 说明 GOROOT 指定 SDK 安装的路径,也就是 GoLang 安装路径,本文是 C:\Program Files\... -
五步搞定Android开发环境部署——非常详细的Android开发环境搭建教程
2019-06-11 17:53:12在windows安装Android的开发环境不简单也说不上算复杂,本文写给第一次想在自己Windows上建立Android开发环境投入Android浪潮的朋友们,为了确保大家能顺利完成开发环境的搭建,文章写的尽量详细,希望对准备进入... -
ESP32开发一_开发环境
2022-03-06 16:23:50MCU芯片作为通用性基础器件,应用领域十分广泛。中国作为全球最大的消费电子制造中心,在汽车电子和物联网等领域快速发展,对MCU芯片的需求越来越大,也让国产MCU迎来发展良机。ESP32就是一款高性能、低成本的国产... -
ARM开发环境搭建
2021-09-18 16:30:461.下载E:\ARM开发\工具软件\ARM裸机开发工具\Yagarto工具包路径下两个程序 ...(注意:此操作win7环境下,win7以上还要有点其他步骤) 选择好就点你下一步 7.出现红色弹窗点 8.完成 9.在E:\ARM开发\工具 -
iOS开发环境:XCode
2022-01-30 16:06:12XCode是苹果公司提供的软件开发工具,它用来开发苹果电脑、手机和其它智能设备中使用的程序,它的安装和其它软件安装方法相同,直接在App Strore中安装就可以,因此这里就不做介绍,我们将重点介绍它提供的相关功能... -
VS2019 Qt开发环境搭建与配置
2020-08-15 01:07:19windows上Qt开发环境可以使用QtCreator, 也可以使用VS + Qt, VS开发调试功能强大,本篇介绍VS2019 + Qt5.14开发环境的配置, 其它版本的类似。 VS下载链接:https://visualstudio.microsoft.com/zh-hans/vs/ VS... -
手把手教你搭建Android开发环境
2022-02-19 22:02:05搭建开发环境,是学习一门技术的开始。 参照网上的教程,整理了一下。 进行Android开发应用开发时,首先需要有JDK和Android SDK 的支持,还需要开发工具。在Andriod Studio 2.2开始,安装Android Studio 时,会自动... -
eclipse搭建安卓开发环境
2019-01-10 17:06:03总结起来,Android开发环境搭建可以分为以下四步: 第一步、安装JDK; 第二步、安装Eclipse; 第三步、下载并安装AndroidSDK; 第四步、为Eclipse安装ADT插件 下面详细介绍。 第一步、安装JDK Android... -
Eclipse开发环境配置
2021-06-03 14:26:311、 java环境 安装 本系统使用java6开发,老师使用1.6.0 _45版本开发,如下图所示: 开发工具目录提供了1.6.0 _45版本32位和64位两个安装程序,大家根据自己电脑操作系统进行选择。(文章转载自乐字节) 双击运行... -
Python 全栈:Python 四种常用开发环境总结
2021-01-11 22:09:16PyCharm 是 Python 常用的集成开发环境,全称 Integrated Development Environment,简称 IDE,它本身无法执行 Python 代码。Python 解释器负责执行 Python 代码。可去 Python 官网下载指定版本... -
harmonyOS应用开发环境搭建
2022-01-13 15:15:11harmonyOS(鸿蒙)应用开发环境搭建