目标依赖文件
为了最大化复用代码,RTEMS目标相关代码分为三个层次
CPU相关
板子相关
外设相关
2.1 CPU相关
具体代码在cpukit/score/cpu,可以把no_cpu作为起点来学习,里面有详细的注释和介绍。这个部分只关心在GCC编译时会有区别的部分,尽管有很多CPU,但是实际上CPU核心代码的数量其实不多的。RTEMS_CPU规定了使用的CPU模型。
2.2 板子相关
这部分代码的作用是作为RTEMS和某个具体的板子的粘合剂,也就是驱动。具体代码在cpu/src/lib/bsp, 一个BSP可以适用于多个板子,根据我之前的理解
2.3 外设相关的
这部分代码的作用是剪裁可复用的代码来适应特定的板子。libchip库就是一个标准控制器的可复用集合。具体代码在c/src/lib/libchip
2.4 开发前需要先问问自己的问题
这个BSP是否已经存在了?
是否有相似的BSP存在了?
这个板子的CPU是否已经支持了?
2.5 CPU相关的执行文件
这一部分代码在cpukit/score/cpu/CPU,CPU.h包含了所需要用到的信息。
2.6 CPU相关的支持文件
这部分代码一般会提供开发帮助。比如,支持文件会提供,标准中断函数,或者浮点错误,或者由CPU自己控制的外设,这部分代码一般在c/src/lib/libcpu/CPU
如果是和CPU模型相关的,一般在c/src/lib/libcpu/CPU/CPU_MODEL
configure.ac在每个c/src/lib/libcpu/CPU里面包含了应该被运用的子目录
2.7 BSP结构
BSP都放在了 c/src/lib/libbsp里面, 里面的子文件如果是常用的功能,需要按照文中列出的几个名字来命名。