20240821给飞凌OK3588-C的核心板刷Rockchip原厂的Buildroot并挂载1TB的exFAT格式的TF卡
fdisk -l
df -h
df -t
df -T
mount
20240821给飞凌OK3588-C的核心板刷Rockchip原厂的Buildroot并挂载1TB的exFAT格式的TF卡
2024/8/21 18:06
【切记,对于Rockchip原厂的Buildroot,如果你没有针对性的适配DTS:修改其中的GPIO口供电,需要使用鼓风机强制散热!且不能长期使用。】
百度:buildroot exFAT fuse
libfuse3 exFAT
插1TB的TF卡之后的dmesg:
[ 110.281840] fdee0000.hdmirx-controller: hdmirx_wait_lock_and_get_timing mu_st:0x0, scdc_st:0x0, dma_st10:0x10
[ 111.345329] rk_hdmirx fdee0000.hdmirx-controller: hdmirx_audio_interrupts_setup: 1
[ 116.015028] fdee0000.hdmirx-controller: hdmirx_wait_lock_and_get_timing signal not lock, tmds_clk_ratio:0
[ 116.015038] fdee0000.hdmirx-controller: hdmirx_wait_lock_and_get_timing mu_st:0x0, scdc_st:0x0, dma_st10:0x10
[ 116.051118] dwmmc_rockchip fe2c0000.mmc: could not set regulator OCR (-22)
[ 116.051157] dwmmc_rockchip fe2c0000.mmc: failed to enable vmmc regulator
[ 116.221066] mmc_host mmc1: Bus speed (slot 0) = 148500000Hz (slot req 150000000Hz, actual 148500000HZ div = 0)
[ 116.481137] dwmmc_rockchip fe2c0000.mmc: Successfully tuned phase to 215
[ 116.481189] mmc1: new ultra high speed SDR104 SDXC card at address 0001
[ 116.482269] mmcblk1: mmc1:0001 FG8Y7 955 GiB
[ 116.486790] dwmmc_rockchip fe2d0000.mmc: No normal pinctrl state
[ 116.486822] dwmmc_rockchip fe2d0000.mmc: No idle pinctrl state
[ 116.486952] dwmmc_rockchip fe2d0000.mmc: IDMAC supports 32-bit address mode.
[ 116.486978] dwmmc_rockchip fe2d0000.mmc: Using internal DMA controller.
[ 116.486989] dwmmc_rockchip fe2d0000.mmc: Version ID is 270a
[ 116.487016] dwmmc_rockchip fe2d0000.mmc: DW MMC controller at irq 92,32 bit host data width,256 deep fifo
[ 117.078678] rk_hdmirx fdee0000.hdmirx-controller: hdmirx_audio_interrupts_setup: 1
[ 121.747481] fdee0000.hdmirx-controller: hdmirx_wait_lock_and_get_timing signal not lock, tmds_clk_ratio:0
[ 121.747491] fdee0000.hdmirx-controller: hdmirx_wait_lock_and_get_timing mu_st:0x0, scdc_st:0x0, dma_st10:0x10
[ 122.811987] rk_hdmirx fdee0000.hdmirx-controller: hdmirx_audio_interrupts_setup: 1
root@rk3588-buildroot:/#
LOG:
Microsoft Windows [版本 10.0.22621.3296]
(c) Microsoft Corporation。保留所有权利。
C:\Users\QQ>adb shell
root@rk3588-buildroot:/#
root@rk3588-buildroot:/# fdisk -l
Found valid GPT with protective MBR; using GPT
Disk /dev/mmcblk0: 120832000 sectors, 1656M
Logical sector size: 512
Disk identifier (GUID): 39470000-0000-4d03-8000-6ab500006d64
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 120831966
Number Start (sector) End (sector) Size Name
1 16384 24575 4096K uboot
2 24576 32767 4096K misc
3 32768 163839 64.0M boot
4 163840 425983 128M recovery
5 425984 491519 32.0M backup
6 491520 29851647 14.0G rootfs
7 29851648 30113791 128M oem
8 30113792 120831935 43.2G userdata
Disk /dev/mmcblk1: 955 GB, 1025423441920 bytes, 2002780160 sectors
124180 cylinders, 256 heads, 63 sectors/track
Units: sectors of 1 * 512 = 512 bytes
Device Boot StartCHS EndCHS StartLBA EndLBA Sectors Size Id Type
/dev/mmcblk1p1 ff 1023,255,63 1023,255,63 4294967295 4294967293 4294967295 2047G ff Unknown
/dev/mmcblk1p2 ff 1023,255,63 1023,255,63 4294967295 4294967293 4294967295 2047G ff Unknown
/dev/mmcblk1p3 ff 1023,255,63 1023,255,63 4294967295 4294967293 4294967295 2047G ff Unknown
/dev/mmcblk1p4 ff 1023,255,63 1023,255,63 4294967295 2559274237 2559274239 1220G ff Unknown
root@rk3588-buildroot:/#
root@rk3588-buildroot:/# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/root 14G 814M 13G 7% /
devtmpfs 3.9G 8.0K 3.9G 1% /dev
tmpfs 3.9G 104K 3.9G 1% /tmp
tmpfs 3.9G 380K 3.9G 1% /run
tmpfs 3.9G 192K 3.9G 1% /var/log
tmpfs 3.9G 0 3.9G 0% /dev/shm
/dev/mmcblk0p7 121M 12M 103M 11% /oem
/dev/mmcblk0p8 42G 299K 42G 1% /userdata
/dev/mmcblk1 955G 502G 454G 53% /mnt/sdcard
root@rk3588-buildroot:/#
root@rk3588-buildroot:/# df -t
df: option requires an argument -- 't'
Try 'df --help' for more information.
root@rk3588-buildroot:/#
root@rk3588-buildroot:/# df -T
Filesystem Type 1K-blocks Used Available Use% Mounted on
/dev/root ext4 14451000 832660 13009536 7% /
devtmpfs devtmpfs 3986812 8 3986804 1% /dev
tmpfs tmpfs 4055676 104 4055572 1% /tmp
tmpfs tmpfs 4055676 380 4055296 1% /run
tmpfs tmpfs 4055676 192 4055484 1% /var/log
tmpfs tmpfs 4055676 0 4055676 0% /dev/shm
/dev/mmcblk0p7 ext4 123509 11913 104929 11% /oem
/dev/mmcblk0p8 ext4 43839502 299 43220459 1% /userdata
/dev/mmcblk1 fuseblk 1001390080 526333184 475056896 53% /mnt/sdcard
root@rk3588-buildroot:/#
root@rk3588-buildroot:/# mount
/dev/mmcblk0p6 on / type ext4 (rw,relatime)
devtmpfs on /dev type devtmpfs (rw,relatime,size=3986812k,nr_inodes=996703,mode=755)
proc on /proc type proc (rw,relatime)
tmpfs on /tmp type tmpfs (rw,relatime,size=4055676k,nr_inodes=1013919)
tmpfs on /run type tmpfs (rw,nosuid,nodev,relatime,size=4055676k,nr_inodes=1013919,mode=755)
tmpfs on /var/log type tmpfs (rw,nosuid,nodev,relatime,size=4055676k,nr_inodes=1013919,mode=755)
devpts on /dev/pts type devpts (rw,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,noexec,relatime,size=4055676k,nr_inodes=1013919)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
configfs on /sys/kernel/config type configfs (rw,relatime)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
/dev/mmcblk0p7 on /oem type ext4 (rw,relatime)
/dev/mmcblk0p8 on /userdata type ext4 (rw,relatime)
adb on /dev/usb-ffs/adb type functionfs (rw,relatime)
/dev/mmcblk1 on /mnt/sdcard type fuseblk (rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096)
root@rk3588-buildroot:/#
root@rk3588-buildroot:/#
root@rk3588-buildroot:/#
root@rk3588-buildroot:/# ls -l
total 128618
-rw-r--r-- 1 root root 22604968 Jan 1 1970 8530-4K-NV16-180-3fps.mp4
-rw-r--r-- 1 root root 75779706 Jan 1 1970 8530-4K-NV16-900-3fps.mp4
drwxrwxrwx 2 root root 4096 Jan 1 00:02 app
lrwxrwxrwx 1 root root 7 Jun 1 2024 bin -> usr/bin
-rw-r--r-- 1 root root 489 May 20 2024 busybox.fragment
lrwxrwxrwx 1 root root 8 Jun 1 2024 data -> userdata
drwxr-xr-x 14 root root 4000 Jan 1 00:01 dev
drwxr-xr-x 23 root root 4096 Jan 1 00:00 etc
drwxr-xr-x 2 root root 4096 Jun 1 2024 info
lrwxrwxrwx 1 root root 7 Jun 1 2024 lib -> usr/lib
lrwxrwxrwx 1 root root 3 Jun 1 2024 lib64 -> lib
lrwxrwxrwx 1 root root 11 Jun 1 2024 linuxrc -> bin/busybox
drwx------ 2 root root 16384 Jun 1 2024 lost+found
drwxr-xr-x 11 root root 4096 Jun 1 2024 media
drwxr-xr-x 5 root root 4096 Jun 1 2024 mnt
-rw-r--r-- 1 root root 16588800 Jan 1 1970 nv12.yuv
-rw-r--r-- 1 root root 16588800 Jan 1 1970 nv16.yuv
drwxr-xr-x 3 root root 1024 Jan 1 00:00 oem
drwxr-xr-x 3 root root 4096 Jun 1 2024 opt
-rw-r--r-- 1 root root 0 Jan 1 00:00 output.yuv
dr-xr-xr-x 266 root root 0 Jan 1 00:00 proc
-rwxrwxrwx 1 root root 69720 Aug 21 2024 rk_mpi_vi_test
drwxr-xr-x 15 root root 4096 Jun 1 2024 rockchip-test
drwx------ 2 root root 4096 Jan 1 00:01 root
drwxr-xr-x 11 root root 520 Jan 1 00:01 run
lrwxrwxrwx 1 root root 8 Jun 1 2024 sbin -> usr/sbin
lrwxrwxrwx 1 root root 10 Jun 1 2024 sdcard -> mnt/sdcard
dr-xr-xr-x 14 root root 0 Jan 1 00:00 sys
drwxr-xr-x 3 root root 4096 Jun 1 2024 system
drwxrwxrwt 6 root root 180 Jan 1 00:00 tmp
lrwxrwxrwx 1 root root 9 Jun 1 2024 udisk -> mnt/udisk
drwxr-xr-x 4 root root 1024 Jan 1 00:00 userdata
drwxr-xr-x 7 root root 4096 Jun 1 2024 usr
drwxr-xr-x 6 root root 4096 Jun 1 2024 var
lrwxrwxrwx 1 root root 6 Jun 1 2024 vendor -> system
root@rk3588-buildroot:/#
root@rk3588-buildroot:/# cd sdcard
root@rk3588-buildroot:/sdcard# ls -l
total 6211584
drwxrwxrwx 1 root root 262144 Aug 16 2024 20240816的FriendlyELEC-RK3588
drwxrwxrwx 1 root root 262144 Aug 16 2024 20240816的cdrom-rd-rk3588s-ahd
drwxrwxrwx 1 root root 262144 Aug 21 2024 'System Volume Information'
-rwxrwxrwx 1 root root 24 Aug 21 2024 exFAT.txt
-rwxrwxrwx 1 root root 6359421848 Aug 15 2024 fpga110000-105-1440p30.mp4
root@rk3588-buildroot:/sdcard#
root@rk3588-buildroot:/sdcard#
root@rk3588-buildroot:/sdcard#
root@rk3588-buildroot:/sdcard# gs
gsettings gst-discoverer-1.0 gst-launch-1.0 gst-stats-1.0 gst-typefind-1.0
gst-device-monitor-1.0 gst-inspect-1.0 gst-play-1.0 gst-transcoder-1.0
root@rk3588-buildroot:/sdcard# gst-play-1.0 fpga110000-105-1440p30.mp4
后记:
看Buildroot对exFAT/NTFS的支持,可以出现在内核/driver层,也可以在应用层/用户控件。
1、内核:
Z:\repo_RK3588_Buildroot20240508\kernel\.config
#
# DOS/FAT/EXFAT/NT Filesystems
#
CONFIG_FAT_FS=y
# CONFIG_MSDOS_FS is not set
CONFIG_VFAT_FS=y
CONFIG_FAT_DEFAULT_CODEPAGE=936
CONFIG_FAT_DEFAULT_IOCHARSET="utf8"
# CONFIG_FAT_DEFAULT_UTF8 is not set
# CONFIG_EXFAT_FS is not set
CONFIG_NTFS_FS=y
# CONFIG_NTFS_DEBUG is not set
# CONFIG_NTFS_RW is not set
# end of DOS/FAT/EXFAT/NT Filesystems
2、应用层:(exFAT和NTFS都有支持!)
Z:\repo_RK3588_Buildroot20240508\buildroot\output\rockchip_rk3588\.config
#
# e2scrub needs bash, coreutils, lvm2, and util-linux
#
# BR2_PACKAGE_E2FSPROGS_E4DEFRAG is not set
BR2_PACKAGE_E2FSPROGS_FSCK=y
# BR2_PACKAGE_E2FSPROGS_FUSE2FS is not set
BR2_PACKAGE_E2FSPROGS_RESIZE2FS=y
# BR2_PACKAGE_E2TOOLS is not set
# BR2_PACKAGE_ECRYPTFS_UTILS is not set
# BR2_PACKAGE_EROFS_UTILS is not set
BR2_PACKAGE_EXFAT=y
BR2_PACKAGE_EXFAT_UTILS=y
# BR2_PACKAGE_EXFATPROGS is not set
# BR2_PACKAGE_F2FS_TOOLS is not set
BR2_PACKAGE_FATRESIZE=y
# BR2_PACKAGE_FIRMWARE_UTILS is not set
# BR2_PACKAGE_FLASHBENCH is not set
# BR2_PACKAGE_FSCRYPTCTL is not set
# BR2_PACKAGE_FUSE_OVERLAYFS is not set
# BR2_PACKAGE_FWUP is not set
# BR2_PACKAGE_GENEXT2FS is not set
# BR2_PACKAGE_GENPART is not set
# BR2_PACKAGE_GENROMFS is not set
# BR2_PACKAGE_IMX_USB_LOADER is not set
# BR2_PACKAGE_MMC_UTILS is not set
# BR2_PACKAGE_MTD is not set
# BR2_PACKAGE_MTOOLS is not set
# BR2_PACKAGE_NFS_UTILS is not set
# BR2_PACKAGE_NILFS_UTILS is not set
BR2_PACKAGE_NTFS_3G=y
# BR2_PACKAGE_NTFS_3G_ENCRYPTED is not set
BR2_PACKAGE_NTFS_3G_NTFSPROGS=y
# BR2_PACKAGE_SP_OOPS_EXTRACT is not set
# BR2_PACKAGE_SQUASHFS is not set
# BR2_PACKAGE_SSHFS is not set
# BR2_PACKAGE_UDFTOOLS is not set
# BR2_PACKAGE_UNIONFS is not set
# BR2_PACKAGE_XFSPROGS is not set
参考资料:
https://blog.csdn.net/xiaosongshine/article/details/98846549
『开发技术』Ubuntu支持exfat格式方法
推荐u盘使用exfat格式,为什么呢?两个原因:
1、三大主流操作系统(Linux、Mac、Windows)都支持exfat格式。
2、exfat支持大于4G的文件。
在ubuntu下,由于版权的原因(据说),默认不支持exfat格式的u盘,不过可以很方便就能添加对exfat的支持:
对于ubuntu 14.04以上版本,直接运行下面的命令就可以了:
sudo apt-get install exfat-utils
http://file.whycan.com/files/202304/T113-I/T113_Linux_%e9%85%8d%e7%bd%ae%e6%8c%87%e5%8d%97_v1.6.pdf
《T113_Linux_配置指南_v1.6.pdf》
【小知识/冷知识:】
对于TF卡/SD卡联盟【移动存储,包括U盘和移动硬盘】,微软贡献了文件系统的专利。
对于软盘大小的介质,使用FAT12文件系统。
对于100MB大小的介质,使用FAT16?
对于40GB大小的介质,使用FAT32。
对于更大容量的介质,微软导入了exFAT。
相关文章:

20240821给飞凌OK3588-C的核心板刷Rockchip原厂的Buildroot并挂载1TB的exFAT格式的TF卡
fdisk -l df -h df -t df -T mount 20240821给飞凌OK3588-C的核心板刷Rockchip原厂的Buildroot并挂载1TB的exFAT格式的TF卡 2024/8/21 18:06 【切记,对于Rockchip原厂的Buildroot,如果你没有针对性的适配DTS:修改其中的GPIO口供电,…...

多模态学习Multimodal Learning:人工智能中的多模态原理与技术介绍初步了解
多模态学习(Multimodal Learning)是机器学习中的一个前沿领域,旨在综合处理和理解来自不同模态的数据。模态可以包括文本、图像、音频、视频等。随着数据多样性和复杂性增加,多模态学习在自然语言处理、计算机视觉、语音识别等领域…...

外部环境连接kafka
修改配置文件外部环境连接kafka 1、kafka的docker官方镜像地址2、kafka官方介绍的三种连接方式3、方式一:Default configs默认配置4、方式二:File input(文件输入:外部配置文件替换docker容器内的配置文件)4.1、首先查…...
结合了MySQL数据库、Elasticsearch和Redis,构建一个产品搜索和推荐系统
1. 数据库设置(MySQL) 首先,我们需要创建两个表来存储产品信息和产品类别信息。 CREATE DATABASE product_system;USE product_system;CREATE TABLE categories (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(255) NOT NULL,created_at…...

白酒与素食:健康与美味的双重享受
在美食的世界里,白酒与素食的搭配仿佛是一场跨界的盛宴。豪迈白酒(HOMANLISM)的醇香与精致素食的清新,在不经意间交织出了一幅美妙的画卷,让人在品味中感受到健康与美味的双重享受。 素食,以其清淡、自然的…...

工厂现场多功能帮手,三防平板改善管理体验
随着制造业的智能化变革,信息化、自动化和智能化逐渐成为工厂管理的新常态。在这一波技术浪潮中,三防平板作为一种多功能的工作工具,正在逐步改善工厂现场的管理体验。 一、三防平板的定义与特点 三防平板,顾名思义,是…...
【git】问题解决---Failed to connect to github.com
场景 最近运行命令git push,git pull或者git clone的时候总会报如下错误 fatal: unable to access https://github.com/xxxxx/xxxxxx.git/: **Failed to connect to github.com** port 443 after 21052 ms: Couldnt connect to server原因 一般是网络配置原因造成的, 如果能…...
Java 中 String 类型的特点
在 Java 中,String 是一种常用且重要的数据类型,用于表示和处理字符序列。它有一些独特的特性和用法,使得它在开发中非常灵活和高效。以下是关于 String 类型的一些特点、特殊性、使用技巧以及注意事项。 1. String 的特点 1.1 不可变性 定…...
AddressUtils 、RegionUtils IP地址工具类
一、类展示 AddressUtils : /*** 获取地址类**/ Slf4j NoArgsConstructor(access AccessLevel.PRIVATE) public class AddressUtils {// 未知地址public static final String UNKNOWN "XX XX";public static String getRealAddressByIP(String ip) {i…...
牛客网SQL进阶134: 满足条件的用户的试卷总完成次数和题目总练习次数
满足条件的用户的试卷完成数和题目练习数_牛客题霸_牛客网 0 问题描述 基于用户信息表user_info、试卷信息表examination_info、试卷作答记录表exam_record、题目练习记录表practice_record,筛选出 高难度SQL试卷得分平均值大于80并且是7级的用户,统计他…...

机器学习:逻辑回归处理手写数字的识别
1、获取数据, 图像分割该数据有50行100列,每个数字占据20*20个像素点,可以进行切分,划分出训练集和测试集。 import numpy as np import pandas as pd import cv2 imgcv2.imread("digits.png")#读取文件 graycv2.cvtColor(img,cv2.COLOR_BGR2G…...

文件上传真hard
一、SpringMVC实现文件上传 1.1.项目结构 1.1.2 控制器方法 RequestMapping("/upload1.do")public ModelAndView upload1(RequestParam("file1") MultipartFile f1) throws IOException {//获取文件名称String originalFilename f1.getOriginalFilename(…...

精益管理|介绍一本专门研究防错法(Poka-Yoke)的书
在现代制造业中,如何确保产品在每个生产环节中不出现错误是企业追求的目标之一。而实现这一目标的关键技术之一就是防错法(Poka-Yoke)。作为一种简单而有效的精益管理、六西格玛管理工具,防错法帮助企业避免因人为错误或工艺不当导…...

面试题目:(4)给表达式添加运算符
目录 题目 代码 思路解析 例子 题目 题目 给定一个仅包含数字 0-9 的字符串 num 和一个目标值整数 target ,在 num 的数字之间添加 二元 运算符(不是一元)、- 或 * ,返回 所有能够得到 target 的表达式。1 < num.length &…...
[C#]将opencvsharp的Mat对象转成onnxruntime的inputtensor的3种方法
第一种方法:在创建tensor时候直接赋值改变每个tensor的值,以下是伪代码: var image new Mat(image_path);inpWidth image.Width;inpHeight image.Height;//将图片转为RGB通道Mat image_rgb new Mat();Cv2.CvtColor(image, image_rgb, Col…...

CTF入门教程(非常详细)从零基础入门到竞赛,看这一篇就够了!
一、CTF简介 CTF(Capture The Flag)中文一般译作夺旗赛,在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式。CTF起源于1996年DEFCON全球黑客大会,以代替之前黑客们通过互相发起真实攻击进行技术比拼的方式。…...

数据链路层 I(组帧、差错控制)【★★★★★】
(★★)代表非常重要的知识点,(★)代表重要的知识点。 为了把主要精力放在点对点信道的数据链路层协议上,可以采用下图(a)所示的三层模型。在这种三层模型中,不管在哪一段…...

悟空降世 撼动全球
文|琥珀食酒社 作者 | 积溪 一只猴子能值多少钱? 答案是:13个小目标 这两天 只要你家没有断网 一定会被这只猴子刷屏 它就是咱国产的3A游戏 《黑神话:悟空》 这只猴子到底有多火? 这么跟你说吧 茅台见了它都…...
Swoole 和 Java 哪个更有优势呢
Swoole 和 Java 各有优势,在性能上不能简单地说哪一个更好,需要根据具体的应用场景来分析。 Swoole 优势:高并发:Swoole 是一个基于 PHP 的异步、协程框架,专为高并发场景设计,适用于 I/O 密集型应用&…...

Salesforce 发布开源大模型 xGen-MM
xGen-MM 论文 在当今 AI 技术飞速发展的时代,一个新的多模态 AI 模型悄然崛起,引起了业界的广泛关注。这个由 Salesforce 推出的开源模型—— xGen-MM,正以其惊人的全能特性和独特优势,在 AI 领域掀起一阵旋风。那么,x…...

铭豹扩展坞 USB转网口 突然无法识别解决方法
当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...

高频面试之3Zookeeper
高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个?3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制(过半机制࿰…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序
一、开发准备 环境搭建: 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 项目创建: File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...
Golang dig框架与GraphQL的完美结合
将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用,可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器,能够帮助开发者更好地管理复杂的依赖关系,而 GraphQL 则是一种用于 API 的查询语言,能够提…...
将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?
Otsu 是一种自动阈值化方法,用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理,能够自动确定一个阈值,将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...
实现弹窗随键盘上移居中
实现弹窗随键盘上移的核心思路 在Android中,可以通过监听键盘的显示和隐藏事件,动态调整弹窗的位置。关键点在于获取键盘高度,并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...
根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:
根据万维钢精英日课6的内容,使用AI(2025)可以参考以下方法: 四个洞见 模型已经比人聪明:以ChatGPT o3为代表的AI非常强大,能运用高级理论解释道理、引用最新学术论文,生成对顶尖科学家都有用的…...

三分算法与DeepSeek辅助证明是单峰函数
前置 单峰函数有唯一的最大值,最大值左侧的数值严格单调递增,最大值右侧的数值严格单调递减。 单谷函数有唯一的最小值,最小值左侧的数值严格单调递减,最小值右侧的数值严格单调递增。 三分的本质 三分和二分一样都是通过不断缩…...

DeepSeek源码深度解析 × 华为仓颉语言编程精粹——从MoE架构到全场景开发生态
前言 在人工智能技术飞速发展的今天,深度学习与大模型技术已成为推动行业变革的核心驱动力,而高效、灵活的开发工具与编程语言则为技术创新提供了重要支撑。本书以两大前沿技术领域为核心,系统性地呈现了两部深度技术著作的精华:…...

沙箱虚拟化技术虚拟机容器之间的关系详解
问题 沙箱、虚拟化、容器三者分开一一介绍的话我知道他们各自都是什么东西,但是如果把三者放在一起,它们之间到底什么关系?又有什么联系呢?我不是很明白!!! 就比如说: 沙箱&#…...