很早之前就做过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这项配置也添加上去。然后就可以挂载了:
其它:待补充!
审核编辑:汤梓红
标签: