分享

玩转百问网东山Pi壹号

 logicsoft 2023-10-26 发布于日本

  很早之前就做过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串口配置

编译

勾选常用的选项:

 

USB Winchiphead CH341 Single Port Serial Driver
USB CP210x family of UART Bridge Controllers
USB Prolific 2303 Single Port Serial Driversss

 

编译

然后重新编译内核烧写即可生效。

六、SSD202 USB大容量存储配置

编译

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

1、内核配置方式

内核搜索 CONFIG_VFAT_FS 配置选项,然后配置为*号即可。其他文件系统的支持同样的方式配置

 

fat 文件系统:  CONFIG_VFAT_FS
nfs文件系统:CONFIG_NTFS_FS

 

如果配置上了以后提示

 

# mount -t vfat /dev/sda1  /mnt/
[   46.134884] FAT-fs (sda1): codepage cp437 not found
mount: mounting /dev/sda1 on /mnt/ failed: Invalid argument

 

原因是没有配置相应的文件系统的codepage;

 

File systems  --->
    -*- Native language support  --->
         < * >   Codepage 437 (United States, Canada)

 

把Codepage 437 (United States, Canada)这个选项添加上,如果需要支持其他语言,同样也可以选上。如果挂载继续提示

 

[   21.785549] FAT-fs (sda1): IO charset iso8859-1 not found
mount: mounting /dev/sda1 on /mnt/ failed: Invalid argument

 

再把CONFIG_NLS_ISO8859_1这项配置也添加上去。然后就可以挂载了:

编译

编译

其它:待补充!

  审核编辑:汤梓红

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多