页次: 1
链接: https://pan.baidu.com/s/1D9pwKt5Qx4ILIDpTTpyQPA
提取码:8k72
有效期30天
这个规格看起来真不错,单价大概多少?哪里能拿到资料
基于Qinhao 的 bsp linux 3.4,硬件是licheepi_zero。I2C出错,是怎么回事呢?
# i2cdetect -y 1
0 1 2 3 4 5 6 7 8 [ 14.707574] sunxi_i2c_do_xfer()985 - [i2c1] incomplete xfer (status: 0x20, dev addr: 0x3)
9 a b c d e f
00: [ 14.720161] sunxi_i2c_do_xfer()985 - [i2c1] incomplete xfer (status: 0x20, dev addr: 0x4)
-- -- [ 14.732414] sunxi_i2c_do_xfer()985 - [i2c1] incomplete xfer (status: 0x20, dev addr: 0x5)
-- [ 14.742308] sunxi_i2c_do_xfer()985 - [i2c1] incomplete xfer (status: 0x20, dev addr: 0x6)
-- [ 14.752161] sunxi_i2c_do_xfer()985 - [i2c1] incomplete xfer (status: 0x20, dev addr: 0x7)
-- [ 14.762065] sunxi_i2c_do_xfer()985 - [i2c1] incomplete xfer (status: 0x20, dev addr: 0x8)
确实没有摄像头接口,好遗憾啊!
这芯片貌似没有图像传感器接口
阿黄 说:https://pic4.zhimg.com/v2-f7da598994ef49c5f9eaa5e16b4ae220_1440w.jpg?source=172ae18b
SSD201/SSD202芯片芯片规格:· A7双核1.2GHz,内置DDR2-64MByte /DDR3-128MByte;
· 支持MIPI/RGB接口点屏,支持FHD(1920*1080)高清屏;
· 内置硬件2D图形加速,支持硬件90度转屏;
· 内置双MAC,内置一个PHY,支持双100M以太网接口,性价比高;
· 内置H.264/H.265硬解码,支持FHD@60fps;
· 支持MJPEG编码FHD(1920*1080)@15fps;
· 内置codec芯片,无需外挂codec,支持语音对讲;
· 支持离线语音关键字识别,无需外加任何芯片;
· 支持2路模拟mic,支持4路数字mic接口;
· 支持2路USB2.0 Host,支持外挂WIFI芯片;
· 配套SigmaStar WIFI芯片,性能高,有自定义优化协议,实现级联,空旷传输达500米距离。
· QFN128封装,PCB可以走2层板。
· 芯片采用linux操作系统,3s快速开机,系统成熟稳定。
一样问题,来加Q交流一下 19730384
aodzip 说:白嫖: https://github.com/aodzip/sun6i-mipi-csi
MIPI-CSI2 驱动已经测试OV5640摄像头2Lane模式 1080P@15FPS 720P@30FPS
DVP没测试,因为主线本身就支持DVP,希望没给它改坏吧以下由 @哇酷小二 2020-05-04 添加:
-------------------------------------不方便打开github的朋友可以此处下载: sun6i-mipi-csi_20200504.7z
大佬,我移植后,运行fswebcam出现以下情况,请是什么问题?我用的摄像头是ov5647
# fswebcam -S 5 -d /dev/video0 -p YUV420P -r 320x240 test.jpg
--- Opening /dev/video0...
Trying source module v4l2...
/dev/video0 opened.
No input was specified, using the first.
Error starting stream.
VIDIOC_STREAMON: Invalid argument
Unable to use mmap. Using read instead.
Unable to use read.
谢谢了!
超大,超慢不说,v3s的驱动都有吗?应该不全吧
http://github.com/torvalds/linux
https://github.com/torvalds/linux/tree/v5.4
这样克隆代码 git clone https://github.com/torvalds/linux -b v5.4
应该就是 linux 5.4 了
drivers/staging/media/sunxi/sun6i-csi/sun6i_video.o: In function `sun6i_video_frame_done':
sun6i_video.c:(.text+0xb44): multiple definition of `sun6i_video_frame_done'
drivers/media/platform/sunxi/sun6i-csi/sun6i_video.o:sun6i_video.c:(.text+0xb44): first defined here
drivers/staging/media/sunxi/sun6i-csi/sun6i_video.o: In function `sun6i_video_init':
sun6i_video.c:(.text+0xc10): multiple definition of `sun6i_video_init'
drivers/media/platform/sunxi/sun6i-csi/sun6i_video.o:sun6i_video.c:(.text+0xc10): first defined here
drivers/staging/media/sunxi/sun6i-csi/sun6i_video.o: In function `sun6i_video_cleanup':
sun6i_video.c:(.text+0xe20): multiple definition of `sun6i_video_cleanup'
drivers/media/platform/sunxi/sun6i-csi/sun6i_video.o:sun6i_video.c:(.text+0xe20): first defined here
drivers/staging/media/sunxi/sun6i-csi/sun6i_csi.o: In function `sun6i_csi_is_format_supported':
sun6i_csi.c:(.text+0x5fc): multiple definition of `sun6i_csi_is_format_supported'
drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.o:sun6i_csi.c:(.text+0x5cc): first defined here
drivers/staging/media/sunxi/sun6i-csi/sun6i_csi.o: In function `sun6i_csi_set_power':
sun6i_csi.c:(.text+0xa54): multiple definition of `sun6i_csi_set_power'
drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.o:sun6i_csi.c:(.text+0x9f0): first defined here
drivers/staging/media/sunxi/sun6i-csi/sun6i_csi.o: In function `sun6i_csi_update_config':
sun6i_csi.c:(.text+0xc54): multiple definition of `sun6i_csi_update_config'
drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.o:sun6i_csi.c:(.text+0xbf0): first defined here
drivers/staging/media/sunxi/sun6i-csi/sun6i_csi.o: In function `sun6i_csi_update_buf_addr':
sun6i_csi.c:(.text+0x1954): multiple definition of `sun6i_csi_update_buf_addr'
drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.o:sun6i_csi.c:(.text+0x18c4): first defined here
drivers/staging/media/sunxi/sun6i-csi/sun6i_csi.o: In function `sun6i_csi_set_stream':
sun6i_csi.c:(.text+0x19bc): multiple definition of `sun6i_csi_set_stream'
drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.o:sun6i_csi.c:(.text+0x192c): first defined here
Makefile:1061: recipe for target 'vmlinux' failed
make: *** [vmlinux] Error 1
只有我自己遇到吗?
非常感谢!
明天调 1080P@30,这也是 v3s规格书上的最高规格了。但是我前端不是摄像头,是FPGA过来的图像,所以我精简修改一下 0v5640驱动即可,模拟一个 0v5640 mipi-csi2的通道。
摄像头驱动 主线DVP与MIPI-CSI2
http://whycan.com/t_4284.html
(出处:哇酷开发者社区【全志 V3S/F1C100s/X3】)
确认,是大小的问题。不要 qt5,10M的样子,可以启动,只是会出别的错
[ 1.976157] Freeing unused kernel memory: 1024K
Starting logging: OK
Starting network: OK
getty: can't open '/dev/null': No such file or directory
getty: can't open '/dev/null': No such file or directory
getty: can't open '/dev/null': No such file or directory
和buildroot版本没有关系, 应该是尺寸和文件格式问题。
angelsan 说:rootfs.cpio.gz.uImage 是18M的样子,用过几个,都不行。比如“入坑指南”里面的 2017.08,“一键生成 spi-nor,自动启动 AnalogClock”里面的 2018.08,几个版本都一样,都是 Starting Kernel,然后就没有了。
老大,您那个rootfs是哪个版本的?哇酷小二 说:这就尴尬了,文件有多大?
U-Boot 2017.01-rc2-00057-g32ab180-dirty (Nov 26 2020 - 21:09:42 +0800) Allwinner Technology
CPU: Allwinner V3s (SUN8I 1681)
Model: Lichee Pi Zero
DRAM: 64 MiB
MMC: SUNXI SD/MMC: 0
Card did not respond to voltage select!
*** Warning - MMC init failed, using default environment
Setting up a 1024x600 lcd console (overscan 0x0)
dotclock: 51000kHz = 51000kHz: (1 * 3MHz * 102) / 6
In: serial@01c28000
Out: serial@01c28000
Err: serial@01c28000
U-Boot 2017.01-rc2-00057-g32ab180-dirty (Nov 26 2020 - 21:09:42 +0800) Allwinner Technology
CPU: Allwinner V3s (SUN8I 1681)
Model: Lichee Pi Zero
DRAM: 64 MiB
MMC: SUNXI SD/MMC: 0
Card did not respond to voltage select!
*** Warning - MMC init failed, using default environment
Setting up a 1024x600 lcd console (overscan 0x0)
dotclock: 51000kHz = 51000kHz: (1 * 3MHz * 102) / 6
In: serial@01c28000
Out: serial@01c28000
Err: serial@01c28000
Net: No ethernet found.
starting USB...
No controllers found
(FEL boot)
## Executing script at 41900000
## Loading init Ramdisk from Legacy Image at 41a00000 ...
Image Name: uInitrd
Image Type: ARM Linux RAMDisk Image (uncompressed)
Data Size: 17998595 Bytes = 17.2 MiB
Load Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
## Flattened Device Tree blob at 41800000
Booting using the fdt blob at 0x41800000
Loading Ramdisk to 41cd5000, end 42dff303 ... OK
Loading Device Tree to 41ccf000, end 41cd4e4f ... OK
Starting kernel ...
试过,不行。这个选项可以自动生成 rootfs.cpio和 rootfs.cpio.gz(选 gzip压缩时)
https://whycan.com/files/members/3907/QQ截图20201126220820.png
勾选这个就应该可以了, 你可以试一试, 行不行都回一下.
老大,用自己的 rootfs,不管是用您给的方法打包成 rootfs.cpio.gz.uimage,还是用上面网友提到的自动生成 rootfs.cpio.gz然后手动打包,都是 启动后出现 "Start kernel",然后就卡住了。
能不能提供一下 buildroot 的信息,比如版本和 .config文件等,谢谢!
@JinC 感谢分享, 为了方便给位老友搜索, 特加入本站精华帖
100. 荔枝派zero/小智极客S3/V3s使用sunxi-fel 借 u-boot 启动 Linux系统, 无需 spi flash / TF 卡 by@JinC
谢谢!
荔枝派zero/小智极客S3/V3s使用sunxi-fel 借 u-boot 启动 Linux系统, 无需 spi flash / TF 卡
http://whycan.com/t_2388.html
(出处:哇酷开发者社区【全志 V3S/F1C100s/X3】)
轮询方式做了个矩阵键盘的驱动,下面的信息,是不是表面已经可以了?
另,QT里处理 KeyEvent的 key值跟 Linux-event-code.h 文件里的不同啊,有没有影响的?
Event: time 70.120471, type 1 (EV_KEY), code 103 (KEY_UP), value 1
Event: time 70.120471, -------------- SYN_REPORT ------------
Event: time 70.340541, type 1 (EV_KEY), code 103 (KEY_UP), value 0
Event: time 70.340541, -------------- SYN_REPORT ------------
Event: time 71.992033, type 1 (EV_KEY), code 108 (KEY_DOWN), value 1
Event: time 71.992033, -------------- SYN_REPORT ------------
Event: time 72.212028, type 1 (EV_KEY), code 108 (KEY_DOWN), value 0
Event: time 72.212028, -------------- SYN_REPORT ------------
Event: time 73.421503, type 1 (EV_KEY), code 105 (KEY_LEFT), value 1
Event: time 73.421503, -------------- SYN_REPORT ------------
Event: time 73.641505, type 1 (EV_KEY), code 105 (KEY_LEFT), value 0
Event: time 73.641505, -------------- SYN_REPORT ------------
Event: time 74.300988, type 1 (EV_KEY), code 106 (KEY_RIGHT), value 1
Event: time 74.300988, -------------- SYN_REPORT ------------
Event: time 74.520984, type 1 (EV_KEY), code 106 (KEY_RIGHT), value 0
Event: time 74.520984, -------------- SYN_REPORT ------------
非常感谢,你这个固件有数据。我修改代码以后也有了。
其实在 uboot做了些定制,sun8i-v3s.dtsi里把不用的 mm1等给注掉了,结果竟然 RGB口没有数据。复原后,现在倒是有数据了,但是屏还是没有显示,我再检查一下。
给你发一个1024x600的V3s固件, 你跑下试一试看: sysimage-sdcard.7z
调试串口是 UART2(PB0/PB1)
背光是 PB4
CONFIG_SUNXI_MAX_FB_SIZE 我改的是 3<<20,不够吗?
diff --git a/include/configs/sunxi-common.h b/include/configs/sunxi-common.h
index fcecd0bfca..0f345721bd 100644
--- a/include/configs/sunxi-common.h
+++ b/include/configs/sunxi-common.h
@@ -306,7 +306,7 @@ extern int soft_i2c_gpio_scl;
#ifndef CONFIG_MACH_SUN8I_V3S
#define CONFIG_SUNXI_MAX_FB_SIZE (16 << 20)
#else
-#define CONFIG_SUNXI_MAX_FB_SIZE (2 << 20)
+#define CONFIG_SUNXI_MAX_FB_SIZE (5 << 20)
#endif/* Do we want to initialize a simple FB? */
my-keypad
{
compatible = "gpio-matrix-keypad";
status = "okay";
debounce-delay-ms = <10>;
col-scan-delay-us = <200>;
linux,no-autorepeat;
col-gpios = <
&pio 4 22 0
&pio 4 21 0
&pio 4 20 0
&pio 1 7 0
>;
row-gpios = <
&pio 6 5 0
&pio 2 3 0
&pio 2 2 0
&pio 2 0 0
&pio 2 1 0
>;
linux,keymap = <
MATRIX_KEY(0,0,KEY_1)//4K
MATRIX_KEY(0,1,KEY_2)//VESA
MATRIX_KEY(0,2,KEY_3)//PATTERN
MATRIX_KEY(0,3,KEY_4)//SINK INFO
MATRIX_KEY(1,0,KEY_5)//8K
MATRIX_KEY(1,1,KEY_6)//HD
MATRIX_KEY(1,2,KEY_7)//HDR
MATRIX_KEY(1,3,KEY_8)//HDCP
MATRIX_KEY(2,0,KEY_9)//MUTE
MATRIX_KEY(2,1,KEY_0)//AUDIO
MATRIX_KEY(2,2,KEY_OK)
MATRIX_KEY(2,3,KEY_EXIT)
MATRIX_KEY(3,0,KEY_UP)
MATRIX_KEY(3,1,KEY_RIGHT)
MATRIX_KEY(3,2,KEY_LEFT)
MATRIX_KEY(3,3,KEY_DOWN)
MATRIX_KEY(4,0,KEY_F1)//EDIT
MATRIX_KEY(4,1,KEY_F2)//MONITOR
MATRIX_KEY(4,2,KEY_F3)//SIGNAL INFO
MATRIX_KEY(4,3,KEY_F4)//ERROR RATE
>;
};
贴代码喔
dts也配置了。会不会跟 rootfs有关?
dts配置了吗?
最近做个8X11行列键盘,我测试都很好,但是客户说有漏按键的。各位有什么经验介绍一下?
http://whycan.com/t_645.html#p14763
(出处:哇酷开发者社区【Cortex M0/M3/M4/M7】)
再说清楚一点吧,需要参考晕哥 https://whycan.com/t_2169.html, V3s buildroot 一键生成打包生成32M spi flash 镜像, jffs2 文件系统, 默认启动 Qt 模拟时钟demo
改为 一键生成 tf卡镜像, rootfs.tar文件系统,谢谢!
这些都会,呵呵。
老大,问题是,现在能修改文件,不会打包成 rootfs.tar。晕哥曾经有一个一键打包成 32m bin文件来烧录 spi_nor的,不知道该怎么改一下来生成 rootfs.tar来烧录 tf卡。
angelsan 说:这个已知。
问题是,怎么生成 rootfs.tar文件,以便可以生成直接烧录的 bin文件来烧录 sd nand。
哇酷小二 说:作为系统服务自动启动,在这个目录添加脚本文件 /etc/init.d/
作为登录用户的自动启动程序,在 /etc/profile.d/ 添加脚本文件
感谢@晕哥, 传一个小智X3卡片电脑和开发板的TF卡镜像打包脚本
http://whycan.com/t_4408.html
(出处:哇酷开发者社区【全志 V3S/F1C100s/X3】)分享全志主线u-boot/linux 打包 TF/SD/SDNAND 镜像脚本
http://whycan.com/t_4008.html
(出处:哇酷开发者社区【全志 V3S/F1C100s/X3】)
非常感谢!
链接:
https://pan.baidu.com/s/1ywdDmKRRqdqBY0BxqjWXtw
提取码:3lao
复制这段内容后打开百度网盘手机App,操作更方便哦
有效期7天
你好,能否再分享一下,谢谢!
链接: https://pan.baidu.com/s/1T2IkIf9Fb7xlxcHsclb61Q 提取码: jx2n
基本上也就source目录下的那几个包有点用,其它的都是什么centos的系统,ubuntu的系统,虚拟机等等。
麻烦能不能再分享一下,谢谢!
└── Tina3.5文档
├── ISP调试文档
│ ├── isp参数详解_v1.1.pdf
│ ├── 旧版Hawkview Tool使用说明书_v1.5.pdf
│ ├── 图像质量调优指南_V1_4.pdf
│ └── 新版HawkviewTools使用说明书_V1.3.pdf
├── minigui
│ ├── minigui3.2裁剪.pdf
│ ├── minigui_per_view视频小视窗播放.pdf
│ ├── MiniGUI TTF旋转字库制作并竖直显示文字.pdf
│ ├── MiniGUI编程指南V3.0.pdf
│ ├── MiniGUI更换键盘皮肤.pdf
│ ├── MiniGUI配置指南.pdf
│ ├── patch
│ │ ├── 012-Add-interface-set-area-alpha.patch
│ │ ├── MiniGUI.cfg
│ │ ├── modules.cfg
│ │ └── 键盘皮肤-工具-字体-补丁.7z
│ └── Ubuntu 64位移植Minigui3.2.pdf
├── TinaTest文档
│ ├── TinaTest使用说明.pdf
│ ├── Tina量产测试使用文档.pdf
│ └── 音频功能测试文档.pdf
├── 基础模块说明文档
│ ├── 多媒体
│ │ ├── TinaLinux_AVS使用指南.pdf
│ │ ├── TinaLinux_Gstreamer使用文档.pdf
│ │ ├── TinaLinux_tplayer播放器开发和使用指南.pdf
│ │ ├── TinaLinux_trecorder录制接口开发和使用指南.pdf
│ │ ├── TinaLinux_WEB开发指南.pdf
│ │ ├── TinaLinux_窗口系统开发指南.pdf
│ │ └── TinaLinux_各平台多媒体格式支持列表.pdf
│ ├── 量产升级
│ │ └── TinaLinux_OTA开发指南.pdf
│ └── 外设
│ ├── TinaLinux_Audio开发指南.pdf
│ ├── TinaLinux_bluetooth开发指南.pdf
│ ├── TinaLinux_Camera开发指南.pdf
│ ├── TinaLinux_Display开发指南.pdf
│ ├── TinaLinux_GPU开发指南.pdf
│ ├── TinaLinux_LCD调试指南.pdf
│ ├── TinaLinux_LEDC开发指南.pdf
│ ├── TinaLinux_Security开发指南.pdf
│ ├── TinaLinux_wifi开发指南.pdf
│ ├── TinaLinux GPIO IR驱动移植说明文档.pdf
│ ├── TinaLinux_存储管理开发指南.pdf
│ └── Tina WIFI RF测试说明文档.pdf
└── 系统文档
├── flash性能说明.pdf
├── GPU性能说明文档.pdf
├── TinaLinux_SDK开发指南.pdf
├── TinaLinux_syslog使用指南.pdf
├── TinaLinux_WIFI_BT_性能测试指南.pdf
├── TinaLinux_功耗管理开发指南.pdf
├── TinaLinux_启动优化开发指南.pdf
├── TinaLinux_系统裁剪开发指南.pdf
├── TinaLinux_系统调试指南.pdf
└── TinaLinux_系统配置说明文档.pdf上传不成功,有需要的从我网盘去取
链接: https://pan.baidu.com/s/19ujLUY6l_l7XCdg44bgDyQ
提取码:3sqn
资料收到没,能不能分享一下,谢谢!
没事, 本站对 ①开发板/②招聘/③个人闲置广告均免费: https://whycan.cn/t_4490.html
那么如果是SD Nand,该怎么操作呢?
谢谢
上面是命令行操作,
如果想要把 固件更新整合到自己的应用程序,
把下面的代码整进来即可:
https://git.busybox.net/busybox/tree/miscutils/flashcp.c
/* vi: set sw=4 ts=4: */ /* * busybox reimplementation of flashcp * * (C) 2009 Stefan Seyfried <seife@sphairon.com> * * Licensed under GPLv2, see file LICENSE in this source tree. */ //config:config FLASHCP //config: bool "flashcp (5.3 kb)" //config: default n # doesn't build on Ubuntu 8.04 //config: help //config: The flashcp binary, inspired by mtd-utils as of git head 5eceb74f7. //config: This utility is used to copy images into a MTD device. //applet:IF_FLASHCP(APPLET(flashcp, BB_DIR_USR_SBIN, BB_SUID_DROP)) /* not NOEXEC: if flash operation stalls, use less memory in "hung" process */ //kbuild:lib-$(CONFIG_FLASHCP) += flashcp.o //usage:#define flashcp_trivial_usage //usage: "-v FILE MTD_DEVICE" //usage:#define flashcp_full_usage "\n\n" //usage: "Copy an image to MTD device\n" //usage: "\n -v Verbose" #include "libbb.h" #include <mtd/mtd-user.h> /* If 1, simulates "flashing" by writing to existing regular file */ #define MTD_DEBUG 0 #define OPT_v (1 << 0) #define BUFSIZE (4 * 1024) static void progress(int mode, uoff_t count, uoff_t total) { uoff_t percent; if (!option_mask32) //if (!(option_mask32 & OPT_v)) return; percent = count * 100; if (total) percent = (unsigned) (percent / total); printf("\r%s: %"OFF_FMT"u/%"OFF_FMT"u (%u%%) ", (mode < 0) ? "Erasing block" : ((mode == 0) ? "Writing kb" : "Verifying kb"), count, total, (unsigned)percent); fflush_all(); } static void progress_newline(void) { if (!option_mask32) //if (!(option_mask32 & OPT_v)) return; bb_putchar('\n'); } int flashcp_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; int flashcp_main(int argc UNUSED_PARAM, char **argv) { int fd_f, fd_d; /* input file and mtd device file descriptors */ int i; uoff_t erase_count; struct mtd_info_user mtd; struct erase_info_user e; struct stat statb; // const char *filename, *devicename; RESERVE_CONFIG_UBUFFER(buf, BUFSIZE); RESERVE_CONFIG_UBUFFER(buf2, BUFSIZE); /*opts =*/ getopt32(argv, "^" "v" "\0" "=2"/*exactly 2 non-option args: file,dev*/); argv += optind; // filename = *argv++; // devicename = *argv; #define filename argv[0] #define devicename argv[1] /* open input file and mtd device and do sanity checks */ fd_f = xopen(filename, O_RDONLY); fstat(fd_f, &statb); fd_d = xopen(devicename, O_SYNC | O_RDWR); #if !MTD_DEBUG if (ioctl(fd_d, MEMGETINFO, &mtd) < 0) { bb_error_msg_and_die("%s is not a MTD flash device", devicename); } if (statb.st_size > mtd.size) { bb_error_msg_and_die("%s bigger than %s", filename, devicename); } #else mtd.erasesize = 64 * 1024; #endif /* always erase a complete block */ erase_count = (uoff_t)(statb.st_size + mtd.erasesize - 1) / mtd.erasesize; /* erase 1 block at a time to be able to give verbose output */ e.length = mtd.erasesize; #if 0 /* (1) bloat * (2) will it work for multi-gigabyte devices? * (3) worse wrt error detection granularity */ /* optimization: if not verbose, erase in one go */ if (!opts) { // if (!(opts & OPT_v)) e.length = mtd.erasesize * erase_count; erase_count = 1; } #endif e.start = 0; for (i = 1; i <= erase_count; i++) { progress(-1, i, erase_count); #if !MTD_DEBUG if (ioctl(fd_d, MEMERASE, &e) < 0) { bb_perror_msg_and_die("erase error at 0x%llx on %s", (long long)e.start, devicename); } #else usleep(100*1000); #endif e.start += mtd.erasesize; } progress_newline(); /* doing this outer loop gives significantly smaller code * than doing two separate loops for writing and verifying */ for (i = 0; i <= 1; i++) { uoff_t done; unsigned count; xlseek(fd_f, 0, SEEK_SET); xlseek(fd_d, 0, SEEK_SET); done = 0; count = BUFSIZE; while (1) { uoff_t rem; progress(i, done / 1024, (uoff_t)statb.st_size / 1024); rem = statb.st_size - done; if (rem == 0) break; if (rem < BUFSIZE) count = rem; xread(fd_f, buf, count); if (i == 0) { int ret; if (count < BUFSIZE) memset((char*)buf + count, 0, BUFSIZE - count); errno = 0; ret = full_write(fd_d, buf, BUFSIZE); if (ret != BUFSIZE) { bb_perror_msg_and_die("write error at 0x%"OFF_FMT"x on %s, " "write returned %d", done, devicename, ret); } } else { /* i == 1 */ xread(fd_d, buf2, count); if (memcmp(buf, buf2, count) != 0) { bb_error_msg_and_die("verification mismatch at 0x%"OFF_FMT"x", done); } } done += count; } progress_newline(); } /* we won't come here if there was an error */ return EXIT_SUCCESS; }
老大,全志官方SDK是指坑卓么?
主线linux支持spi nand很麻烦,但是仍然是可以的: https://whycan.cn/t_3123.html
全志官方sdk也支持 spi nand
非常感谢,可以节省大量的时间,超赞!
做了百度云的分享,给网速慢的小伙伴用。
下载解压后,把dl目录复制到buildroot-2018.08.2目录下。
里面有了主要的工具链,uboot,linux(4.13.y),qt5等,能省掉一部分下载时间。
链接: https://pan.baidu.com/s/1EFNePSuTF9S5mpdLZJguKg
提取码:85vk
页次: 1