天天微頭條丨玩轉百問網東山Pi壹號-SSD202 Linux開發板(一)

2023-06-09 10:12:53 來源:嵌入式應用研究院

很早之前就做過SSD20x相關的平臺,剛好手里有一塊東山Pi壹號-開發板,于是我就將我為這塊板子做了一些定制,以支持我未來的項目開發:

一、將SSD202的內存進行擴容


(資料圖片)

剛拿到的板子,上電后RAM只有50M,基本上干不了什么事情,于是參考官方文檔了解到了MMA這個東西:

總共的RAM的大小是0x7f00000 = 133169152 / 1024 / 1024 約等于 127MB

MMA=0x3800000=58,720,256 / 1024 / 1024=56MB

有兩種方法優化掉MMA:

修改命令行啟動參數,重新編譯Kernel

進入uboot命令,手動去掉MMA(前提是uboot可以進入)

為了方便,傾向于第二種,在uboot啟動終端,我們可以通過printenv命令輸出啟動參數:

mma_heap=mma_heap_name0,miu=0,sz=0x3800000===>56MB

我們將這塊去掉,因為我們不需要MMA,因此可以通過setenv bootargs的方式進行修改:

然后保存后reset正常重啟后,我們通過top或者cat /proc/memory等方式就可以看到RAM被釋放出來了,這里通過top的方式查看:

二、SSD202 SPI配置

1、Linux內核配置

make menuconfig配置以下選項

CONFIG_SPI_SPIDEV

CONFIG_MS_SPI_INFINITY

2、設備樹配置

東山壹號SSD202開發板上的SPI接口要選擇Pad mode=4:

Pad mode=4 PAD_FUART_RX PAD_FUART_TX PAD_FUART_CTS PAD_FUART_RTS

打開主設備樹infinity2m.dtsi,修改節點:

spi:spi{compatible="sstar_spi";io_phy_addr=<0x1f000000>;banks=<0x1110>,<0x1111>,<0x1038>,<0x101E>,<0x100B>;clocks=<&CLK_mspi0>;interrupts=;/**padmux:*mode=1:PAD_PM_SD_CDZ,PAD_SD_D1,PAD_SD_D0,PAD_SD_CLK,PAD_SD_CMD*mode=2:PAD_TTL16,PAD_TTL17,PAD_TTL18,PAD_TTL19*mode=3:PAD_GPIO4,PAD_GPIO5,PAD_GPIO6,PAD_GPIO7*mode=4:PAD_FUART_RX,PAD_FUART_TX,PAD_FUART_CTS,PAD_FUART_RTS*mode=5:PAD_GPIO8,PAD_GPIO9,PAD_GPIO10,PAD_GPIO11*mode=6:PAD_GPIO0,PAD_GPIO1,PAD_GPIO2,PAD_GPIO3*/dma=<1>;spi0_mode=<4>;status="ok";};aliases{console=&uart0;serial0=&uart0;serial1=&uart1;/*serial2=&fuart;*//*注釋節點*/serial3=&uart2;};

然后打開設備樹:infinity2m-ssc011a-s01a-padmux-display.dtsi對應電路原理圖:

配置SPI管腳:

//SPI_DO,//SPI_DI,//SPI_CLK,//SPI_CS,

編譯內核燒寫完畢后輸入reset重啟系統后查看是否有SPI設備:

如果出現以上設備節點,則證明spi設備已經配置成功。

三、SSD202 UART配置

百問網SSD202開發板的SDK沒有將ttyS0以外的串口開放,參考SSD202官方文檔添加,修改設備樹文件:infinity2m-ssc011a-s01a-padmux-display.dtsi,參考官方文檔描述:

根據實際項目需求往設備樹文件添加:

,,

后重新編譯內核再為開發板更新內核即可生效。

四、SSD202 USB端口配置

五、SSD202 USB串口配置

勾選常用的選項:

USBWinchipheadCH341SinglePortSerialDriverUSBCP210xfamilyofUARTBridgeControllersUSBProlific2303SinglePortSerialDriversss

然后重新編譯內核燒寫即可生效。

六、SSD202 USB大容量存儲配置

七、SSD202 支持Fat文件格式配置

1、內核配置方式

內核搜索CONFIG_VFAT_FS配置選項,然后配置為*號即可。其他文件系統的支持同樣的方式配置

fat文件系統:CONFIG_VFAT_FSnfs文件系統:CONFIG_NTFS_FS

如果配置上了以后提示

#mount-tvfat/dev/sda1/mnt/[46.134884]FAT-fs(sda1):codepagecp437notfoundmount:mounting/dev/sda1on/mnt/failed:Invalidargument

原因是沒有配置相應的文件系統的codepage;

Filesystems--->-*-Nativelanguagesupport---><*>Codepage437(UnitedStates,Canada)

把Codepage 437 (United States, Canada)這個選項添加上,如果需要支持其他語言,同樣也可以選上。如果掛載繼續提示

[21.785549]FAT-fs(sda1):IOcharsetiso8859-1notfoundmount:mounting/dev/sda1on/mnt/failed:Invalidargument

再把CONFIG_NLS_ISO8859_1這項配置也添加上去。然后就可以掛載了:

其它:待補充!

審核編輯:湯梓紅

標簽:

上一篇:世界熱議:實現一個簡單的事件驅動處理框架
下一篇:最后一頁