网站大量收购独家精品文档,联系QQ:2885784924

AStudyonAsymmetricOperatingSystemsonSymmetric-RSWiki.ppt

  1. 1、本文档共35页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
AStudyonAsymmetricOperatingSystemsonSymmetric-RSWiki

OS_CPU_A.asm OSIntCtxSw 由於僅有第一行與OSCtxSw不相同,因此在切換mode之後,可以直接呼叫OSCtxSw SP調整 由於每個mode下都有各自的stack,並且在access其他mode的data會受到限制,加上每個task都有各自的stack,因此,mode和stack的關係要十分清楚,否則此處調整SP會有極大的機率造成錯誤 / * OS_CPU_A.asm 若是要利用第2種方法(設旗標) 則在OSIntCtxSw中 保存處理器暫存器; LDR R4, =needCtxSw MOV R5, #0x1 STR R5, [R4] 將所有處理器暫存器從新 task 的堆疊中恢復出來;? 執行中斷返回指令; 在TickISR中(在OSIntExit之後) LDR R4, =needCtxSw LDR R4, [R4] CMP R4, #1 BEQ OSCtxSw / * OS_CPU_C.c OSTaskStkInit()、OSTaskCreateHook()、OSTaskDelHook()、OSTaskSwHook()、OSTaskStatHook()、OSTimeTickHook() Hook主要用來進行功能擴展 OSTaskStkInit() 對於task stack進行初始化動作 / * Conclusion OS_CPU.h 須查閱spec,並且在porting過程中需不斷加上新的變數值或是新的函式 Bootloader在porting過程中也需要修改,例如加入新的handler以及加入新的中斷向量 OSIntCtxSw 和 OSTickISR與暫存器的設置有關 Mode Stack / * Conclusion / * Q A Thanks / * * * /24 Presenter:Wytai * / Date:06/04 Porting uC/OS-II to XSBase255 Outline Introduction Porting overview OS_CPU.h OS_CPU_A.asm OS_CPU_C.c Conclusion * / Introduction Preparation uC/OS-II source code / V.2.86 Porting file / V.1.50 ADS or GNU Hardware XSBase255 Hardware Spec Compiler Spec ARM assembly knowing / * Introduction Porting = bootloader + OS Bootloader Initialize hardware, vectors, memory, stack, register value There are two ways 分開成兩個檔案(bin),bootloader裡面要設定OS Image存放的位址(OS入口),需要兩者一致方可成功啟動OS 合成一個bin檔,在bootloader執行完以後,透過跳轉__main進入OS入口 / * Introduction Hardware limit 處理器的 C 編譯器能產生可重入程式碼。 用 C 語言就可以打開和關閉中斷。 處理器支援中斷,並且能產生定時中斷 (通常在 10 至 100Hz 之間)。 處理器支援能夠容納一定數量的資料的硬體堆疊 (可能是幾千位元組)。 處理器有將堆疊指標和其他 CPU 暫存器讀出和存儲到堆疊或記憶體中的指令。 Ex Motorola 6805 : 4,5 / * Overview / * Overview OS_CPU.h Define some reg value and datatype OS_CPU_A.asm OSStartHighRdy() OSCtwSw() OSTickISR() OSIntCtxSw() OS_CPU_C.c OSTaskStkInit()、OSTaskCreateHook()、OSTaskDelHook()、OSTaskSwHook()、OSTaskStatHook()、OSTimeTickHook() / * OS_CPU.h Compiler dependent(請查看compiler手冊) typedef unsigned char BOOLEAN; typedef unsigned char INT8U; typedef signed char INT8S; typedef unsigned short INT16U; typedef signed short INT16S; typede

文档评论(0)

daoqqzhuan2 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档