本文以 stm32f103ze 為例,介紹了 awtk 在 rtos 上移植的經驗。與其說移植,倒不如說是整合。因為 rtos 通常沒有提供標準的 lcd 驅動介面,顯示部分並不需要特別的改動。所做的事情不過是把 awtk 放到 rtos 的乙個執行緒中執行而已。
awtk 已經移植到 stm32f103ze 裸系統上,為了簡單起見,直接在 awtk-stm32f103ze-raw 基礎上加入 tos 支援。
tencentos/kernel/core/tos_event.c
tencentos/kernel/core/tos_fifo.c
tencentos/kernel/core/tos_global.c
tencentos/kernel/core/tos_mmblk.c
tencentos/kernel/core/tos_mmheap.c
tencentos/kernel/core/tos_msg.c
tencentos/kernel/core/tos_mutex.c
tencentos/kernel/core/tos_pend.c
tencentos/kernel/core/tos_queue.c
tencentos/kernel/core/tos_robin.c
tencentos/kernel/core/tos_sched.c
tencentos/kernel/core/tos_sem.c
tencentos/kernel/core/tos_sys.c
tencentos/kernel/core/tos_task.c
tencentos/kernel/core/tos_tick.c
tencentos/kernel/core/tos_time.c
tencentos/kernel/core/tos_timer.c
tencentos/kernel/pm/tos_pm.c
tencentos/kernel/pm/tos_tickless.c
tencentos/arch/arm/arm-v7m/common/tos_cpu.c
tencentos/arch/arm/arm-v7m/common/tos_fault.c
tencentos/arch/arm/arm-v7m/cortex-m3/armcc/port_c.c
tencentos/arch/arm/arm-v7m/cortex-m3/armcc/port_s.s
tencentos/arch/arm/arm-v7m/common/include
tencentos/arch/arm/arm-v7m/cortex-m3/armcc
tencentos/kernel/core/include
tencentos/kernel/hal/include
tencentos/kernel/pm/include
tencentos/tos-config
根據自己的需要修改配置 tencentos/tos-config/tos_config.h:
一般來說不需要修改,使用官方提供的即可。我用的是 tencentos-demo 專案中的。
src/platforms/tos/mutex.c
src/platforms/tos/semaphore.c
src/platforms/tos/thread.c
src/platforms/common/sys_tick.c
主要就是 systick 中斷的實現,從 tencentos-demo 中拷貝過來就行了。
ret_t rtos_init(void)
ret_t rtos_start(void)
void rtos_tick(void)
}void rtos_delay(uint32_t ms)
void* awtk_thread(void* args)
static ret_t awtk_start_ui_thread(void)
int main()
這裡與裸系統不同的地方,主要有兩個:
要提前呼叫 platform_prepare,platform_prepare 負責初始化記憶體,放在 tk_init 中就有些晚,需要單獨提出來呼叫。
為此 platform_prepare 函式做了防重複呼叫的處理。
static bool_t s_inited = false;
static uint32_t s_heam_mem[4096];
ret_t platform_prepare(void)
return ret_ok;
}
awtk 整合 rtos 是非常簡單的,以上過程大概花了 2 個小時吧。只要 rtos 本身好移植,整合 awtk 和 rtos 只是分分鐘的問題。 AWTK 在 RT Thread 上的移植筆記
本文以 stm32f103ze 為例,介紹了 awtk 在 rtos 上移植的經驗。與其說移植,倒不如說是整合。所做的事情不過是把 awtk 放到 rtos 的乙個執行緒中執行而已。awtk 已經移植到 stm32f103ze 裸系統上,為了簡單起見,直接在 awtk stm32f103ze raw...
Boot在ADSP BF533上的移植
日期 2008 12 10 字型 大 中 小 將u boot移植到blackfin系列的dsp之上,發揮出u boot這一bootloader所具有的優勢,在基於dsp晶元的嵌入式系統的後續開發中,降低開發難度,縮短開發周期。本文將介紹u boot在adsp bf533上移植的實現過程。1 移植例項...
SDL在pc上的安裝與移植
sdl在pc上的安裝於移植 pc機1.在usr下面建立乙個sdl資料夾,把sdl的壓縮包放在sdl資料夾下,解壓sdl壓縮包,並進入sdl包。root localhost cd usr sdl root localhost sdl ls sdl 1.2.15.tar.gz root localhos...