新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > GNU ARM匯編--(十四)GNU ARM匯編下做任務調度

        GNU ARM匯編--(十四)GNU ARM匯編下做任務調度

        作者: 時間:2016-11-26 來源:網絡 收藏
        [cpp]view plaincopy
        1. .text
        2. .globalEntryTask3
        3. Feq_Table:
        4. .word20
        5. .word40
        6. .word60
        7. .word80
        8. .word100
        9. .word120
        10. .word140
        11. .word160
        12. .word180
        13. .word200
        14. .word220
        15. .word240
        16. CurrentFeq:
        17. .word0x0
        18. task3_delay:
        19. ldrr3,=0xffffff
        20. task3_delay1:
        21. subr3,r3,#1
        22. cmpr3,#0x0
        23. bnetask3_delay1
        24. movpc,lr
        25. EntryTask3:
        26. loopfeq:
        27. ldrr1,=TCON
        28. ldrr2,=(DZ_eable<<4)|(auto_reload<<3)|(inverter<<2)|(man_update<<1)|(stop<<0)
        29. strr2,[r1]
        30. ldrr2,=GPBCON
        31. ldrr1,[r2]
        32. //ldrr1,=0x15400
        33. bicr1,r1,#0x3
        34. orrr1,r1,#0x2
        35. strr1,[r2]
        36. ldrr1,=TCFG0
        37. ldrr2,=(Prescaler0<<0)
        38. strr2,[r1]
        39. ldrr1,=TCFG1
        40. ldrr2,=(DMA_MODE<<20)|(MUX0<<0)
        41. strr2,[r1]
        42. ldrr3,=CurrentFeq
        43. ldrr0,[r3]
        44. ldrr4,=Feq_Table
        45. ldrr4,[r4,r0,LSL#2]@用r4存放table中的值
        46. addr0,r0,#1
        47. cmpr0,#12
        48. moveqr0,#0
        49. strr0,[r3]
        50. ldrr1,=TCNTB0
        51. //ldrr4,=100
        52. strr4,[r1]
        53. movr4,r4,LSR#2
        54. ldrr1,=TCMPB0
        55. //ldrr4,=25
        56. strr4,[r1]
        57. ldrr1,=TCON
        58. ldrr2,=(DZ_eable<<4)|(auto_reload<<3)|(inverter<<2)|(man_update<<1)|(start<<0)
        59. strr2,[r1]
        60. ldrr1,=TCON
        61. ldrr2,=(DZ_eable<<4)|(auto_reload<<3)|(inverter<<2)|(clear_man_update<<1)|(start<<0)
        62. strr2,[r1]
        63. bltask3_delay
        64. bloopfeq
        第三個任務就是每隔一段時間就有新的頻率產生.

        整個編譯出來不到2K,直接在4K的sram中跑.看到的就是led在流水,蜂鳴器在各種頻率.忽然想到了“落霞與孤鶩齊飛”.有了任務調度,看起來還是很美的.

        下一步,利用MMU的MPU功能,改進這個任務調度,并且任務是單獨編譯的.總大小應該不會超過4K,這樣我就暫時不用看Nandflash的datasheet了.不過遲早是要看的.......


        上一頁 1 2 下一頁

        關鍵詞: ARM匯編任務調

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 运城市| 麟游县| 调兵山市| 新宾| 庆城县| 天台县| 平武县| 盐山县| 曲阜市| 合水县| 乐山市| 宣汉县| 西平县| 安溪县| 洞头县| 永清县| 佛坪县| 南乐县| 阿拉善盟| 广河县| 南充市| 汤阴县| 房产| 贵德县| 集贤县| 那坡县| 巴彦淖尔市| 安康市| 瑞安市| 西充县| 洛浦县| 平顺县| 桐城市| 孟州市| 黄冈市| 仁化县| 衡山县| 莲花县| 肇州县| 峨边| 甘德县|