4000336002

中公优就业it培训学校天津校区

天津10大推荐受欢迎的嵌入式开发培训机构名单榜首一览

来源:中公优就业it培训学校天津校区 发布时间:2023/9/22 15:33:46

    天津10大推荐受欢迎的嵌入式开发培训机构名单榜首一览,小编推荐中公优就业.中公优就业是中公教育IT培训品牌,致力于培养面向电商及互联网领域的人才,以学员就业为目的,优质就业为宗旨,是一家集互联网营销师,UI设计培训,?SEO优化师,SEM竞价师,社会化媒体运营师,电商运营师,互联网产品经理,网页设计师,Web前端工程师,PHP工程师,Android工程师,iOS工程师,Java工程师,C/C++工程师,软件测试工程师等课程为一体的IT培训机构.

    3.1 移植代碼

  (1)μC/OS-Ⅱ與CPU類型無關的代碼有μC/OS-Ⅱ.H,μC/OS-Ⅱ.C,OS_CORE.C,OS_TASK.C,OS_TIME.C,OS_SEM.C,OS_MBOX.-C,OS_MUTEX.C,OS_FLAG.C,也就是說這些文件可以不用修改就直接添加。

  (2)μC/OS-Ⅱ與CPU類型有關的代碼有OSCPU.H,OS_CPU_A.ASM,OS_CPU_C.C,也就是說用戶需要根據所選CPU的類型將這些函數進行修改後才能添加入內核。

  3.2 OS_CPU.H文件的定義與修改

  OS_CPU.H文件定義了與編譯器及CPU相關的數據類型、堆棧的寬度和增長方式以及開關中斷的宏定義。由於微處理器和微控制器所支持的堆棧增長方式不同,這裏需要根據所選芯片LPC2378支持的類型對宏OS_STK_GRWOTH進行定義,由於ARM7 TD-MI-S內核堆棧支持從上往下的生長方式,所以應做如下定義:

  #define OS_STK_GROWTH 1 //堆棧是從上往下長的OS_CPU.H文件中另外3個宏OS_CRITICAL_METHOD,OS_ENTER_CRITICAL(),OS_EXIT_CRITICAL()用於定義開關中斷的方式及開關中斷的實現。通過調用開關中斷2個宏來保護臨界代碼如下:

  3.3 OS_CPU_C.C文件中主要函數的定義及編寫

  OS_CPU_C.C中要求用戶編寫10個簡單的函數:

  結合要移植的CPU內核的硬件和寄存器特性,簡要對任務堆棧初始化函數進行分析和創建:

  其他9個函數必須聲明,但並不一定包含任務代碼。

  3.4 μC/OS-Ⅱ的移植

  μC/OS-Ⅱ的移植,還要求編寫4個簡單的彙編語言函數;即OSStartHighRdy(),OSintCtxSw(),OSTIckISR(),OSCtxSw()。

  3.4.1 函數OSStart()調用OSStartHighRdy()

  函數OSStart()用於調用OSStartHighRdy(),以使使就緒態任務中優先級较高的任務開始運行:

  3.4.2 時鍾節拍中斷服務程序

  μC/OS-Ⅱ要求用戶提供一個周期性的時鍾源,以實現時間延遲和超時確認功能,時鍾節拍每秒發生10~100次。必須在開始多任務後,啟動時鍾節拍中斷,但由於Osatart()函數不會返回,用戶無法實現這一操作,所以可以在OSStart()運行之後,μC/OS啟動的第1個任務中初始化節拍中斷。基於LPC2378移植下OSTicklSR()的簡易代碼編寫如下:

  當時鍾節拍中斷發生時,CPU會自動把CPU寄存器推入堆棧,但並不包括存儲頁面寄存器PPAGE,如果單片機系統的尋址范圍超過64 KB,則需要通過給PPAGE賦值來區分不同的16 KB地址,需要把PPAGE也推入堆棧。當某任務的任務控制塊中時間延時項OSTCBDly減到了零,OSTi-mtick()就進入了就緒態。OSIntExit()會調用中斷級的任務切換函數OSIntCtxSw執行任務切換,而不再執行後面的指令。如果沒有更高優先級的任務進入就緒態,則CPU會返回中斷前狀態。

  3.4.3 任務級任務切換

  實際上任務級的切換就是通過執行軟中斷指令,或者根據處理器的不同,執行TRAP指令來實現。中斷服務子程序、TRAP或者異常處理的向量地址必須指向OSCtXSW(),利用系統在跳轉到中斷服務程序時會自動把斷點指針壓入堆棧的功能,把斷點指針存入堆棧,而利用中斷返回指令IRET,能把斷點指針推入CPU的PC寄存器功能,恢複待運行任務的斷點,這樣就可以實現斷點的保存和恢複。

领取试听课
每天限量名额,先到先得
温馨提示:为不影响您的学业,来校区前请先电话或QQ咨询,方便我校安排相关的专业老师为您解答
  • 详情请进入 中公优就业it培训学...

关于我们 | 招生信息 | 新闻中心 | 学校动态

版权所有:搜学搜课(www.soxsok.com)