本人小白,使用的是MYB-Y335X開發板,基於TI推出的Cortex A8內核的AM3352b處理器晶元。 開發板自帶的開發手冊寫的異常簡單,對於初學者來說上手比較困難,但是也間接的提高了自己解決問題的能力。 1、首先需要在linux主機中編譯想要運行的程式,這裡以led.c程式為例,進入led程 ...
本人小白,使用的是MYB-Y335X開發板,基於TI推出的Cortex A8內核的AM3352b處理器晶元。
開發板自帶的開發手冊寫的異常簡單,對於初學者來說上手比較困難,但是也間接的提高了自己解決問題的能力。
1、首先需要在linux主機中編譯想要運行的程式,這裡以led.c程式為例,進入led程式目錄下輸入make,如果程式已經編譯過會出現
make: Nothing to be done for `all'.
編譯器預設程式沒有改動,就不會再進行任何操作,如果想要重新編譯需要make clean
root@ubuntu:/home/rsn/AM3352/Examples/led# make clean
rm -f *.o led_test
這樣編譯器就會刪除編譯生成的可執行代碼,之後再編譯
root@ubuntu:/home/rsn/AM3352/Examples/led# make
arm-linux-gnueabihf-gcc -o led_test led.c main.c
就會生成可執行代碼。
2、將生成的可執行文件(led_test.o)拷至tf卡的根目錄中。
3、將tf卡插入開發板中,啟動開發板。在win7系統下需要下載使用HyperTerminal超級終端來調試開發板
4、啟動成功後首先進入root許可權,之後需要首先進入開發板的根文件系統
# cd / # ls bin etc lib32 mnt root sys var boot init linuxrc opt run tmp dev lib media proc sbin usr
5、 之後需要掛載tf卡至mnt目錄,mnt目錄下首先需要新建一個文件夾,這裡我給他起名叫做tfcard
# mount /dev/mmcblk0p1 /mnt/tfcard
至於為什麼需要掛載,如何掛載參考的這篇文章,寫的很好https://www.cnblogs.com/ma5on/p/4357625.html
6、 掛載之後就可以通過/mnt/tfcard訪問tf卡中的資源和內容。
在這裡本人遇到了一個非常嚴重的問題,就是在斷電之前沒有對掛載的tf卡進行反掛載,導致了出現瞭如下問題
Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
意思就是說tf卡有某些數據已經損壞,請運行fsck,所以這裡先說明一下,掛載tf卡使用完成之後一定要運行反掛載語句,相當於Windows系統下的“彈出u盤”
# umount /mnt/tfcard
一旦出現上述問題,解決方法是使用讀卡器插入另一個linux主機,使用fsck進行修複。具體步驟如下
1. 安裝dosfstools(apt-get install dosfstools) 2. 使用fdisk -l命令來確定是哪個分區,也就是確定tf卡的路徑。 3. 執行修複命令fsck.vfat -v /剛剛查到的路徑 4. 執行修複命令fsck.vfat -a /剛剛查到的路徑
7、 最後就可以使用cp命令將編譯好的可執行文件複製到根目錄的/usr/bin下運行了。