玩转百问网东山Pi壹号-SSD202 Linux开发板(一)

嵌入式技术

1372人已加入

描述

很早之前就做过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这项配置也添加上去。然后就可以挂载了:

开发板

开发板

其它:待补充!

  审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分