前段時間,成功的把redboot移植到了stm32板子上,並留下了一個疑問:既然redboot是ecos的一個單線程應用,那麼不要redboot而直接運行ecos的應用程式是否可行呢?對這個問題,結合我對ecos的瞭解,理論上是可行的,因為它們都是採用相同的HAL(硬體抽象層)。
帶著這個疑問,我想採用兩種方式把最簡單的helloworld應用程式在stm32板子上跑起來:先使用前面移植成功的redoot引導啟動記憶體中的ecos應用程式(即helloworld應用程式),因為我現在所開發的項目中就可使用這種方式啟動運行應用程式,故這種方式不存在任何問題,因為我現在所開發的項目中就可使用這種方式啟動運行應用程式;在此基礎上,使用另一種方式來啟動helloworld應用程式,即把應用程式直接燒寫到STM32內部flash中直接運行。
經過一段時間的努力和折騰,上述這兩種方式都驗證OK,同時證明了,ecos應用程式可以不需要redboot引導啟動,而可直接從stm32內部flash啟動運行。我把這個移植過程記錄成了文章,放在了我的部落格中。由於內容較多,就不貼在這裡了,如果有興趣的朋友,可進我的部落格中瞭解,下面是連結:
stm32移植ecos
#7,移植ecos並成功運行helloworld程式,配置編譯產生靜態連結庫檔案
stm32移植ecos #8,移植ecos並成功運行helloworld程式,編譯連結產生helloworld程式
stm32移植ecos #9,移植ecos並成功運行helloworld程式,使用redboot引導運行記憶體中的helloworld程式
stm32移植ecos #10,移植ecos並成功運行helloworld程式,燒寫到內部flash直接運行helloworld程式
為了簡單起見,ecos應用程式為最簡單的helloworld程式。
接下來,我想實現:使用redboot引導啟動flash中的ecos應用程式。不過,目前遇到了一些問題。等弄好了,再分享出來。另外,如果有對ecos感興趣的,可以加eCos QQ群:144940146。