[![CI](https://github.com/QQxiaoming/vexpress_v2p_ca9/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/QQxiaoming/vexpress_v2p_ca9/actions/workflows/ci.yml)
[![CodeFactor](https://www.codefactor.io/repository/github/qqxiaoming/vexpress_v2p_ca9/badge)](https://www.codefactor.io/repository/github/qqxiaoming/vexpress_v2p_ca9)
[![License](https://img.shields.io/github/license/qqxiaoming/vexpress_v2p_ca9.svg?colorB=f48041&style=flat-square)](https://github.com/QQxiaoming/vexpress_v2p_ca9)
# 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>
```
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
毕设&课设&项目&实训-基于arm的vexpress_v2p_ca9x4开发板编写的裸机工程项目,可以使用qemu模拟器运行 【项目资源】: 包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。 包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。
资源推荐
资源详情
资源评论
收起资源包目录
基于arm的vexpress_v2p_ca9x4开发板编写的裸机工程项目,可以使用qemu模拟器运行,旨在深入学习实.zip (92个子文件)
资料总结
freertos
include
croutine.h 25KB
mpu_prototypes.h 11KB
list.h 18KB
stack_macros.h 6KB
projdefs.h 5KB
StackMacros.h 6KB
queue.h 59KB
portable.h 6KB
timers.h 57KB
task.h 94KB
event_groups.h 29KB
deprecated_definitions.h 7KB
semphr.h 46KB
message_buffer.h 36KB
stdint.readme 823B
FreeRTOS.h 36KB
stream_buffer.h 37KB
mpu_wrappers.h 9KB
stream_buffer.c 41KB
event_groups.c 25KB
queue.c 91KB
tasks.c 164KB
portable
GCC
ARM_CA9
port.c 21KB
portASM.s 9KB
portmacro.h 8KB
MemMang
ReadMe.url 119B
heap_1.c 5KB
heap_3.c 3KB
heap_4.c 14KB
heap_5.c 15KB
heap_2.c 10KB
list.c 8KB
timers.c 39KB
readme.txt 806B
croutine.c 13KB
mmu_ARMCA9.c 5KB
cstartup.s 14KB
.github
dependabot.yml 111B
workflows
ci.yml 2KB
doc
DDI0388I_cortex_a9_r4p1_trm.pdf 1.43MB
DUI0447J_v2m_p1_trm.pdf 930KB
DDI0183G_uart_pl011_r1p5_trm.pdf 580KB
DDI0406C_d_armv7ar_arm.pdf 17.78MB
DDI0293.pdf 738KB
DDI0407I_cortex_a9_mpcore_r4p1_trm.pdf 994KB
DUI0448I_v2p_ca9_trm.pdf 622KB
DEN0013D_cortex_a_series_PG.pdf 4.13MB
Makefile 8KB
LICENSE 1KB
gdb.script 19B
v2p_ca9.lds 4KB
rust_core_lib
rust_core.rs 108B
.gitignore 15B
FreeRTOSConfig.h 8KB
debug_log
debug_log.h 3KB
debug_log.c 12KB
debug_log_config.h 671B
debug_assert.h 946B
driver
v2p_uart.c 4KB
v2p_core.h 110B
qemu_virio.h 145B
v2p_uart.h 253B
v2p_core.c 5KB
qemu_virio.c 5KB
cli
FreeRTOS_CLI.c 13KB
UARTCommandConsole.c 35KB
FreeRTOS_CLI.h 5KB
UARTCommandConsole.h 1KB
port
serial.h 2KB
serial.c 3KB
cmsis
include
cmsis_armcc.h 15KB
cmsis_iccarm.h 16KB
irq_ctrl.h 8KB
cmsis_gcc.h 27KB
cmsis_cp15.h 12KB
cmsis_compiler.h 6KB
core_ca.h 105KB
cmsis_armclang.h 19KB
source
irq_ctrl_gic.c 9KB
v2p_ca9_system.h 11KB
test_cli.c 3KB
system_ARMCA9.c 1KB
.gitignore 16B
usr_sample
hello_world
hello_world.c 36B
hello_word.lds 229B
.gitignore 77B
build.sh 720B
main.c 5KB
README.md 5KB
rust_src
rust_test.rs 2KB
rust_uart.rs 2KB
debug_log_rs.rs 2KB
共 92 条
- 1
资源评论
妄北y
- 粉丝: 1w+
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- Highlight Plus v20.0.1
- 基于MIC+NE555光敏电阻的声光控电路Multisim仿真原理图
- python tkinter-08-盒子模型.ev4.rar
- Doozy UI Manager 2023
- 基于matlab实现夜间车牌识别程序(1).rar
- 基于matlab实现无线传感器网络无需测距定位算法matlab源代码 包括apit,dv-hop,amorphous在内的共7个
- 基于python的yolov5实现的旋转目标检测
- 基于matlab实现无线传感器网络 CAB定位仿真程序 这是无线传感器节点定位CAB算法的仿真程序,由matlab完成.rar
- 基于matlab实现图像处理,本程序使用背景差分法对来往车辆进行检测和跟踪.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功