# osal **Repository Path**: hchunglin/osal ## Basic Information - **Project Name**: osal - **Description**: 对TI的zigbee协议栈中的osal系统抽取并进行了简化,以便于移植到其他平台的MCU中 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-03-26 - **Last Updated**: 2026-03-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # OSAL 轻量级事件驱动多任务内核,适用于裸机平台移植(如 STM32)。 ## 功能模块 | OSAL接口 | 说明 | | -- | -- | | Message Management API | 消息管理 | | Task Synchronization API | 任务同步 | | Timer Management API | 定时器管理 | | Memory Management API | 内存管理 | ## 裸机移植步骤 1. 配置[osal/osal_config.h](osal/osal_config.h)(滴答周期、内存池、临界区宏、对齐类型)。 2. 完成[hal/timer.c](hal/timer.c)硬件定时器初始化/启停,并在定时器中断中调用`OSAL_TIMER_TICKISR()`。 3. 按需调整[osal/osal_memory.h](osal/osal_memory.h)(内存池大小、统计开关)。 4. 按优先级添加任务(数值越大优先级越高)。 API 使用参考 doc 下《OSAL_API.pdf》。 ## 动态内存扩展(可选) OSAL中默认使用15位的数据标识管理内存,最大能管理32768字节,需要增加管理更多的动态内存可按照以下方式拓展: 1. 注释掉osal_memory.c中的内存大小编译限制; 2. 替换osal_memory.c中的全部uint16为osalMemHdr_t; 3. 修改osal_memory.h中的osalMemHdr_t类型宏为halDataAlign_t,确保芯片字长halDataAlign_t为32bit; 4. 修改osal_memory.c中的宏定义OSALMEM_IN_USE为0x80000000; ## 编译与运行(Linux 示例) 编译: ```shell make ``` 运行: ```shell ./linux-osal-example.elf ```