AWTK 在騰訊 TOS 上的移植筆記

2021-09-29 11:31:56 字數 2479 閱讀 3936

本文以 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...