您尚未登录。

楼主 # 2023-03-21 15:21:41

zhangyadong300
会员
注册时间: 2022-03-28
已发帖子: 7
积分: 137

交作业:在本站开源的F1C200S开发板跑LVGL demo(支持USB host、usb存储、键盘鼠标、usb有线网卡)

之前在前辈基础上改了一个支持多种屏的开发板,焊接好后用唱戏机的FLASH测试了一下50PIN的屏就卡在U-BOOT编译了,后面断断续续用了两个月时间学习了一下uboot、Linux、buildboot配置和编译,终于能进文件系统了。

需要PCB文件可以看之前的帖子
https://whycan.com/t_8022.html

因为用的拆机的小牌FLASH,所以中间在uboot和Linux的配置上花了很多时间。一次无意间把装虚拟机的硬盘误删后所有环境都没了就一直搁置了。
今年又翻出来看到之前的屏又心动了一下,于是参照着之前收藏的教程又试了一下,中途有些之前遗忘的和底层文件需要修改的都忘记了需要重新找和翻教程花了几个晚上。看一下效果吧
这次用的40PIN 的屏幕,外接的转50PIN的板子,因为屏上的排线太脆弱了,所以固定一下装在了这个屏里面
IMG_20230321_135729.jpg

IMG_20230321_143054.jpgIMG_20230321_143110.jpg

这个屏也能给另一个板子使用了
IMG_20230321_150503.jpgIMG_20230321_150508.jpg

为了方便调试开启了USB host挂网卡和U盘,但是U盘太麻烦了要频繁插拔,所以用USB网卡tftp下载到FLASH,flash写入速度有点慢后期准备烧到内存卡上。
现在支持rtl81xx和dm9xxx系列USB有线网卡,rtl8188无线网卡还没成功,
IMG_20230321_142933.jpgIMG_20230321_135740.jpgIMG_20230321_143003.jpgIMG_20230321_142937.jpg


jffs2.imgsuniv-f1c100s-licheepi-nano.7zu-boot-sunxi-with-spl.7zzImage.7z

lvgl的makefile刚开始配置错,以为是交叉编译器问题,每次出来都是64位的,后面尝试修改终于可以了

.png

在每个环节需要注意的地方
(都是看论坛各位大佬的经验,总结了一下,感谢各位大佬)

1、UBOOT 添加FLASH支持和屏支持

# 显示spiflash的信息
$ sudo sunxi-fel spiflash-info
Manufacturer: Unknown (0Bh), model: 40h, size: 16777216 bytes.

修改 u-boot/drivers/mtd/spi/spi_flash_ids.c,根据上面查询的信息增加 xt25f128b:
const struct spi_flash_info spi_flash_ids[] = {
...
    {"w25q128fw",       INFO(0xef6018, 0x0,    64 * 1024,   256, RD_FULL | WR_QPP | SECT_4K) },
    {"xt25f128b",       INFO(0x0b4018, 0x0,    64 * 1024,   256, RD_FULL | WR_QPP | SECT_4K) },
...
};

我的是    n25w128a:
     Manufacturer: Unknown (2Ch), model: CBh, size: 16777216 bytes.
    {"n25w128a", INFO(0x2ccb18, 0x0, 64 * 1024, 256, RD_FULL | WR_QPP)},                    //添加的

来自 <https://whycan.com/t_7558.html>

    1. 设置uboot中的bootargs
    设置lcd作为控制台
    setenv bootargs ‘console=tty1,115200 root=/dev/nfs rw nfsroot=192.168.136.128:/home/rgd/linux/nfs/rootfs/JC

    设置串口tty1作为控制台
    setenv bootargs ‘console=ttymxc0,115200 root=/dev/nfs rw nfsroot=192.168.136.128:/home/rgd/linux/nfs/rootfs/JC

    将lcd显示屏tty1、串口ttymxc0作为终端显示:
    setenv bootargs ‘console=tty1 console=ttymxc0,115200 root=/dev/nfs rw nfsroot=192.168.136.128:/home/rgd/linux/nfs/rootfs/JC

    在uboot中设置好在saveenv一下
   
    版权声明:本文为CSDN博主「栋哥爱做饭」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/weixin_47397155/article/details/122888220


2、Linux

    添加 flash 驱动,需要查看板子使用的 flash 芯片:
   
    # 1. 打开 ./drivers/mtd/spi-nor/spi-nor.c 1168行. 添加如下代码. 对flash支持
    {"n25w128a", INFO(0x2ccb18, 0, 64 * 1024, 256, SECT_4K)}, // 20230320 我添加的

            配置设备树,若无显示器,则显示部分不用配置:
   
    # 1. 打开 /arch/arm/boot/dts/suniv-f1c100s-licheepi-nano.dts 文件
        # 2. 修改 flash和显示驱动
    &spi0 {
        pinctrl-names = "default";
        pinctrl-0 = <&spi0_pins_a>;
        status = "okay";
        spi-max-frequency = <50000000>;
        flash: n25w128a@0 {
            #address-cells = <1>;
            #size-cells = <1>;
            compatible = "winbond,n25w128a", "jedec,spi-nor";
                reg = <0>;
            &spi0 {
        pinctrl-names = "default";
        pinctrl-0 = <&spi0_pins_a>;
        status = "okay";
        spi-max-frequency = <50000000>;
        flash: n25w128a@0 {
            #address-cells = <1>;
            #size-cells = <1>;
            compatible = "winbond,n25w128a", "jedec,spi-nor";
                reg = <0>;
            版权声明:本文为CSDN博主「℡四叶草~」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
                原文链接:https://blog.csdn.net/dwh1314/article/details/124872528


        配置中设置
        Device Drivers  --->
    <*> Memory Technology Device (MTD) support  --->
        <*>   Command line partition table parsing    # 勾选,用来解析uboot传递过来的flash分区信息。(如果 bootarg 是用的我的方法一就需要勾选)
        <*>   Caching block device access to MTD devices    # 勾选,读写块设备用户模块
        <*>   SPI-NOR device support  --->
            [ ]   Use small 4096 B erase sectors    # 取消勾选,否则jffs2文件系统会报错

        来自 <https://whycan.com/t_7558.html>


        增加USB HOST支持
        修改drivers/clk/sunxi-ng/ccu-suniv.c
        usb-hpy0
        0x0cc, BIT(1), 0);

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn