国产无码免费,人妻口爆,国产V在线,99中文精品7,国产成人无码AA精品一,制度丝袜诱惑av,久久99免费麻辣视频,蜜臀久久99精品久久久久久酒店
        訂閱
        糾錯
        加入自媒體

        基于Cortex-A9 LED匯編、C語言驅動編寫

        2020-12-22 16:10
        一口Linux
        關注

         gcd.o(.text)  ;代碼的第一個部分,絕對不能錯
         *(.text)

        . = ALIGN(4);
           .rodata :             ;只讀數據段
        { *(.rodata) }
           . = ALIGN(4);
           .data :              ;讀寫數據段
        { *(.data) }
           . = ALIGN(4);
           .bss :              
            { *(.bss) }

        Makefile

        TARGET=gcd
        TARGETC=main
        all:
        arm-none-eabi-gcc -O0 -g -c -o $(TARGETC).o  $(TARGETC).c
        arm-none-eabi-gcc -O0 -g -c -o $(TARGET).o $(TARGET).s
        arm-none-eabi-gcc -O0 -g -S -o $(TARGETC).s  $(TARGETC).c
        arm-none-eabi-ld $(TARGETC).o $(TARGET).o -Tmap.lds -o  $(TARGET).elf
        arm-none-eabi-objcopy -O binary -S $(TARGET).elf $(TARGET).bin
        clean:
        rm -rf *.o *.elf *.dis *.bin

        執行make命令,最終生成的gcd.bin文件。

        這段代碼中,讀者可能不能理解的是下面的定義:

        typedef struct {
           unsigned int CON;
           unsigned int DAT;
           unsigned int PUD;
           unsigned int DRV;
        }gpx1;
        #define GPX1 (* (volatile gpx1 *)0x11000C20 )

        GPX1宏定義

        由上圖所示:

        (volatile gpx1 *)0x11000C20 ) :將常量0x11000C20 強轉成struct gpx1類型指針(* (volatile gpx1 *)0x11000C20 ):查找指針對應的內存驅動,即對應整個結構體變量,結構體變量地址為0x11000C20#define GPX1 (* (volatile gpx1 *)0x11000C20 ) :GPX1等價于地址為0x11000C20的結構體變量

        這樣我們要想操作GPX1的寄存器,就可以像結構體變量一樣操作即可。

        3. 測試

        采用UBOOT自帶的命令loadb,通過串口以baud速率下載binary(.bin)至SDRAM中某一地址中,然后用go 命令從某地址處開始執行程序。

        該命令使用了kermit protocol,嵌入式系統通常使用該協議與pc傳送文件。

        操作步驟如下:

        串口連接開發板,開發板啟動后在讀秒階段,立即按下回車,進入uboot命令界面執行loadb 40008000 【該地址與Makefile 和map.lds文件中的地址保持一致】選擇菜單transfer->send Kermit,然后選擇我們編譯好的gcd.bin文件,點擊OK,出現"Staring kermit transfer."字樣,執行 go 40008000,運行程序

        運行裸機程序

        執行結果:

        led

        可以看到LED閃爍的現象。

        5. 注意

        該種測試方法需要bootloader選用uboot,并且需要串口工具支持Kermit協議,一口君使用的是SecureCRT7.3.3版本【其他低一些的版本可能不支持該協議】,該軟件的下載和安裝方法【安裝方法有點繁瑣】可以公眾號后臺回復【SecureCRT】。

        SecureCRT版本



        <上一頁  1  2  3  4  
        聲明: 本文由入駐維科號的作者撰寫,觀點僅代表作者本人,不代表OFweek立場。如有侵權或其他問題,請聯系舉報。

        發表評論

        0條評論,0人參與

        請輸入評論內容...

        請輸入評論/評論長度6~500個字

        您提交的評論過于頻繁,請輸入驗證碼繼續

        暫無評論

        暫無評論

          人工智能 獵頭職位 更多
          掃碼關注公眾號
          OFweek人工智能網
          獲取更多精彩內容
          文章糾錯
          x
          *文字標題:
          *糾錯內容:
          聯系郵箱:
          *驗 證 碼:

          粵公網安備 44030502002758號

          主站蜘蛛池模板: 激情综合图区| 中文字幕人妻系列| 免费看欧美成人A片无码| 黄色18禁网站| 91牛牛| 长武县| 3p视频在线观看| 塘沽区| 久久久久999| 久久久久厕拍| 奉新县| 538av| 丝袜精品字幕| 亚洲成人中文字幕| 怡春院av| jizz日本版| 沛县| 色婷婷久| 亚洲欧美综合| 超碰在线成人| 宣威市| 夜夜夜爽| 国产精品老熟女400部| 国产乱子伦真实精品!| 538AV| 人操人人| 青神县| FUCK老富婆HD| 黄色www| 欧美在线视频99| 久久老司机视频| 亚洲精品久久久无码aⅴ片恋情| 欧美偷拍视频| 亚洲色图在线观看| 韩国无码一区二区三区| 松阳县| 久草在线观看视频| 松下纱荣子被c到高潮下不了床| jizz亚洲人| 亚洲天堂在线播放| 榆林市|