Navigation

    全志在线开发者论坛

    • Register
    • Login
    • Search
    • Categories
    • Tags
    • 在线文档
    • 社区主页
    1. Home
    2. whycan
    • Profile
    • Following 0
    • Followers 35
    • my integral 43387
    • Topics 97
    • Posts 1792
    • Best 85
    • Groups 1

    whycan晕哥LV 9

    @whycan

    43387
    integral
    97
    Reputation
    551
    Profile views
    1792
    Posts
    35
    Followers
    0
    Following
    Joined Last Online

    whycan Unfollow Follow
    Global Moderator

    Best posts made by whycan

    • 【开源开发板】D1s-Nezha开发板全全开源上架(内含购买链接和全部软硬件资料)

      2073522e-12e2-47c5-9d24-7616fa85df5e-Nezha-D1s.jpg

      89c9f2ec-3386-4ae4-9222-23f39035f439-Nezha-D1s L.jpg

      规格介绍:

      (1)支持RGB显示接口;
      (2)支持DSI接口;
      (3)支持TP接口;
      (4)支持LINEIN接口,支持HPOUT接口;
      (5)支持TVIN/TVOUT接口;
      (6)集成全志XR829 WiFi/BT芯片,支持a2dp与hfp;
      (7)支持JATG/UART debug;
      (8)支持SD卡;
      (9)支持USB Host/device;

      本开发板将提供:

      (1)硬件资料:原理图、PCB layout、BOM list
      (2)软件资料:适配的Tina Linux SDK(全志官方客户平台可下载)、基于官方SDK修改的适配补丁、测试用的固件
      (3)技术支持:将提供力所能及的基础技术支持,请到【全志在线开发者论坛】提问,会有人回复。不接私人定制、企业定制、一对一私信服务等。

      请认真阅读如下内容后再购买:

      (1)本开发板基于全志D1s芯片设计,主要应用于D1s性能评估、方案预研、开发者DIY等。
      (2)本开发板部分小件如电容电阻等是嘉立创机贴的,部分大件如D1s主控、XR829等为手贴,开发板售出前将烧写固件并进行人肉功能测试,开发板一经售出不退不换。
      (3)本开发板默认购买者是有一定开发能力的个人或企业的开发者,对于调试开发过程中出现的问题有一定的能力解决,小白勿买,不保修。

      因为是手贴,第一批只有15块,预计本周上线预售,预售价399元,劳动节后发货。

      目前已知问题列表:

      1. 不接入屏幕而开启屏幕背光可能会导致背光驱动异常发热

      屏幕背光二极管选型错误,使用屏幕时要接屏,悬空开启背光会导致二极管异常发热,可以通过更换二极管型号解决(SOD123封装,耐压40V以上的,例如SS14,SS24,SS16等)

      2. TVIN,TVOUT软件上暂未实现功能
      3. FM软件上暂未实现功能

      posted in D1系列-RISC-V
      whycan
      whycan晕哥
    • Reply: 百问网韦老师 D1 开发板 ---- 东山哪吒STU

      board.dts

      删除PC3:

              spi0_pins_a: spi0@0 {
                      pins = "PC2", "PC4", "PC5","PC7", "PC6"; /*clk mosi miso hold wp*/
                      function = "spi0";
                      muxsel = <2>;
                      drive-strength = <10>;
              };
      
              spi0_pins_b: spi0@1 {
                      pins = "PC7", "PC6";
                      function = "spi0";
                      muxsel = <2>;
                      drive-strength = <10>;
                      bias-pull-up;   /* only CS should be pulled up */
              };
      
              spi0_pins_c: spi0@2 {
                      pins = "PC2", "PC4", "PC5","PC6", "PC7";
                      function = "gpio_in";
                      muxsel = <0>;
                      drive-strength = <10>;
              };
      
      

      spi0 配置:

      &spi0 {
              clock-frequency = <100000000>;
              pinctrl-0 = <&spi0_pins_a &spi0_pins_b>;
              pinctrl-1 = <&spi0_pins_c>;
              pinctrl-names = "default", "sleep";
              cs-gpios = <&pio PC 3 GPIO_ACTIVE_HIGH>, <&pio PC 0 GPIO_ACTIVE_HIGH>;
              spi_slave_mode = <0>;
              status = "okay";
      
              spi-nor@0 {
                      compatible = "jedec,spi-nor";
                      spi-max-frequency=<30000000>;
                      reg = <0x0>;//片选0
                      spi-rx-bus-width=<0x01>;
                      spi-tx-bus-width=<0x01>;
                      status="okay";
              };
      
              spi-nor@1 {
                      compatible = "jedec,spi-nor";
                      spi-max-frequency=<30000000>;
                      reg = <0x1>;//片选1
                      spi-rx-bus-width=<0x01>;
                      spi-tx-bus-width=<0x01>;
                      status="okay";
              };
      
      };
      

      启动日志:

      [    1.197328] spi-nor spi0.0: s25fl064k (8192 Kbytes)
      [    1.205463] spi-nor spi0.1: mx25l12805d (16384 Kbytes)
      

      5edbe4b7-0130-4f32-8a24-e8709fec0ddd-064eb440a867c5d2a8b427aca76f292.png

      微信图片_20220406230118.jpg 微信图片_20220406230126.jpg

      posted in D1系列-RISC-V
      whycan
      whycan晕哥
    • LVGL|lvgl教程之巧用图层(layer)编写模态对话框 (转载)

      原帖地址: LVGL|lvgl教程之巧用图层(layer)编写模态对话框

      什么是对话框
      模态对话框(Modal Dialogue Box,又叫做模式对话框),是指在用户想要对对话框以外的应用程序进行操作时,必须首先对该对话框进行响应。如单击【确定】或【取消】按钮等将该对话框关闭。一般来说,对话框分为模态对话框和非模态对话框两种。

      二者的区别在于当对话框打开时,是否允许用户进行其他对象的操作。

      对话框的分类
      对话框分类无模式对话框和模式对话框。

      无模式对话框
      这是一种非强制回应的对话框,用于向用户请求非必须资料。即可以不理会这种对话框或不向其提供任何信息而继续进行当前工作,所以窗口均可打开并处于活动状态或是获得焦点(人机交互热点)。一类无模式对话框表现为工具栏,比如设置用于文字颜色的设置。查找/替换对话框可算是无模式对话框,也可以设计为工具栏。1

      模式对话框
      这种对话框强制要求用户回应,否则用户不能再继续进行操作,直到与该对话框完成交互。这种对话框设计用于程序运行必须停下来,直到从用户获得一些额外的信息,然后才可以继续进行的操作,或可能只想确认使用者想要进行一项具有潜在危险性的操作。有模式对话框一般被视为坏的设计方案,因为以一种用户不喜欢看到方式出现,或是被习惯不去注意对话框提示的用户忽略,导致无法避免危险操作。1

      有模式对话框一般分为系统级和应用程序级。系统级对话框出现时,用户在完成与这个对话框交互之前不能进行其它操作,比如关机对话框、Windows Vista 中的 UAC。应用程序级的则只对它的母程序有所限制,但可能在允许运行多个实际的不同软件中有不同的表现:只限定其中的一个程序窗口使之无法操作或全部限定。1

      lvgl上的解决方案
      两种对话框模式简单而言就是:

      无模式对话框:停留在屏幕上,随时可用,并且允许进行其他操作
      模式对话框:要求用户在继续程序之前做出响应
      在lvgl上怎么实现这种效果呢?
      非模式对话框很简单,直接让窗口弹出即可,用户可操作弹出的对话框也可以继续其他操作。
      lvgl上有两个特殊的图层,通过这两个图层我们可以实现模式对话框的效果。

      posted in GUI
      whycan
      whycan晕哥
    • Reply: Gaviar Handheld (小志掌機)

      @steward 在 Gaviar Handheld (小志掌機) 中说:

      @whycan
      暈哥, 記得左右兩邊要加振動馬達, 然後 UART 的 PCB 腳位記得灌孔~😊

      感谢司徒大佬提出的建议,对于这个打算开源的游戏机版本本着尽量易于制作,易于复刻的理念设计,因此:

      功放的控制部分直接上拉 默认开启,此处要修改为gpio控制,需要添加电平转换。所以简化了控制部分!

      2,关于sd卡的上拉电阻问题,D1S芯片与上一代F1S100不同,其内部上拉电阻有3个等级可选,体现在设备树对pin 驱动能力选择上,因此 适配不同的上拉电阻已经可以进行有效的阻抗匹配。故无需额外添加上拉电阻,

      关于按键的硬件消抖问题,设计之初已经考虑到了,但是为了简化某些软件设计,添加了全按键的硬件消抖,这个在实际使用中可以选择不焊接这些电阻电容,且论坛发现过适配gpio key时选择内部上拉失效的问题。所以为了保险起见此次板子焊接了这些硬件消抖电路。

      添加震动电机是个很好的想法,但是这会引起额外的电能消耗,不利于续航,但是本着娱乐精神,已经添加了电机驱动,将在下个版本适配。

      至于串口debug焊盘 穿孔问题,因为此处中间层及底层有走线,打孔会让走线变得困难。且游戏机调试好正式使用时 debug串口几乎用不到,所以仅引出了2.54mm间距的焊盘,当然 这些焊盘上可以焊接 贴片式2.54mm插针。

      posted in 爱搞机专区
      whycan
      whycan晕哥
    • 天下苦8723DS久矣,给兄弟们搞了点全志XR829的芯片

      天下苦8723DS久矣,到处都搞不到芯片,而且还贵。据了解是几个做IoT的大客户包圆了。
      全志其实有替代品,XR829,也是支持2.4G wifi/BT,而且原厂SDK是配好驱动,跟全志芯片的适配度高,D1哪吒开发板、R329开发板用的就是XR829.
      不过XR829 3000一捆,很多代理商不愿意拆包,找了好久终于找到一家愿意拆包的,买了100片,拆出来给大家玩,回头放淘宝链接,9.9交个朋友。
      *真的交个朋友,主要是方便用全志芯片的小伙伴做开发板用,量产的话可以找我帮联系拆包的好心代理商。

      淘宝链接:https://item.taobao.com/item.htm?id=670266183503

      posted in 其它全志芯片讨论区
      whycan
      whycan晕哥
    • Reply: 【RISC-V & LVGL】现象级爆红的开源显示框架——LVGL究竟蕴藏怎样的魔力

      作者已经把 X-Track码表程序移植到 D1s,很快就可以看到 RISC-V 版本了。

      posted in D1系列-RISC-V
      whycan
      whycan晕哥
    • V851s最小系统板(啥资源也没有)安排上了

      bfc81a35-4c84-4e81-950e-250378ef98f3-ef6110bbf9f697cfd0da9214385b346.jpg

      posted in V853系列-AI视觉
      whycan
      whycan晕哥
    • Reply: 在wsl下开发T113的主线linux(最新gcc+awboot+最新kernel+最新buildroot)

      这篇文章记录了在wsl系统下编译调试awboot和linux的全过程

      硬件要求:任意T113-S3芯片的板子,SPI0接spinand标准接法。

      1、准备wsl开发环境

      首先在win10或win11下安装wsl,选择wsl1或者wsl2都可以,wsl2的性能更高一些,wsl1的跨系统文件操作速度更快一些,我这里因为有一些工程在win文件系统下,所以选择了wsl1,发行版使用最新的Ubuntu 22.04.01 LTS。
      这里我没有选用vm虚拟机安装ubuntu开发的原因是虚拟机下的文件交互不够方便,特别是git和文件对比,有时在内核源码改了一些文件,使用win下的TortoiseGit工具就可以很方便的查看差异,提交变更。使用beyond compare也可很方便的比较各种文件文件夹的不同版本的差异。
      21d39193-ed21-4a4f-ae6f-d6dec28b7a9f-image.png
      在win资源管理器下可以直接查看wsl的linux根目录,右键可以直接执行各种操作,就像操作win文件一样

      这里编译开发的核心软件只有一个,就是VS code,安装好后添加所需的插件。
      串口调试工具使用MobaXterm

      下载交叉编译器,这里使用arm官方最新的GCC 12.2
      https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads
      arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-linux-gnueabihf.tar.xz
      下载后解压在wsl的主目录,在.bashrc中添加编译器路径

      PATH="$PATH:/home/wsl/arm-none-linux-gnueabihf/bin"

      2、编译awboot

      意外发现有awboot能够代替uboot直接引导内核,体验了一下果断选择awboot,因为足够简洁,编译大小只有32k,和uboot接近1M的体量相比,简直是小而美,启动速度也比uboot快上不少,也能同时支持sd卡,spinand,spinorflash启动。
      https://github.com/szemzoa/awboot

      说起uboot不禁想起几年前路由器第三方固件盛行的时期,那时的路由器还没有很复杂的方案,第三方固件往往比官方固件更易用功能更丰富,买个普通路由器换颗flash,内存芯片刷个系统就能获得更丰富的功能体验,各种固件openwrt,Padavan,高格百花齐放,为了刷机方便,系统的uboot都要支持tftp,串口甚至web的文件传输接口,由此孕育而出了大名鼎鼎的Breed,仅仅为了更新固件更方便,不用spi flash编程器那么麻烦的烧写。而到了全志嵌入式这边,由于自带usb接口的BROM,使用sunxi-fel或者xfel烧写flash已足够方便,所以使用uboot更新固件的需求就不是那么大,况且全志的方案比路由器的方案定制性更高一些,没有通用的第三方固件可以刷,所以uboot的功能就完全成了摆设,让用户使用sunxi-fel更新固件都要比uboot更新固件更稳定更实用,消费者用户用不到,开发人员也不会去用,那uboot的1m大小,集成的各种usb,网络,屏幕驱动,环境变量,文件系统,设备树编辑等功能就显得格外多余。

      15a4a48f-2147-485d-a424-e76bd042c293-image.png

      awboot相比spl+uboot的区别就是少了一次跳转的过程,由BROM拉起的boot0拥有足足160kb的sram,足够编写执行引导kernel的代码,所以这何尝不是一种恰到好处。

      下面是awboot的编译过程:
      修改makefile中的CROSS_COMPILE编译器定义为arm-none-linux-gnueabihf,或者使用

      make CROSS_COMPILE=arm-none-linux-gnueabihf
      命令编译
      如果不是git拉取的而是手动下载解压的源码,需要去除git编译目标,位于makefile line:49
      出现DWORD重复定义的错误,删除lib\fatfs\integer.h中的DWORD定义
      链接出现未定义函数__aeabi_unwind_cpp_pr0,makefile中添加编译选项CFLAGS += -lgcc_eh
      链接出现未定义函数raise,在main.c中添加函数

      int raise(void)
      {
      	return 0;
      }
      

      编译成功,出现awboot.bin等文件

      3、写入spinand测试

      接下来是烧写入硬件验证,我的板子焊接的是W25N01GV,这里使用xfel,因为支持写入spi-nand。
      https://github.com/xboot/xfel

      为什么不使用sd卡验证,因为烧写sd卡需要:
      拔卡->插到电脑->dd命令写入->拔卡->插到板子上。
      而写入spi-nand只需要:
      按着boot键同时按复位键->xfel命令写入(可以飞线两个按键,复位键接到reset脚到地,boot键接到spi-cs脚到地)。
      步骤大幅减少,同时没有拔插sd卡造成的触点磨损。同时因为使用的wsl系统,并不能很方便的使用dd命令写入sd卡。虽然wsl下也不能直接访问全志的usb设备,但是xfel有win的版本,wsl下可直接执行exe文件,所以只需要下载xfel-windows解压到wsl中,在.bashrc中添加命令别名

      alias xfel='/home/wsl/xfel-windows-v1.2.9/xfel.exe'
      即可在wsl中使用win版的xfel,就像linux中的xfel一模一样。

      make spi-boot.img
      xfel version
      xfel spinand
      xfel spinand erase 0 0x8000000
      xfel spinand write 0 spi-boot.img
      

      复位重启,可以在串口看到awboot打印的信息
      awboot默认使用uart5打印,其他串口可以修改board.c中的配置,非常通俗易懂
      内核加载地址如下表,可在board.h中修改

      • spi-nand内存划分 起始地址 空间容量
      • awboot 0 0x40000(256k)
      • dtb 0x40000 0x40000(256k)
      • kernel 0x80000 任意
      [I] AWBoot r6143 starting...
      [I] SPI-NAND: W25N01GV detected
      [E] SPI-NAND: DTB verification failed
      [F] SPI-NAND: loading failed
      restarting...
      

      4、编译kernel

      接下来编译kernel,编译过程可能会出现缺少命令的报错,大概是下面这几个

      sudo apt update
      sudo apt install flex bison bc libncurses-dev
      

      目前linux主线的最新版本并没有适配t113的相关外设驱动,虽然能启动并串口打印,但其他的一些外设并没有驱动,还不是可用的状态,所以这里选择全志D1的kernel进行修改。
      https://github.com/smaeul/linux/tree/d1/all

      unzip linux-d1-all.zip
      cd linux-d1-all
      

      应用awboot提供的linux补丁

      linux/allow_select_d1_ccu_on_t113.patch
      linux/ccu-sun20i-make_cpux_clk_critical_for_t113.patch
      linux/second_core_support_in_platsmp.patch
      linux/d1s_t113_can_bus.patch
      

      在arch\arm\configs\sunxi_defconfig中添加D1时钟

      CONFIG_SUN20I_D1_CCU=y
      CONFIG_SUN20I_D1_R_CCU=y
      

      添加sun8i-t113.dtsi和sun8i-t113-mangopi-dual.dts设备树配置文件到arch\arm\boot\dts
      在arch\arm\boot\dts\Makefile的line:1389 处,CONFIG_MACH_SUN8I配置中添加sun8i-t113-mangopi-dual.dtb

      awboot提供的sun8i-t113-mangopi-dual.dts设备树文件调试终端串口是5,需要改成uart0。

      make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabihf- sunxi_defconfig
      make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabihf- zImage -j4
      make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabihf- dtbs
      
      xfel spinand write 0x40000 arch/arm/boot/dts/sun8i-t113-mangopi-dual.dtb
      xfel spinand write 0x80000 arch/arm/boot/zImage
      

      5245787f-02fb-49ac-ba26-e4167ce500f2-image.png

      复位,串口成功打印内核信息,目前spinand中还没有文件系统,所以系统无法启动成功。

      5、构建ubi文件系统

      接下来是构建文件系统,这里使用最新的buildroot
      https://buildroot.org/downloads/buildroot-2022.11.tar.gz

      tar xf buildroot-2022.11.tar.gz
      cd buildroot-2022.11
      make menuconfig
      配置目标指令集类型
      006b7cd7-d0d3-40a7-b20b-b58a0ae89aca-image.png

      配置外部自定义编译器
      345e868b-a6ef-4376-9f7b-d01239c4aa36-image.png

      配置生成文件系统类型为ubifs,最大逻辑擦除块数量决定了spinand的容量,我这里是128M的spinand,所以128M/128k = 1024
      c798468b-ad46-44ea-b24a-bbe272779220-image.png

      上面的这些配置操作可以用下面的默认配置文件代替,在configs文件夹创建sunxi_t113_spinand_defconfig文件,添加下面内容,使用make sunxi_t113_spinand_defconfig载入配置。

      # architecture
      BR2_arm=y
      BR2_cortex_a7=y
      BR2_ARM_FPU_VFPV4=y
      
      # Toolchain
      BR2_TOOLCHAIN_EXTERNAL=y
      BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y
      BR2_TOOLCHAIN_EXTERNAL_PATH="/home/wsl/arm-none-linux-gnueabihf"
      BR2_TOOLCHAIN_EXTERNAL_GLIBC=y
      BR2_TOOLCHAIN_EXTERNAL_PREFIX="arm-none-linux-gnueabihf"
      BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX="arm-none-linux-gnueabihf"
      BR2_TOOLCHAIN_EXTERNAL_GCC_12=y
      BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_20=y
      BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y
      # BR2_TOOLCHAIN_EXTERNAL_INET_RPC is not set
      BR2_TOOLCHAIN_EXTERNAL_CXX=y
      
      # system
      
      # kernel
      
      # bootloader
      
      # filesystem / image
      BR2_TARGET_ROOTFS_UBI=y
      BR2_TARGET_ROOTFS_UBI_PEBSIZE=0x20000
      BR2_TARGET_ROOTFS_UBI_SUBSIZE=0
      BR2_TARGET_ROOTFS_UBIFS=y
      BR2_TARGET_ROOTFS_UBIFS_LEBSIZE=0x1f000
      BR2_TARGET_ROOTFS_UBIFS_MINIOSIZE=0x800
      BR2_TARGET_ROOTFS_UBIFS_MAXLEBCNT=1024
      BR2_TARGET_ROOTFS_UBIFS_OPTS="-F"
      

      配置完成后make开始编译,接下来就是漫长的下载编译过程,大概需要半小时。
      编译成功后会生成output/images/rootfs.ubi,使用xfel命令写入。

      xfel spinand erase 0x800000 0x7800000
      xfel spinand write 0x800000 output/images/rootfs.ubi
      复位发现没有启动成功,原来内核默认没有打开mtd和ubi支持,在内核配置添加下面选项

      Device Drivers -> Memory Technology Device (MTD) support -> NAND -> SPI NAND device Support
      Device Drivers -> Memory Technology Device (MTD) support -> Enable UBI - Unsorted block images
      File Systems -> Miscellaneous filesystems -> UBIFS file system support
      或者在arch\arm\configs\sunxi_defconfig中添加

      CONFIG_MTD=y
      CONFIG_MTD_SPI_NAND=y
      CONFIG_MTD_UBI=y
      CONFIG_UBIFS_FS=y
      后重新载入配置。

      另外设备树中的启动参数和分区也需要修改

      bootargs = "mem=128M ubi.mtd=3 rootfstype=ubifs root=ubi0:rootfs rw rootwait console=ttyS0,115200";
      
      &spi0 {
      	pinctrl-0 = <&spi0_pins>;
      	pinctrl-names = "default";
      	status = "okay";
      
      	spi_nand: spi_nand@0 {
              #address-cells = <1>;
              #size-cells = <1>;
      		compatible = "spi-nand";
      		reg = <0>;
      
      		partition@0 {
      				label = "awboot";
      				reg = <0x0 0x40000>;	/* 256K */
      				read-only;
      		};
      
      		partition@40000 {
      				label = "dtb";
      				reg = <0x40000 0x40000>;  /* 256k */
      				read-only;
      		};
      
      		partition@80000 {
      				label = "kernel";
      				reg = <0x80000 0x780000>;  /* 7.5MB */
      				read-only;
      		};
      
      		partition@800000 {
      				label = "rootfs";
      				reg = <0x800000 0x7800000>;
      		};
      	};
      };
      

      修改完后重新写入spi-nand,系统顺利启动,一个标准linux 6.1的基础busybox文件系统就做好了,可以根据不同应用可在buildroot添加所需的命令,下面是我常用的一些命令,总之非常方便。

      make menuconfig
      System configuration  ---> [*] Enable root login with password
      Target packages  ---> Networking applications  ---> dropbear
      Target packages ---> Libraries ---> Hardware handling ---> tslib
      Target packages ---> Text editors and viewers ---> nano
      Target packages ---> System tools ---> htop
      iperf3
      coremark
      dhrystone
      
      make busybox-menuconfig
      Archival Utilities ---> Make tar xxx, Autodetect compressed tarballs
      Linux System Utilities ---> Support mounting CIFS/SMB file systems
      Networking Utilities ---> httpd
      Networking Utilities ---> ntpd
      Networking Utilities ---> udhcpd
      Process Utilities ---> Support thread display in ps/pstree/top
      Process Utilities ---> pgrep
      Process Utilities ---> pmap
      Process Utilities ---> Show the number of users
      

      完整启动日志

      [I] AWBoot r6143 starting...
      [I] SPI-NAND: W25N01GV detected
      [I] SPI-NAND: read dt blob of size 22242 at 43.00MB/S
      [I] SPI-NAND: read Image of size 5424416 at 49.00MB/S
      [I] booting linux...
      [    0.000000] Booting Linux on physical CPU 0x0
      [    0.000000] Linux version 6.1.0-rc3 (wsl@DESKTOP-NQRKTHB) (arm-none-linux-gnueabihf-gcc (Arm GNU Toolchain 12.2.Rel1 (Build arm-12.24)) 12.2.1 20221205, GNU ld (Arm GNU Toolchain 12.2.Rel1 (Build arm-12.1210) #7 SMP Fri Dec 30 18:52:12 CST 2022
      [    0.000000] CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c5387d
      [    0.000000] CPU: div instructions available: patching division code
      [    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
      [    0.000000] OF: fdt: Machine model: MangoPi MQ-Dual
      [    0.000000] Memory policy: Data cache writealloc
      [    0.000000] cma: Reserved 16 MiB at 0x47000000
      [    0.000000] Zone ranges:
      [    0.000000]   Normal   [mem 0x0000000040000000-0x0000000047ffffff]
      [    0.000000]   HighMem  empty
      [    0.000000] Movable zone start for each node
      [    0.000000] Early memory node ranges
      [    0.000000]   node   0: [mem 0x0000000040000000-0x0000000047ffffff]
      [    0.000000] Initmem setup node 0 [mem 0x0000000040000000-0x0000000047ffffff]
      [    0.000000] percpu: Embedded 11 pages/cpu s15764 r8192 d21100 u45056
      [    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 32512
      [    0.000000] Kernel command line: mem=128M ubi.mtd=3 rootfstype=ubifs root=ubi0:rootfs rw rootwait console=ttyS0,115200
      [    0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes, linear)
      [    0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes, linear)
      [    0.000000] mem auto-init: stack:all(zero), heap alloc:off, heap free:off
      [    0.000000] Memory: 99804K/131072K available (8192K kernel code, 952K rwdata, 2188K rodata, 1024K init, 270K bss, 14884K reserved, 16384K cma-reserved, 0K highmem)
      [    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
      [    0.000000] rcu: Hierarchical RCU implementation.
      [    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=2.
      [    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
      [    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2
      [    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
      [    0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.
      [    0.000000] arch_timer: cp15 timer(s) running at 24.00MHz (phys).
      [    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x588fe9dc0, max_idle_ns: 440795202592 ns
      [    0.000001] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 4398046511097ns
      [    0.000013] Switching to timer-based delay loop, resolution 41ns
      [    0.000188] clocksource: timer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
      [    0.000681] Console: colour dummy device 80x30
      [    0.000724] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=240000)
      [    0.000740] pid_max: default: 32768 minimum: 301
      [    0.000901] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
      [    0.000916] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
      [    0.001461] CPU: Testing write buffer coherency: ok
      [    0.001766] /cpus/cpu@0 missing clock-frequency property
      [    0.001795] /cpus/cpu@1 missing clock-frequency property
      [    0.001805] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
      [    0.002581] Setting up static identity map for 0x40100000 - 0x40100060
      [    0.002720] rcu: Hierarchical SRCU implementation.
      [    0.002725] rcu:     Max phase no-delay instances is 1000.
      [    0.003261] smp: Bringing up secondary CPUs ...
      [    0.003971] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
      [    0.004097] smp: Brought up 1 node, 2 CPUs
      [    0.004107] SMP: Total of 2 processors activated (96.00 BogoMIPS).
      [    0.004114] CPU: All CPU(s) started in SVC mode.
      [    0.004635] devtmpfs: initialized
      [    0.008727] VFP support v0.3: implementor 41 architecture 2 part 30 variant 7 rev 5
      [    0.008927] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
      [    0.008951] futex hash table entries: 512 (order: 3, 32768 bytes, linear)
      [    0.009546] pinctrl core: initialized pinctrl subsystem
      [    0.010921] NET: Registered PF_NETLINK/PF_ROUTE protocol family
      [    0.011968] DMA: preallocated 256 KiB pool for atomic coherent allocations
      [    0.012787] thermal_sys: Registered thermal governor 'step_wise'
      [    0.012969] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
      [    0.012981] hw-breakpoint: maximum watchpoint size is 8 bytes.
      [    0.020855] platform 5460000.tcon-top: Fixing up cyclic dependency with 5200000.mixer
      [    0.020919] platform 5460000.tcon-top: Fixing up cyclic dependency with 5100000.mixer
      [    0.021185] platform 5461000.lcd-controller: Fixing up cyclic dependency with 5460000.tcon-top
      [    0.021537] platform 5470000.lcd-controller: Fixing up cyclic dependency with 5604000.tv-encoder
      [    0.021593] platform 5470000.lcd-controller: Fixing up cyclic dependency with 5460000.tcon-top
      [    0.022352] platform 7090000.rtc: Fixing up cyclic dependency with 7010000.clock-controller
      [    0.032234] SCSI subsystem initialized
      [    0.032716] usbcore: registered new interface driver usbfs
      [    0.032754] usbcore: registered new interface driver hub
      [    0.032791] usbcore: registered new device driver usb
      [    0.032977] mc: Linux media interface: v0.10
      [    0.033022] videodev: Linux video capture interface: v2.00
      [    0.033106] pps_core: LinuxPPS API ver. 1 registered
      [    0.033112] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
      [    0.033127] PTP clock support registered
      [    0.033547] Advanced Linux Sound Architecture Driver Initialized.
      [    0.034416] clocksource: Switched to clocksource arch_sys_counter
      [    0.041644] NET: Registered PF_INET protocol family
      [    0.041849] IP idents hash table entries: 2048 (order: 2, 16384 bytes, linear)
      [    0.042389] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 4096 bytes, linear)
      [    0.042417] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
      [    0.042428] TCP established hash table entries: 1024 (order: 0, 4096 bytes, linear)
      [    0.042444] TCP bind hash table entries: 1024 (order: 2, 16384 bytes, linear)
      [    0.042479] TCP: Hash tables configured (established 1024 bind 1024)
      [    0.042567] UDP hash table entries: 256 (order: 1, 8192 bytes, linear)
      [    0.042599] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, linear)
      [    0.042749] NET: Registered PF_UNIX/PF_LOCAL protocol family
      [    0.043429] RPC: Registered named UNIX socket transport module.
      [    0.043443] RPC: Registered udp transport module.
      [    0.043447] RPC: Registered tcp transport module.
      [    0.043450] RPC: Registered tcp NFSv4.1 backchannel transport module.
      [    0.044815] workingset: timestamp_bits=30 max_order=15 bucket_order=0
      [    0.049789] NFS: Registering the id_resolver key type
      [    0.049854] Key type id_resolver registered
      [    0.049858] Key type id_legacy registered
      [    0.050022] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 246)
      [    0.050031] io scheduler mq-deadline registered
      [    0.050036] io scheduler kyber registered
      [    0.108727] Serial: 8250/16550 driver, 8 ports, IRQ sharing disabled
      [    0.118865] CAN device driver interface
      [    0.122269] sun6i-rtc 7090000.rtc: registered as rtc0
      [    0.122395] sun6i-rtc 7090000.rtc: setting system clock to 1970-01-02T00:00:00 UTC (86400)
      [    0.122514] sun6i-rtc 7090000.rtc: RTC enabled
      [    0.122857] i2c_dev: i2c /dev entries driver
      [    0.124723] sunxi-wdt 20500a0.watchdog: Watchdog enabled (timeout=16 sec, nowayout=0)
      [    0.125850] sun8i-ce 3040000.crypto: Set mod clock to 300000000 (300 Mhz) from 400000000 (400 Mhz)
      [    0.126215] sun8i-ce 3040000.crypto: will run requests pump with realtime priority
      [    0.126553] sun8i-ce 3040000.crypto: will run requests pump with realtime priority
      [    0.126774] sun8i-ce 3040000.crypto: will run requests pump with realtime priority
      [    0.126977] sun8i-ce 3040000.crypto: will run requests pump with realtime priority
      [    0.127118] sun8i-ce 3040000.crypto: Register cbc(aes)
      [    0.127146] sun8i-ce 3040000.crypto: Register ecb(aes)
      [    0.127157] sun8i-ce 3040000.crypto: Register cbc(des3_ede)
      [    0.127166] sun8i-ce 3040000.crypto: Register ecb(des3_ede)
      [    0.127195] sun8i-ce 3040000.crypto: CryptoEngine Die ID 0
      [    0.128073] usbcore: registered new interface driver usbhid
      [    0.128082] usbhid: USB HID core driver
      [    0.130773] NET: Registered PF_PACKET protocol family
      [    0.130787] can: controller area network core
      [    0.130861] NET: Registered PF_CAN protocol family
      [    0.130869] can: raw protocol
      [    0.130876] can: broadcast manager protocol
      [    0.130885] can: netlink gateway - max_hops=1
      [    0.130991] Key type dns_resolver registered
      [    0.131078] Registering SWP/SWPB emulation handler
      [    0.151942] sun20i-d1-pinctrl 2000000.pinctrl: initialized sunXi PIO driver
      [    0.153211] printk: console [ttyS0] disabled
      [    0.173477] 2500000.serial: ttyS0 at MMIO 0x2500000 (irq = 231, base_baud = 1500000) is a 16550A
      [    0.980691] printk: console [ttyS0] enabled
      [    0.987508] spi-nand spi0.0: Winbond SPI NAND was found.
      [    0.992841] spi-nand spi0.0: 128 MiB, block size: 128 KiB, page size: 2048, OOB size: 64
      [    1.001736] 4 fixed-partitions partitions found on MTD device spi0.0
      [    1.008126] Creating 4 MTD partitions on "spi0.0":
      [    1.012920] 0x000000000000-0x000000040000 : "awboot"
      [    1.018743] 0x000000040000-0x000000080000 : "dtb"
      [    1.024176] 0x000000080000-0x000000800000 : "kernel"
      [    1.038649] 0x000000800000-0x000008000000 : "rootfs"
      [    1.194220] phy phy-4100400.phy.0: Changing dr_mode to 1
      [    1.195527] usb_phy_generic usb_phy_generic.1.auto: dummy supplies not allowed for exclusive requests
      [    1.199603] ehci-platform 4101000.usb: EHCI Host Controller
      [    1.209317] musb-hdrc musb-hdrc.2.auto: MUSB HDRC host driver
      [    1.214352] ehci-platform 4101000.usb: new USB bus registered, assigned bus number 1
      [    1.220112] musb-hdrc musb-hdrc.2.auto: new USB bus registered, assigned bus number 2
      [    1.236616] hub 2-0:1.0: USB hub found
      [    1.236719] ehci-platform 4200000.usb: EHCI Host Controller
      [    1.240434] hub 2-0:1.0: 1 port detected
      [    1.247931] ohci-platform 4200400.usb: Generic Platform OHCI controller
      [    1.256590] ohci-platform 4200400.usb: new USB bus registered, assigned bus number 3
      [    1.264527] ehci-platform 4101000.usb: irq 233, io mem 0x04101000
      [    1.270652] ehci-platform 4200000.usb: new USB bus registered, assigned bus number 4
      [    1.270760] ohci-platform 4200400.usb: irq 237, io mem 0x04200400
      [    1.286255] ehci-platform 4200000.usb: irq 235, io mem 0x04200000
      [    1.292563] sunxi-mmc 4020000.mmc: Got CD GPIO
      [    1.294477] ehci-platform 4101000.usb: USB 2.0 started, EHCI 1.00
      [    1.303231] ubi0: attaching mtd3
      [    1.308189] hub 1-0:1.0: USB hub found
      [    1.312277] hub 1-0:1.0: 1 port detected
      [    1.322619] sunxi-mmc 4020000.mmc: initialized, max. request size: 2047 KB, uses new timings mode
      [    1.334453] ehci-platform 4200000.usb: USB 2.0 started, EHCI 1.00
      [    1.341315] hub 4-0:1.0: USB hub found
      [    1.345162] hub 4-0:1.0: 1 port detected
      [    1.359176] hub 3-0:1.0: USB hub found
      [    1.362978] hub 3-0:1.0: 1 port detected
      [    1.444542] ohci-platform 4101400.usb: Generic Platform OHCI controller
      [    1.451202] ohci-platform 4101400.usb: new USB bus registered, assigned bus number 5
      [    1.459287] ohci-platform 4101400.usb: irq 236, io mem 0x04101400
      [    1.539278] hub 5-0:1.0: USB hub found
      [    1.543116] hub 5-0:1.0: 1 port detected
      [    1.574453] random: crng init done
      [    2.100239] ubi0: scanning is finished
      [    2.114539] ubi0: attached mtd3 (name "rootfs", size 120 MiB)
      [    2.120305] ubi0: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
      [    2.127199] ubi0: min./max. I/O unit sizes: 2048/2048, sub-page size 2048
      [    2.133981] ubi0: VID header offset: 2048 (aligned 2048), data offset: 4096
      [    2.140952] ubi0: good PEBs: 960, bad PEBs: 0, corrupted PEBs: 0
      [    2.146964] ubi0: user volume: 1, internal volumes: 1, max. volumes count: 128
      [    2.154178] ubi0: max/mean erase counter: 2/0, WL threshold: 4096, image sequence number: 2041766426
      [    2.163310] ubi0: available PEBs: 0, total reserved PEBs: 960, PEBs reserved for bad PEB handling: 20
      [    2.172542] ubi0: background thread "ubi_bgt0d" started, PID 85
      [    2.172894] ALSA device list:
      [    2.181451]   No soundcards found.
      [    2.186632] UBIFS (ubi0:0): Mounting in unauthenticated mode
      [    2.192477] UBIFS (ubi0:0): background thread "ubifs_bgt0_0" started, PID 86
      [    2.249179] UBIFS (ubi0:0): recovery needed
      [    2.379732] UBIFS (ubi0:0): recovery completed
      [    2.384300] UBIFS (ubi0:0): UBIFS: mounted UBI device 0, volume 0, name "rootfs"
      [    2.391721] UBIFS (ubi0:0): LEB size: 126976 bytes (124 KiB), min./max. I/O unit sizes: 2048 bytes/2048 bytes
      [    2.401642] UBIFS (ubi0:0): FS size: 117452800 bytes (112 MiB, 925 LEBs), max 1024 LEBs, journal size 9023488 bytes (8 MiB, 72 LEBs)
      [    2.413554] UBIFS (ubi0:0): reserved for root: 0 bytes (0 KiB)
      [    2.419390] UBIFS (ubi0:0): media format: w4/r0 (latest is w5/r0), UUID 9AE4F0B9-2A05-4C7A-8644-AA2CE4D2FFF0, small LPT model
      [    2.432511] VFS: Mounted root (ubifs filesystem) on device 0:13.
      [    2.440323] devtmpfs: mounted
      [    2.444496] Freeing unused kernel image (initmem) memory: 1024K
      [    2.450581] Run /sbin/init as init processSB bus registered, assigned bus number 2
      [    1.228343] ehci-platform 4200000.usb: EHCI Host Controller
      [    1.235904] hub 2-0:1.0: USB hub found
      [    1.242613] ohci-platform 4200400.usb: Generic Platform OHCI controller
      [    1.244554] hub 2-0:1.0: 1 port detected
      [    1.255208] ehci-platform 4101000.usb: irq 233, io mem 0x04101000
      [    1.261339] ehci-platform 4200000.usb: new USB bus registered, assigned bus number 3
      [    1.264326] ohci-platform 4200400.usb: new USB bus registered, assigned bus number 4
      [    1.278588] ehci-platform 4200000.usb: irq 235, io mem 0x04200000
      [    1.284829] ehci-platform 4101000.usb: USB 2.0 started, EHCI 1.00
      [    1.284899] sunxi-mmc 4020000.mmc: Got CD GPIO
      [    1.296563] ubi0: attaching mtd3
      [    1.300503] ohci-platform 4200400.usb: irq 237, io mem 0x04200400
      [    1.307274] hub 1-0:1.0: USB hub found
      [    1.311088] hub 1-0:1.0: 1 port detected
      [    1.315120] ehci-platform 4200000.usb: USB 2.0 started, EHCI 1.00
      [    1.320965] sunxi-mmc 4020000.mmc: initialized, max. request size: 2047 KB, uses new timings mode
      [    1.322827] hub 3-0:1.0: USB hub found
      [    1.333954] hub 3-0:1.0: 1 port detected
      [    1.379177] hub 4-0:1.0: USB hub found
      [    1.382997] hub 4-0:1.0: 1 port detected
      [    1.444407] ohci-platform 4101400.usb: Generic Platform OHCI controller
      [    1.451070] ohci-platform 4101400.usb: new USB bus registered, assigned bus number 5
      [    1.459134] ohci-platform 4101400.usb: irq 236, io mem 0x04101400
      [    1.539152] hub 5-0:1.0: USB hub found
      [    1.542954] hub 5-0:1.0: 1 port detected
      [    1.614309] random: crng init done
      [    2.110704] ubi0: scanning is finished
      [    2.124757] ubi0: attached mtd3 (name "rootfs", size 120 MiB)
      [    2.130523] ubi0: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
      [    2.137436] ubi0: min./max. I/O unit sizes: 2048/2048, sub-page size 2048
      [    2.144219] ubi0: VID header offset: 2048 (aligned 2048), data offset: 4096
      [    2.151185] ubi0: good PEBs: 960, bad PEBs: 0, corrupted PEBs: 0
      [    2.157205] ubi0: user volume: 1, internal volumes: 1, max. volumes count: 128
      [    2.164431] ubi0: max/mean erase counter: 2/0, WL threshold: 4096, image sequence number: 2041766426
      [    2.173555] ubi0: available PEBs: 0, total reserved PEBs: 960, PEBs reserved for bad PEB handling: 20
      [    2.183138] ALSA device list:
      [    2.186140]   No soundcards found.
      [    2.186172] ubi0: background thread "ubi_bgt0d" started, PID 85
      [    2.197304] UBIFS (ubi0:0): Mounting in unauthenticated mode
      [    2.203409] UBIFS (ubi0:0): background thread "ubifs_bgt0_0" started, PID 86
      [    2.318154] UBIFS (ubi0:0): UBIFS: mounted UBI device 0, volume 0, name "rootfs"
      [    2.325610] UBIFS (ubi0:0): LEB size: 126976 bytes (124 KiB), min./max. I/O unit sizes: 2048 bytes/2048 bytes
      [    2.335531] UBIFS (ubi0:0): FS size: 117452800 bytes (112 MiB, 925 LEBs), max 1024 LEBs, journal size 9023488 bytes (8 MiB, 72 LEBs)
      [    2.347444] UBIFS (ubi0:0): reserved for root: 0 bytes (0 KiB)
      [    2.353272] UBIFS (ubi0:0): media format: w4/r0 (latest is w5/r0), UUID 9AE4F0B9-2A05-4C7A-8644-AA2CE4D2FFF0, small LPT model
      [    2.366769] VFS: Mounted root (ubifs filesystem) on device 0:13.
      [    2.374505] devtmpfs: mounted
      [    2.378644] Freeing unused kernel image (initmem) memory: 1024K
      [    2.384764] Run /sbin/init as init process
      Starting syslogd: OK
      Starting klogd: OK
      Running sysctl: OK
      Initializing random number generator: OK
      Saving random seed: OK
      Starting network: OK
      
      Welcome to Buildroot
      buildroot login: root
      #
      # uname -a
      Linux buildroot 6.1.0-rc3 #7 SMP Fri Dec 30 18:52:12 CST 2022 armv7l GNU/Linux
      #
      # cat /proc/cpuinfo
      processor       : 0
      model name      : ARMv7 Processor rev 5 (v7l)
      BogoMIPS        : 48.00
      Features        : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm
      CPU implementer : 0x41
      CPU architecture: 7
      CPU variant     : 0x0
      CPU part        : 0xc07
      CPU revision    : 5
      
      processor       : 1
      model name      : ARMv7 Processor rev 5 (v7l)
      BogoMIPS        : 48.00
      Features        : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm
      CPU implementer : 0x41
      CPU architecture: 7
      CPU variant     : 0x0
      CPU part        : 0xc07
      CPU revision    : 5
      
      Hardware        : Generic DT based system
      Revision        : 0000
      Serial          : 0000000000000000
      #
      # cat /proc/mtd
      dev:    size   erasesize  name
      mtd0: 00040000 00020000 "awboot"
      mtd1: 00040000 00020000 "dtb"
      mtd2: 00780000 00020000 "kernel"
      mtd3: 07800000 00020000 "rootfs"
      #
      # mount
      ubi0:rootfs on / type ubifs (rw,relatime,assert=read-only,ubi=0,vol=0)
      devtmpfs on /dev type devtmpfs (rw,relatime,size=49900k,nr_inodes=12475,mode=755)
      proc on /proc type proc (rw,relatime)
      devpts on /dev/pts type devpts (rw,relatime,gid=5,mode=620,ptmxmode=666)
      tmpfs on /dev/shm type tmpfs (rw,relatime,mode=777)
      tmpfs on /tmp type tmpfs (rw,relatime)
      tmpfs on /run type tmpfs (rw,nosuid,nodev,relatime,mode=755)
      sysfs on /sys type sysfs (rw,relatime)
      #
      # df -h
      Filesystem                Size      Used Available Use% Mounted on
      ubi0:rootfs             102.9M      3.5M     99.5M   3% /
      devtmpfs                 48.7M         0     48.7M   0% /dev
      tmpfs                    57.2M         0     57.2M   0% /dev/shm
      tmpfs                    57.2M     24.0K     57.2M   0% /tmp
      tmpfs                    57.2M     16.0K     57.2M   0% /run
      #
      # time dd if=/dev/zero of=test.bin bs=1M count=64 conv=fsync
      64+0 records in
      64+0 records out
      real    0m 1.26s
      user    0m 0.00s
      sys     0m 0.48s
      #
      #
      # reboot
      # Stopping network: OK
      Saving random seed: OK
      Stopping klogd: OK
      Stopping syslogd: OK
      umount: devtmpfs busy - remounted read-only
      [  123.118531] UBIFS (ubi0:0): background thread "ubifs_bgt0_0" stops
      The system is going down NOW!
      Sent SIGTERM to all processes
      Sent SIGKILL to[  125.165719] reboot: Restarting system
      

      编译启动能够如此顺利必定少不了各位大佬的付出,特此感谢 big_smile

      posted in 其它全志芯片讨论区
      whycan
      whycan晕哥
    • Reply: 收到芒果大佬的库存 DVP与MIPI 双摄像头R11开发板

      进入Linux,tsc2007(ns2009)一直提示 -6错误,查了一下设备不存在,用 i2c-detect -y 0命令发现,果然不存在 0x48 设备,但是有 0x49 设备:

      # i2cdetect -y 0
           0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
      00:          -- -- -- -- -- -- -- -- -- -- -- -- --
      10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
      20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
      30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
      40: -- -- -- -- -- -- -- -- -- 49 -- -- -- -- -- --
      50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
      60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
      70: -- -- -- -- -- -- -- --
      #
      

      这是怎么回事呢,查看一楼原理图,难道 0x49 是加密芯片DX81C04,
      但是看了核心板背面的5脚芯片并没有焊上,
      那这个 0x49 估计就是 ns2009 芯片了,对照手册和原理图,发现A0 上拉,地址是要 +1
      修改 devicetree.dts,一切正常:

      &i2c0 {
              status = "okay";
      
              rtp@48 {
                      compatible = "ti,tsc2007";
                      reg = <0x49>;
                      interrupt-parent = <&pio>;
                      interrupts = <1 10 IRQ_TYPE_EDGE_FALLING>;
                      gpios = <&pio 1 10 GPIO_ACTIVE_LOW>;
                      pendown-gpio = <&pio 1 10 GPIO_ACTIVE_LOW>;
                      ti,x-plate-ohms = <660>;
                      wakeup-source;
              };
      
              rtc@51 {
                      compatible = "nxp,pcf8563";
                      reg = <0x51>;
                      status = "disabled";
              };
      
              hym8563@51 {
                      compatible = "haoyu,hym8563";
                      reg = <0x51>;
                      #clock-cells = <0>;
                      status = "disabled";
              };
      
              ds1307@68 {
                      compatible = "dallas,ds1307";
                      reg = <0x68>;
                      status = "disabled";
              };
      
              ctp@14 {
                      compatible = "goodix,gt911";
                      reg = <0x14>;
                      interrupt-parent = <&pio>;
                      interrupts = <1 1 IRQ_TYPE_EDGE_FALLING>; // PB1
                      irq-gpios = <&pio 1 1 GPIO_ACTIVE_HIGH>; // PB1
                      reset-gpios = <&pio 1 0 GPIO_ACTIVE_HIGH>; // PB0
                      status = "disabled";
              };
      
              ctp@5d {
                      compatible = "goodix,gt911";
                      reg = <0x5d>;
                      interrupt-parent = <&pio>;
                      interrupts = <1 1 IRQ_TYPE_EDGE_FALLING>; // PB1
                      irq-gpios = <&pio 1 1 GPIO_ACTIVE_HIGH>; // PB1
                      reset-gpios = <&pio 1 0 GPIO_ACTIVE_HIGH>; // PB0
                      status = "disabled";
              };
      };
      

      触摸校正: TSLIB_TSDEVICE=/dev/input/event0 ts_calibrate
      触摸测试: TSLIB_TSDEVICE=/dev/input/event0 ts_test

      c177b80b-0a8c-419c-8144-1cb312b76617-bf5421c8bcb42325fc7d3436cc8e583.jpg

      posted in R128系列-智能硬件
      whycan
      whycan晕哥
    • 【新人必读】如何在论坛高效地提技术问题?

      提问之前先告知:
      ① 错误现象,提供完整的错误日志,是否能稳定重现,如何重现
      ② 提供芯片型号(D1,D1s),运行平台(tina linux,melis,longan),平台版本
      ③ 编译环境,如Ubuntu18.04 LTS

      如果问题已经解决:
      ① 请跟帖写上解决过程,方便后来到这里的朋友

      posted in 灌水区
      whycan
      whycan晕哥

    Latest posts made by whycan

    • Reply: Gaviar Handheld (小志掌機)

      @steward
      关于显示屏,选了一个性价比相对合适的,司徒大佬也可以推荐。

      i80屏一般不会撕裂,因为屏内置GRAM,只要CPU能稳定输出60FPS显示屏就能正常工作。

      posted in 爱搞机专区
      whycan
      whycan晕哥
    • Reply: Gaviar Handheld (小志掌機)

      @steward 在 Gaviar Handheld (小志掌機) 中说:

      @whycan
      暈哥, 記得左右兩邊要加振動馬達, 然後 UART 的 PCB 腳位記得灌孔~😊

      感谢司徒大佬提出的建议,对于这个打算开源的游戏机版本本着尽量易于制作,易于复刻的理念设计,因此:

      功放的控制部分直接上拉 默认开启,此处要修改为gpio控制,需要添加电平转换。所以简化了控制部分!

      2,关于sd卡的上拉电阻问题,D1S芯片与上一代F1S100不同,其内部上拉电阻有3个等级可选,体现在设备树对pin 驱动能力选择上,因此 适配不同的上拉电阻已经可以进行有效的阻抗匹配。故无需额外添加上拉电阻,

      关于按键的硬件消抖问题,设计之初已经考虑到了,但是为了简化某些软件设计,添加了全按键的硬件消抖,这个在实际使用中可以选择不焊接这些电阻电容,且论坛发现过适配gpio key时选择内部上拉失效的问题。所以为了保险起见此次板子焊接了这些硬件消抖电路。

      添加震动电机是个很好的想法,但是这会引起额外的电能消耗,不利于续航,但是本着娱乐精神,已经添加了电机驱动,将在下个版本适配。

      至于串口debug焊盘 穿孔问题,因为此处中间层及底层有走线,打孔会让走线变得困难。且游戏机调试好正式使用时 debug串口几乎用不到,所以仅引出了2.54mm间距的焊盘,当然 这些焊盘上可以焊接 贴片式2.54mm插针。

      posted in 爱搞机专区
      whycan
      whycan晕哥
    • Reply: Gaviar Handheld (小志掌機)

      @steward 在 Gaviar Handheld (小志掌機) 中说:

      司徒這邊有一些想法, 或許可以參考一下

      收到司徒大佬的热心反馈,我和小伙伴商量一下,方便修改的地方预计下个版本就能改好。

      posted in 爱搞机专区
      whycan
      whycan晕哥
    • 推荐一个MP4文件修复工具

      问题背景:不带电池(或电池已挂)的行车记录仪或者家用监控器突然断电,导致文件系统没有完全更新,在电脑上无法打开MP4视频文件。

      修复工具:risingresearch dvr.exe

      aef081e1-ec3f-4b54-b472-38c3956518d4-image.png

      posted in 灌水区
      whycan
      whycan晕哥
    • Reply: F133-b的Tina-Linux里的音频解码器可以配成输出16KHz音频吗?

      @hezhiqin_zopu
      据我所知,没有内置AAC解码器,都是软解的,把需要的参数传递给软件解码器。

      posted in D1系列-RISC-V
      whycan
      whycan晕哥
    • Reply: D1s 哪吒开发板,电阻屏的配置方法

      @gaowei15537316965

      event1 不需要重新校准,出来已经是正确的坐标数据了,用evtest可以测试。

      posted in D1系列-RISC-V
      whycan
      whycan晕哥
    • Reply: D1s 哪吒开发板,电阻屏的配置方法

      @gaowei15537316965

      只要 /etc/ 目录下面校准文件还在,就无需再校准了。

      posted in D1系列-RISC-V
      whycan
      whycan晕哥
    • Reply: phoenixsuit找不到设备

      @xiawei

      可能用错驱动了,

      是不是用过xfel、sunxi-fel烧固件?

      posted in D1系列-RISC-V
      whycan
      whycan晕哥
    • Reply: D1s 哪吒开发板,电阻屏的配置方法

      @gaowei15537316965
      一开始是因为没有校准对吧?

      重启后那个用户层event就没了。

      posted in D1系列-RISC-V
      whycan
      whycan晕哥
    • Reply: D1s 哪吒开发板,电阻屏的配置方法

      @gaowei15537316965
      怎么解决的呢?

      posted in D1系列-RISC-V
      whycan
      whycan晕哥