页次: 1
varzhou 说:Kevincoooool 说:PCB和原理图都在Github
可以吧uboot和kernel以及文件系统的配置一起github吗? 你共享那些有些不清晰哈
uboot和kernel直接上源码吧,不大,buildroot就上配置就好了,哈哈哈,白嫖党
辣个不是有了么:
br2配置文件: https://github.com/Kevincoooool/KS_V3S/blob/main/Buildroot/ksdiy.config
linux zImage & 设备树: https://github.com/Kevincoooool/KS_V3S/tree/main/Kernel
u-boot bin: https://github.com/Kevincoooool/KS_V3S/tree/main/Uboot
NES模拟器与游戏文件: https://github.com/Kevincoooool/KS_V3S/tree/main/Nes
硬件: https://github.com/Kevincoooool/KS_V3S/tree/main/Hardware
https://www.olimex.com/Products/OLinuXino/A20/A20-OLinuXino-MICRO/open-source-hardware
A20版本开发板原理图: A20-OLINUXINO-MICRO_Rev_M.pdf
A20 已自带了VGA外设了
https://github.com/u-boot/u-boot/blob/master/configs/A20-OLinuXino_MICRO_defconfig
https://github.com/u-boot/u-boot/blob/master/arch/arm/dts/sun7i-a20-olinuxino-micro.dts
https://github.com/u-boot/u-boot/blob/master/arch/arm/dts/sun7i-a20-olinuxino-lime2.dts
diff --git a/QtScrcpy/QtScrcpy.pro b/QtScrcpy/QtScrcpy.pro
index 0afdc4e..d0ba2cd 100644
--- a/QtScrcpy/QtScrcpy.pro
+++ b/QtScrcpy/QtScrcpy.pro
@@ -142,7 +142,7 @@ win32 {
QMAKE_POST_LINK += $$quote($$QMAKE_COPY $$WIN_FFMPEG_SRC $$WIN_DST$$escape_expand(\n\t))
# windows rc file
- RC_FILE = $$PWD/res/QtScrcpy.rc
+ #RC_FILE = $$PWD/res/QtScrcpy.rc
}
# ***********************************************************
diff --git a/QtScrcpy/adb/adbprocess.cpp b/QtScrcpy/adb/adbprocess.cpp
index ad14835..7af3685 100644
--- a/QtScrcpy/adb/adbprocess.cpp
+++ b/QtScrcpy/adb/adbprocess.cpp
@@ -1,4 +1,4 @@
-#include <QCoreApplication>
+#include <QCoreApplication>
#include <QDebug>
#include <QDir>
#include <QFileInfo>
@@ -116,9 +116,9 @@ QStringList AdbProcess::getDevicesSerialFromStdOut()
{
// get devices serial by adb devices
QStringList serials;
- QStringList devicesInfoList = m_standardOutput.split(QRegExp("\r\n|\n"), Qt::SkipEmptyParts);
+ QStringList devicesInfoList = m_standardOutput.split(QRegExp("\r\n|\n"), QString::SkipEmptyParts);
for (QString deviceInfo : devicesInfoList) {
- QStringList deviceInfos = deviceInfo.split(QRegExp("\t"), Qt::SkipEmptyParts);
+ QStringList deviceInfos = deviceInfo.split(QRegExp("\t"), QString::SkipEmptyParts);
if (2 == deviceInfos.count() && 0 == deviceInfos[1].compare("device")) {
serials << deviceInfos[0];
}
diff --git a/QtScrcpy/device/controller/inputconvert/inputconvertnormal.cpp b/QtScrcpy/device/controller/inputconvert/inputconvertnormal.cpp
index 63924e1..6362231 100644
--- a/QtScrcpy/device/controller/inputconvert/inputconvertnormal.cpp
+++ b/QtScrcpy/device/controller/inputconvert/inputconvertnormal.cpp
@@ -1,4 +1,4 @@
-#include <cmath>
+#include <cmath>
#include "inputconvertnormal.h"
@@ -59,7 +59,7 @@ void InputConvertNormal::wheelEvent(const QWheelEvent *from, const QSize &frameS
qint32 vScroll = from->angleDelta().y() == 0 ? 0 : from->angleDelta().y() / abs(from->angleDelta().y()) * 2;
// pos
- QPointF pos = from->position();
+ QPointF pos = from->posF();
// convert pos
pos.setX(pos.x() * frameSize.width() / showSize.width());
pos.setY(pos.y() * frameSize.height() / showSize.height());
diff --git a/QtScrcpy/device/ui/videoform.cpp b/QtScrcpy/device/ui/videoform.cpp
index 36a6ef4..7fb9468 100644
--- a/QtScrcpy/device/ui/videoform.cpp
+++ b/QtScrcpy/device/ui/videoform.cpp
@@ -1,4 +1,4 @@
-#include <QDesktopWidget>
+#include <QDesktopWidget>
#include <QFileInfo>
#include <QLabel>
#include <QMessageBox>
@@ -611,13 +611,13 @@ void VideoForm::mouseDoubleClickEvent(QMouseEvent *event)
void VideoForm::wheelEvent(QWheelEvent *event)
{
- if (m_videoWidget->geometry().contains(event->position().toPoint())) {
+ if (m_videoWidget->geometry().contains(event->posF().toPoint())) {
if (!m_device) {
return;
}
- QPointF pos = m_videoWidget->mapFrom(this, event->position().toPoint());
+ QPointF pos = m_videoWidget->mapFrom(this, event->posF().toPoint());
QWheelEvent wheelEvent(
- pos, event->globalPosition(), event->pixelDelta(), event->angleDelta(), event->buttons(), event->modifiers(), event->phase(), event->inverted());
+ pos, event->globalPosF(), event->pixelDelta(), event->angleDelta(), event->buttons(), event->modifiers(), event->phase(), event->inverted());
emit m_device->wheelEvent(&wheelEvent, m_videoWidget->frameSize(), m_videoWidget->size());
}
}
diff --git a/QtScrcpy/dialog.cpp b/QtScrcpy/dialog.cpp
index e5f6827..d143f67 100644
--- a/QtScrcpy/dialog.cpp
+++ b/QtScrcpy/dialog.cpp
@@ -1,4 +1,4 @@
-#include <QDebug>
+#include <QDebug>
#include <QFile>
#include <QFileDialog>
#include <QKeyEvent>
@@ -137,7 +137,7 @@ void Dialog::execAdbCmd()
}
QString cmd = ui->adbCommandEdt->text().trimmed();
outLog("adb " + cmd, false);
- m_adb.execute(ui->serialBox->currentText().trimmed(), cmd.split(" ", Qt::SkipEmptyParts));
+ m_adb.execute(ui->serialBox->currentText().trimmed(), cmd.split(" ", QString::SkipEmptyParts));
}
QString Dialog::getGameScript(const QString &fileName)
Qt5.12.3 mingw64 可以编译成功 ^_^
请问linux驱动可以访问bootargs参数吗?我想传递几个参数给这个进度条驱动程序。
$ find . |grep cmdline |grep \\.h$
./block/partitions/cmdline.h
./kernel/printk/console_cmdline.h
./include/config/fb/cmdline.h
./include/config/cmdline/from/bootloader.h
./include/config/mtd/cmdline/parts.h
./include/config/cmdline.h
./include/config/arm/atag/dtb/compat/cmdline/from/bootloader.h
./include/linux/cmdline-parser.h
./arch/x86/include/asm/cmdline.h
$ find . |grep cmdline |grep \\.c$
./block/cmdline-parser.c
./block/partitions/cmdline.c
./fs/proc/cmdline.c
./drivers/video/fbdev/core/fb_cmdline.c
./drivers/mtd/cmdlinepart.c
./arch/x86/boot/cmdline.c
./arch/x86/boot/compressed/cmdline.c
./arch/x86/lib/cmdline.c
./arch/mips/loongson64/common/cmdline.c
./arch/mips/fw/arc/cmdline.c
./arch/mips/fw/lib/cmdline.c
./arch/mips/dec/prom/cmdline.c
./lib/cmdline.c
可以从这里面找代码
for i in {1..6000}; do echo $i; done | xargs -i curl https://web.archive.org/save/https://whycan.com/t_{}.html
太简单了, 我就不解释了。
http://hutaow.com/blog/2014/08/28/display-process-memory-in-linux/
VmPeak 进程所使用的虚拟内存的峰值
VmSize 进程当前使用的虚拟内存的大小
VmLck 已经锁住的物理内存的大小(锁住的物理内存不能交换到硬盘)
VmHWM 进程所使用的物理内存的峰值
VmRSS 进程当前使用的物理内存的大小
VmData 进程占用的数据段大小
VmStk 进程占用的栈大小
VmExe 进程占用的代码段大小(不包括库)
VmLib 进程所加载的动态库所占用的内存大小(可能与其它进程共享)
VmPTE 进程占用的页表大小(交换表项数量)
VmSwap 进程所使用的交换区的大小
举例
显示进程cron的内存信息,通过pidof cron获取进程ID,或者通过ps -aux | grep cron查找进程ID。
$ cat /proc/1161/status
Name: cron
State: S (sleeping)
Tgid: 1161
Ngid: 0
Pid: 1161
PPid: 1
TracerPid: 0
Uid: 0 0 0 0
Gid: 0 0 0 0
FDSize: 64
Groups: 0
VmPeak: 23792 kB
VmSize: 23656 kB
VmLck: 0 kB
VmPin: 0 kB
VmHWM: 1040 kB
VmRSS: 1004 kB
VmData: 260 kB
VmStk: 136 kB
VmExe: 40 kB
VmLib: 2668 kB
VmPTE: 72 kB
VmSwap: 0 kB
Threads: 1
SigQ: 0/15442
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000000000
SigIgn: 0000000000000000
SigCgt: 0000000000010001
CapInh: 0000000000000000
CapPrm: 0000001fffffffff
CapEff: 0000001fffffffff
CapBnd: 0000001fffffffff
Seccomp: 0
Cpus_allowed: 3
Cpus_allowed_list: 0-1
Mems_allowed: 00000000,00000001
Mems_allowed_list: 0
voluntary_ctxt_switches: 151
nonvoluntary_ctxt_switches: 0
1. 修改 ./board/allwinner/suniv-f1c100s/uboot.env
建议把 dfu_wait_timeout=5 改为 dfu_wait_timeout=30
然后执行 ./rebuild-uboot.sh & ./rebuild-kernel.sh
2. 烧录 TF卡镜像, USB线插入OTG口重启, 串口出现musb-hdrc: peripheral reset irq lost!时使用zadig安装libusb驱动程序
U-Boot 2020.07 (Oct 09 2020 - 17:01:22 +0800) Allwinner Technology
CPU: Allwinner F Series (SUNIV)
Model: Allwinner F1C100s Generic Device
DRAM: 64 MiB
MMC: mmc@1c0f000: 0, mmc@1c10000: 1
Setting up a 800x480 lcd console (overscan 0x0)
In: serial
Out: vga
Err: vga
Allwinner mUSB OTG (Peripheral)
Hit any key to stop autoboot: 0
Booting from FEL...
unknown raw ID 82e625a8
List of MTD devices:
No MTD device found
SF: Detected w25q128 with page size 256 Bytes, erase size 4 KiB, total 16 MiB
DFU waiting on SPI-NOR...
musb-hdrc: peripheral reset irq lost!
3. 执行烧录命令: "D:\aabb\dfu-util-0.9-win64\dfu-util-static.exe" -R -a all -D sysimage-nor.img
buildroot-tiny200 (F1C100/200s) 开发包近期更新内容 * 已支持DVP摄像头 *
http://whycan.com/t_5221.html
(出处:哇酷开发者社区【全志 V3S/F1C100s/X3】)
页次: 1