# MyOS **Repository Path**: yecr/MyOS ## Basic Information - **Project Name**: MyOS - **Description**: 毕业设计子模块之一: 1.将硬件支持的专用指令封装成库函数; 2.为MyCNN提供其他必要的支持; 3.现阶段MyOS事实上仅仅是MylibC。 - **Primary Language**: C - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-01-14 - **Last Updated**: 2022-06-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MyOS #### 介绍 毕业设计子模块之一: 1.将硬件支持的专用指令封装成库函数; ```sh //使用以下这两个函数,将直接调用MyCPU提供的对应的专用硬件 unsigned int ByteFloatMul(unsigned short BF1, unsigned short BF2); unsigned int ByteFloatAdd(unsigned int BF1, unsigned int BF2); ``` 2.为MyCNN提供其他必要的支持,例如printf函数等; #### 编译得到bin文件 安装好riscv编译工具链、设置好AM_HOME之后,直接输入: ```sh make ARCH=riscv64-mycpu ``` 即可在build文件夹中找到用AM编译套件编好的、基于RV64I和少数自定义指令的、可以运行在MyCPU上面的裸机小程序(.bin),以及用于调试的反汇编(.txt)。 include中包含一些可能用到的函数,大致相当于微型Mylibc. #### 上处理器运行 执行MyCPU仓库中编出来的emu,再用-i参数加载本仓库编好的bin文件,即可再MyCPU之上运行C编写的裸机小程序: ```sh ../MyCPU/build/emu -i ./build/myos-riscv64-mycpu.bin ``` 参考输出如下: ```sh Emu compiled at Mar 18 2022, 22:24:23 key num:0 share memory id:1212470 The image is ./build/myos-riscv64-mycpu.bin Using simulated 256MB RAM --diff is not given, try to use $(NEMU_HOME)/build/riscv64-nemu-interpreter-so by default Using /home/yecr/ByteFloat/MyCPU/NEMU/build/riscv64-nemu-interpreter-so for difftest The first instruction of core 0 has commited. Difftest enabled. ----------------------------------- Here is MyArch ----------------------------------- model pred is 7, right ans is 7 Core 0: HIT GOOD TRAP at pc = 0x80000ec4 total guest instructions = 8,713,152 instrCnt = 8,713,152, cycleCnt = 25,968,747, IPC = 0.335525 Seed=0 Guest cycle spent: 25,968,749 (this will be different from cycleCnt if emu loads a snapshot) Host time spent: 13,434ms ```