PlayStation 1 裸机 C 示例项目教程
1. 项目的目录结构及介绍
ps1-bare-metal/
├── CMakeLists.txt
├── README.md
├── assets/
├── examples/
│ ├── basic/
│ ├── gpu/
│ ├── irq/
│ ├── sound/
│ └── timer/
├── include/
│ ├── common.h
│ ├── gpu.h
│ ├── irq.h
│ ├── sound.h
│ └── timer.h
├── src/
│ ├── common.c
│ ├── gpu.c
│ ├── irq.c
│ ├── sound.c
│ └── timer.c
└── tools/
- CMakeLists.txt: 项目的构建配置文件。
- README.md: 项目说明文档。
- assets/: 存放项目所需的资源文件。
- examples/: 包含多个示例程序,如基本示例、GPU 示例、中断示例、声音示例和定时器示例。
- include/: 存放头文件,包括通用头文件、GPU 头文件、中断头文件、声音头文件和定时器头文件。
- src/: 存放源文件,包括通用源文件、GPU 源文件、中断源文件、声音源文件和定时器源文件。
- tools/: 存放项目所需的工具文件。
2. 项目的启动文件介绍
项目的启动文件通常位于 examples/
目录下,每个示例程序都有自己的启动文件。例如,examples/basic/
目录下的 main.c
文件是基本示例的启动文件。
// examples/basic/main.c
#include <common.h>
void main() {
// 初始化代码
// ...
// 主循环
while (1) {
// 主循环代码
// ...
}
}
3. 项目的配置文件介绍
项目的配置文件主要是 CMakeLists.txt
,它定义了项目的构建规则和依赖关系。
# CMakeLists.txt
cmake_minimum_required(VERSION 3.10)
project(ps1-bare-metal)
# 设置编译器
set(CMAKE_C_COMPILER "mipsel-none-elf-gcc")
# 包含目录
include_directories(include)
# 源文件
file(GLOB_RECURSE SRC_FILES src/*.c)
# 示例程序
file(GLOB_RECURSE EXAMPLE_FILES examples/*/*.c)
# 添加可执行文件
foreach(EXAMPLE_FILE ${EXAMPLE_FILES})
get_filename_component(EXAMPLE_NAME ${EXAMPLE_FILE} NAME_WE)
add_executable(${EXAMPLE_NAME} ${EXAMPLE_FILE} ${SRC_FILES})
endforeach()
这个配置文件定义了编译器、包含目录、源文件和示例程序的构建规则。通过 CMakeLists.txt
,可以方便地添加新的示例程序和源文件。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考