1 Star 8 Fork 3

Quard / vexpress_v2p_ca9

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
BSD-3-Clause

CI CodeFactor License

vexpress_v2p_ca9

基于arm的vexpress_v2p_ca9x4开发板编写的裸机工程项目,可以使用qemu模拟器运行,旨在深入学习实践启动文件,多核管理,cache,mmu等相关内容以及学习使用Rust语言开发底层驱动。

开发记录

  • 2021.03.22 建立工程,基本的串口打印正确。
  • 2021.03.24 增加多核boot代码。
  • 2021.04.11 MMU配置起来,目前是直接平面映射的。
  • 2021.05.03 FreeRTOS初步移植完成(目前仅在单核上运行)。
  • 2021.06.13 初步规划内存映射如下图,初步完成MMU配置,目前整个程序完全使用虚拟地址,不再使用物理地址,为后续实现用户进程准备。
  • 2021.06.20 粗略的编写的任务的页表建立和上下文中页表切换,需改进,后续需要完善页表内存的分配策略、使用ttbr1固化内核部分的页表项、二级页表的规划等。(内存分配有的麻烦,不希望把这个做的太复杂,我又不是想重写一个像linux内核一样的轮子,希望能轻量化实现用户态,另外考虑不使用elf文件做用户态的可执行程序,一切往轻量化走,另外驱动也想设计成灵活的用户态程序,不丢在内核里,目前考虑最好的办法由内核暴露地址映射给用户态驱动,哎,进程通讯又是个麻烦,这个内核代码设计要打破常规,彻底抛弃旧有的用户态,驱动等体系设计)
+----------------------+ 0xFFFFFFFF  <------------+
|                      |                          |
|                      |                          |
|    PERIPH            |                          |
|                      |                          |
|                      |                          |
+----------------------+ 0xF0000000               |
|                      |                          |
|                      |                          |
|                      |                          |
+----------------------+                          |
|    SRAM  (32M)       |                          |
+----------------------+ 0xE0000000               | KERNEL(1G)
|                      |                          |
|                      |                          |
| DDR high addr (512M) |                          |
|                      |                          |
|                      |                          |
+----------------------+ 0xD0000000               |
|                      |                          |
|                      |                          |
| DDR low addr  (512M) |                          |
|                      |                          |
|                      |                          |
+----------------------+ 0xC0000000  <------------+
|                      |                          |
|                      |                          |
|                      |                          |
|                      |                          |
|                      |                          |
|                      |                          |
|                      |                          |
|                      |                          |
|                      |                          |
|                      |                          |
|         3G           |                          | USER(3G)
|                      |                          |
|                      |                          |
|                      |                          |
|                      |                          |
|                      |                          |
|                      |                          |
|                      |                          |
|                      |                          |
|                      |                          |
|                      |                          |
+----------------------+ 0x00000000  <------------+
  • 2022.01.14 最近打算继续更新这个项目,先移植个简单的CLI程序
         _______  _______  _______  _______   _____  
|\     /|/ ___   )(  ____ )(  ____ \(  ___  ) / ___ \ 
| )   ( |\/   )  || (    )|| (    \/| (   ) |( (   ) )
| |   | |    /   )| (____)|| |      | (___) |( (___) |
( (   ) )  _/   / |  _____)| |      |  ___  | \____  |
\ \_/ /  /   _/  | (      | |      | (   ) |      ) |
 \   /  (   (__/\| )      | (____/\| )   ( |/\____) )
  \_/   \_______/|/       (_______/|/     \|\______/ 
2022 by 2014500726@smail.xtu.edu.cn
Welcome debugging vexpress_v2p_ca9 project!
V2PCA9@FreeRTOS>help
help:			Lists all the registered commands
version:		showing version
uname:			Echos uname in turn
echo:			Echos each in turn
ps:			showing the state of each FreeRTOS task
free:			showing the mem of each FreeRTOS heap
V2PCA9@FreeRTOS>
BSD 3-Clause License Copyright (c) 2021, 扣扣小明 All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

简介

基于arm的vexpress_v2p_ca9x4开发板编写的裸机工程项目,可以使用qemu模拟器运行,旨在深入学习实践启动文件,多核管理,cache,mmu等相关内容以及学习使用Rust语言开发底层驱动。计划开发一个轻量化的操作系统微内核,打破传统的设计思路。 展开 收起
BSD-3-Clause
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
C
1
https://gitee.com/QQxiaoming/vexpress_v2p_ca9.git
git@gitee.com:QQxiaoming/vexpress_v2p_ca9.git
QQxiaoming
vexpress_v2p_ca9
vexpress_v2p_ca9
main

搜索帮助