在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<abbr id="27omo"></abbr>

<menu id="27omo"><dl id="27omo"></dl></menu>
    • <label id="27omo"><tt id="27omo"></tt></label>

      新聞中心

      EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > ucOS-II移植到S3C2410筆記之一

      ucOS-II移植到S3C2410筆記之一

      作者: 時間:2016-11-11 來源:網(wǎng)絡(luò) 收藏
      1: 問題: 移植匯編函數(shù):OSStartHighRdy, 如下,但發(fā)現(xiàn)只有OS_TaskIdle一個任務(wù)時,都不能正確運(yùn)行。
      .globl OSStartHighRdy
      .type OSStartHighRdy, %function
      OSStartHighRdy:

      /* C variable OSRunning = TRUE */

      mov r0, #1
      ldr r1, =OSRunning
      str r0, [r1]

      /* get the stack pointer of task that will be running. */
      ldr r5, =OSTCBHighRdy /* R0= the address of pointer variable OSTCBHighRdy */
      ldr r6, [r5] /* R1= the the value of pointer variable OSTCBHighRdy= OS_TCB(TaskIdle) */
      ldr r7, [r6] /* R2= the value of pointer variable OS_TCB->OSTCBStkPtr, the value is address*/
      /*ldr r8, [r7]*/ /* R3= the value of pointer*/

      mov sp, r7 /* restore SP*/

      ldr r1, [sp, #0]
      msr cpsr, r1 /* restore CPSR */

      add sp, sp, #4 /* pointer to R0 location */
      ldmia sp!,{r0-r12, lr, pc} /* restore R0-R12, LR, PC */

      2:實(shí)驗(yàn),刪掉如下代碼(OSRunning=1,即上面紅色部分代碼)后,系統(tǒng)正常。

      3:分析
      說明系統(tǒng)是在執(zhí)行OSRunning=1對應(yīng)的匯編代碼出現(xiàn)異常,于是查看變量OSRunning的定義:
      ucos_ii.h:451:OS_EXT BOOLEAN OSRunning;
      再查看BOOLEAN的原始類型:
      os_cpu.h:42:typedef unsigned char BOOLEAN;
      即變量OSRunning是unsigned char類型,至此,問題的原因已經(jīng)找到,即錯誤的使用了匯編指令。
      因?yàn)閰R編訪問C語言的變量時,需要根據(jù)變量的類型,而確定其匯編指令,這里應(yīng)該使用:ldrb/strb
      4: 修正后的代碼
      mov r0, #1
      ldrb r1, =OSRunning
      strb r0, [r1]
      5: 總結(jié)
      匯編在訪問C語言的變量時,需要根絕變量的類型使用不同的匯編指令:

      unsigned char -----------------------> LDRB/STRB
      unsigned short -----------------------> LDRH/STRH
      unsigned int -----------------------> LDR/STR
      char -----------------------> LDRSB/STRSB
      short -----------------------> LDRSH/STRSH


      關(guān)鍵詞: ucOS-II移植S3C241

      評論


      相關(guān)推薦

      技術(shù)專區(qū)

      關(guān)閉