以ARM为例ecos HAL代码树:
packages/hal/.
|-- common //Common HAL
| `-- v3_0
| |-- ChangeLog
| |-- cdl
| | |-- common.cdl
| | |-- debugging.cdl
| | |-- hal.cdl
| | `-- interrupts.cdl
| |-- doc
| | |-- hal.sgml
| | `-- porting.sgml
| |-- include
| | |-- dbg-thread-syscall.h
| | |-- dbg-threads-api.h
| | |-- drv_api.h
| | |-- generic-stub.h
| | |-- hal_arbiter.h
| | |-- hal_endian.h
| | |-- hal_if.h
| | |-- hal_misc.h
| | |-- hal_spd.h
| | |-- hal_stub.h
| | `-- hal_tables.h
| |-- src
| | |-- board.h
| | |-- bplist-dynamic.c
| | |-- dbg-threads-syscall.c
| | |-- drv_api.c
| | |-- dummy.c
| | |-- gdb-fileio.c
| | |-- gdb-fileio.h
| | |-- generic-stub.c
| | |-- hal_if.c
| | |-- hal_misc.c
| | |-- hal_stub.c
| | |-- stubrom
| | | `-- stubrom.c
| | |-- thread-packets.c
| | `-- thread-pkts.h
| `-- tests
| |-- basic.c
| |-- cache.c
| |-- context.c
| |-- cpp1.c
| |-- intr.c
| `-- vaargs.c
|-- arm //Architecture HAL
| |-- arch
| | `-- v3_0
| | |-- ChangeLog
| | |-- cdl
| | | `-- hal_arm.cdl
| | |-- include
| | | |-- arch.inc
| | | |-- arm_stub.h
| | | |-- basetype.h
| | | |-- hal_arch.h
| | | |-- hal_intr.h
| | | |-- hal_io.h
| | | `-- hal_mmu.h
| | `-- src
| | |-- arm.ld
| | |-- arm_stub.c
| | |-- context.S
| | |-- hal_misc.c
| | |-- hal_mk_defs.c
| | |-- hal_syscall.c
| | |-- redboot_linux_exec.c
| | `-- vectors.S
| |-- arm9
| | |-- var //Variant HAL
| | `-- v3_0
| | |-- ChangeLog
| | |-- cdl
| | | `-- hal_arm_arm9.cdl
| | |-- include
| | | |-- hal_cache.h
| | | `-- var_io.h
| | `-- src
| | `-- arm9_misc.c
| | |-- aaed2000 //Platform HAL
| | | `-- v3_0
| | | |-- ChangeLog
| | | |-- cdl
| | | | `-- hal_arm_arm9_aaed2000.cdl
| | | |-- include
| | | | |-- aaed2000.h
| | | | |-- hal_diag.h
| | | | |-- hal_platform_ints.h
| | | | |-- hal_platform_setup.h
| | | | |-- lcd_support.h
| | | | |-- pkgconf
| | | | | |-- mlt_arm_arm9_aaed2000_ram.h
| | | | | |-- mlt_arm_arm9_aaed2000_ram.ldi
| | | | | |-- mlt_arm_arm9_aaed2000_ram.mlt
| | | | | |-- mlt_arm_arm9_aaed2000_rom.h
| | | | | |-- mlt_arm_arm9_aaed2000_rom.ldi
| | | | | |-- mlt_arm_arm9_aaed2000_rom.mlt
| | | | | |-- mlt_arm_arm9_aaed2000_romram.h
| | | | | |-- mlt_arm_arm9_aaed2000_romram.ldi
| | | | | `-- mlt_arm_arm9_aaed2000_romram.mlt
| | | | |-- plf_io.h
| | | | `-- plf_stub.h
| | | |-- misc
| | | | |-- redboot_primary_RAM.ecm
| | | | |-- redboot_primary_ROMRAM.ecm
| | | | |-- smpeg.ecm
| | | | |-- toyota_fullscr.ecm
| | | | `-- toyota_window.ecm
| | | `-- src
| | | |-- aaed2000_misc.c
| | | |-- banner.xpm
| | | |-- font.h
| | | |-- hal_diag.c
| | | |-- kbd_drvr.c
| | | `-- lcd_support.c
官方架构图片: