WhyCan Forum(哇酷开发者社区)

人过留名,雁过留声,感谢各位朋友不离不弃地支持。 QQ: 516333132, 微信: whycan_cn (哇酷网/挖坑网/填坑网) admin@whycan.cn

您尚未登录。

#1 Re: 全志/Allwinnertech/V3S/A64/H6/A20/A33/F1C100s » 终于把V3s三个串口全部榨干, 控制台只能用 ssh 了, 泪崩 » 2020-03-25 19:03:11

晕哥 说:

关于如何编译 dropbear 这个使用 buildroot menuconfig 找到这个软件包开启即可,
然后眼力不好找不到,可以直接打开 .config 文件编辑即可。

使用方法可以参考这个:
https://blog.csdn.net/hai__yun/article/details/77966315

使用步骤:

dropbear 密钥对登录没搞定,悲伤

#2 Re: 全志/Allwinnertech/V3S/A64/H6/A20/A33/F1C100s » v3s使用ubuntu根文件系统,加载驱动模块出现问题 » 2020-03-25 18:29:20

INSTALL_MOD_PATH=armlinux根目录 make modues_install

上面朋友不是说了吗,怎么不听呢

#5 Re: DIY/综合/Arduino/写字机/3D打印机/智能小车/平衡车/四轴飞行/ » 请问LC凭什么卖这么贵? » 2020-03-20 19:19:30

Blueskull 说:

眼图和扛干扰/EFT肯定有区别。而且这种带有隔离性质的器件需要过安全认证,几个主流国家的安全+EMI+EFT认证全做下来最少得200w。器件级认证比成品级认证贵。

果然大佬

#6 Re: 计算机图形/GUI/RTOS/FileSystem » @assert 分享的在littlevgl 调用freetye显示文字, 而不用通过字模软件生成 » 2020-01-12 11:50:00

lilo 说:

对接是指如何调用吗?
调用方法可以参考晕哥这个帖子: https://whycan.cn/t_741.html

文件系统改改代码估计未必需要, 把需要的字扣出来, 存到另外一个 ttf 文件里面, 然后把文件存数组。

剪裁ttf字库可以参考 中科世为 这个套路: https://developer.flythings.cn/docs/zh/font_cut_tool

噢, 这个好思路, 正愁我的微软雅黑太大呢, 其实也就用几个字而已。

#7 Re: 技术人生/软件使用技巧/破解经验/技术吐槽/灌水 » 据说这几天高速公路收费站乱成一团, 感觉这次zf有点鲁莽了,应该先找两个比较偏远的省份先试点,或者先开放一个省际收费站用于调试 » 2020-01-12 10:58:14

20200112105016A.jpg

20200112105011A.jpg




看看我们楼下的收(cun)费(ba)停车场,2020-1-1改了收费规则,结果就酱紫了6556.5 元停车费,

各位程序猿/攻城师 对这个数字是不是有点眼熟?


一个停车场随便改下都影响这么大, ETC全国联网是不是先要小范围测试一下呢?

#8 Re: VMWare/Linux/Ubuntu/Fedora/CentOS/U-BOOT » 转发一个opengl 渲染到缓冲区,写到文件的 demo » 2020-01-12 09:48:15

#include <GL/glut.h>
void display(void)
{
	glClear(GL_COLOR_BUFFER_BIT);
	glColor4f(0.2f, 0.4f, 0.6f, 0.0f);
	glRectf(-0.5f, -0.5f, 0.5f, 0.5f);
	glFlush();
}

int main(int argc, char *argv[])
{
	glutInit(&argc, argv);
	glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
	glutInitWindowPosition(100, 100);
	glutInitWindowSize(400, 400);
	glutCreateWindow("hello world");
	glutDisplayFunc(display);
	glutMainLoop();
	return 0;
}

顺手写了一个简单的opengl 程序。

#9 Re: VMWare/Linux/Ubuntu/Fedora/CentOS/U-BOOT » 转发一个opengl 渲染到缓冲区,写到文件的 demo » 2020-01-12 09:33:24

感谢分享, 确实好用。

本地窗口显示256帧800x480旋转三角形:

./offscreen 0 256 800 480

渲染256帧800x480旋转三角形到ppm(2^0)文件:

./offscreen 1 256 800 480 0

渲染256帧800x480旋转三角形到png(2^1)文件:

./offscreen 1 256 800 480 2

渲染256帧800x480旋转三角形到mpg(2^2)文件:

./offscreen 1 256 800 480 4

#11 Re: 计算机图形/GUI/RTOS/FileSystem » 发现一个轻量级UI, 移植到 STM32/STM8 不错 ----- µGUI/uGUI » 2019-11-15 08:25:34

ugui 这个好, 看了一下代码确实简洁,资源占用少, 用在单片机不错。

#14 Re: 全志/Allwinnertech/V3S/A64/H6/A20/A33/F1C100s » 分享一个 5寸的 800x480 的 f1c100s 固件, 感谢 @xm1994 » 2019-11-12 16:59:39

@zhaolei_cpp @kekemuyu

f1c100s_linux_4.15_emwin_dump_20190827.bin

这个固件无密码 ^_^
直接回车就行。

----------
一不小心就掉楼层了, 尴尬.gif

#15 Re: 全志/Allwinnertech/V3S/A64/H6/A20/A33/F1C100s » 无法安装模块 » 2019-11-12 16:24:55

wpa_supplicant  -Dnl80211 -B -d -i wlan0 -c /etc/wpa_supplicant.conf
wpa_supplicant  -Dwext  -B -d -i wlan0 -c /etc/wpa_supplicant.conf

再试一下这两个命令?

#16 Re: 全志/Allwinnertech/V3S/A64/H6/A20/A33/F1C100s » licheePi zero 获取不到设备树方式驱动spi的clk怎么办? » 2019-11-12 16:03:58

哈, 你这样改只是让 mp2515 有了时钟, 暂时跑起来了,后面可能会有未知的坑,目前调试 can 的时候可以这么做,后面量产的时候一定记得改回来。

#17 Re: 全志/Allwinnertech/V3S/A64/H6/A20/A33/F1C100s » licheePi zero 获取不到设备树方式驱动spi的clk怎么办? » 2019-11-12 15:31:51

https://lkml.org/lkml/2019/4/18/554

Oceanic 5205 5inMFD has MCP2515 CAN device connected via SPI1.

- via SPI1 bus
- vdd supplied by 5V supply along with PL2 enable pin
- xceiver supply same as vdd
- can oscillator connected at 20MHz
- PB2 gpio as interrupt pin
- PD6 gpio as RX_BUF1_CAN0
- PD7 gpio as RX_BUF0_CAN0

Tested-by: Tamas Papp <tamas@osukl.com>
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
---
 .../sun50i-a64-oceanic-5205-5inmfd.dts        | 43 +++++++++++++++++++
 1 file changed, 43 insertions(+)

diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-oceanic-5205-5inmfd.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-oceanic-5205-5inmfd.dts
index f0cd6587f619..22535a297f51 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-oceanic-5205-5inmfd.dts
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-oceanic-5205-5inmfd.dts
@@ -21,6 +21,24 @@
 	chosen {
 		stdout-path = "serial0:115200n8";
 	};
+
+	can_osc: can-osc {
+		compatible = "fixed-clock";
+		#clock-cells = <0>;
+		clock-frequency = <20000000>;
+	};
+
+	reg_can_v5v: reg-can-v5v {
+		compatible = "regulator-fixed";
+		regulator-name = "reg-can-v5v";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+		regulator-boot-on;
+		enable-active-high;
+		gpio = <&r_pio 0 2 GPIO_ACTIVE_HIGH>; /* CAN_3V3_EN: PL2 */
+		status = "okay";
+	};
+
 };
 
 &ehci0 {
@@ -77,6 +95,31 @@
 	status = "okay";
 };
 
+&pio {
+	can_pins: can-pins {
+		pins = "PD6",			/* RX_BUF1_CAN0 */
+		       "PD7";			/* RX_BUF0_CAN0 */
+		function = "gpio_in";
+	};
+};
+
+&spi1 {
+	status = "okay";
+
+	can@0 {
+		compatible = "microchip,mcp2515";
+		reg = <0>;
+		spi-max-frequency = <10000000>;
+		pinctrl-names = "default";
+		pinctrl-0 = <&can_pins>;
+		interrupt-parent = <&pio>;
+		interrupts = <1 2 IRQ_TYPE_EDGE_FALLING>;	/* INT_CAN0: PB2 */
+		clocks = <&can_osc>;
+		vdd-supply = <&reg_can_v5v>;
+		xceiver-supply = <&reg_can_v5v>;
+	};
+};
+
 &uart0 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&uart0_pb_pins>;
-- 
2.18.0.321.gffc6fa0e3

#18 Re: 全志/Allwinnertech/V3S/A64/H6/A20/A33/F1C100s » licheePi zero 获取不到设备树方式驱动spi的clk怎么办? » 2019-11-12 15:06:59

也可以参考这个,刚好也是全志的

https://github.com/armbian/sunxi-DT-overlays/blob/master/examples/spi-mcp251x.dts

			can0_osc_fixed: can0_osc_fixed {
				compatible = "fixed-clock";
				#clock-cells = <0>;
				clock-frequency  = <8000000>;
			};
			mcp2515 {
				reg = <0>;
				compatible = "microchip,mcp2515";
				pinctrl-names = "default";
				pinctrl-0 = <&can0_pin_irq>;
				spi-max-frequency = <10000000>;
				interrupt-parent = <&pio>;
				interrupts = <0 7 2>; /* PA7 IRQ_TYPE_EDGE_FALLING */
				clocks = <&can0_osc_fixed>;
				status = "okay";
			};

#22 Re: 全志/Allwinnertech/V3S/A64/H6/A20/A33/F1C100s » V3s SPI NAND u-boot @openwrt » 2019-11-09 09:05:55

从头到尾看了半天这个帖子, 估计奔溃问题, 可能还是和dts频率有关系, 降频或许就解决了。

#24 技术人生/软件使用技巧/破解经验/技术吐槽/灌水 » 分享google搜索的一些小技巧 » 2019-11-09 08:38:48

我思故我在
回复: 4

模式匹配, 搜索框输入:

"(红|黑) (狐狸|狼)"

这样就可以得到四种搜索结果: 红狼,红狐狸,黑狼,黑狐狸

#25 Re: 全志/Allwinnertech/V3S/A64/H6/A20/A33/F1C100s » 关于buildroot » 2019-11-08 17:13:50

cris8259 说:

uboot kernel 都是用/opt/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi编译,为何buildroot用一样的编译器就不行了

用 -v 参数打印出来看下, 可能要设置一个参数, 如果用默认参数编译会生成arm9识别不了的指令,然后就没有然后了。

#27 Re: 全志/Allwinnertech/V3S/A64/H6/A20/A33/F1C100s » 关于buildroot » 2019-11-08 16:01:28

mmexport1573199104860.png

mmexport1573199102650.png

第一张图是buildroot 2019里面的Config.in
第二张是2017
人家规定了版本
至于4.10可以,4.15报错,要看看她的buildroot里面的具体情况
有些脚本编写时可能没有考虑到新版本
这个在./configure时经常出现,不知道buildroot是不是一样存在

#28 Re: 全志/Allwinnertech/V3S/A64/H6/A20/A33/F1C100s » V3s SPI NAND u-boot @openwrt » 2019-11-07 14:53:07

@bamkrsde 感谢分享!我看你用的是海豚派(dolphinpi)的V3s开发板, 请问板上的ESP8089驱动了吗?是不是用这个开发板做WIFI中继?

#30 Re: 全志/Allwinnertech/V3S/A64/H6/A20/A33/F1C100s » licheepi nano f1c100s uboot 从spiflash启动困惑 » 2019-11-05 14:27:27

EddyZhan 说:

修改完毕SPL的启动顺序以后这个问题基本解决了。

按5楼的方法修改吗?

#33 Re: 站务公告 » V3S LRADC按键 » 2019-11-04 14:29:22

# cat /proc/interrupts
           CPU0
 19:    4012472     GIC-0  27 Level     arch_timer
 21:          0     GIC-0  50 Level     /soc/timer@01c20c00
 22:          0     GIC-0  82 Level     1c02000.dma-controller
 23:          0     GIC-0 103 Level     musb-hdrc.1.auto
 24:          0     GIC-0 104 Level     ehci_hcd:usb1
 25:          0     GIC-0 105 Level     ohci_hcd:usb2
 30:          0     GIC-0  62 Level     sun4i-a10-lradc-keys
 33:        425     GIC-0  33 Level     ttyS1
 34:          8     GIC-0  34 Level     ttyS2
 35:    5740272     GIC-0  38 Level     mv64xxx_i2c
 36:        181     GIC-0 114 Level     eth0
 37:    1161519     GIC-0  97 Level     sun6i-spi
IPI0:          0  CPU wakeup interrupts
IPI1:          0  Timer broadcast interrupts
IPI2:          0  Rescheduling interrupts
IPI3:          0  Function call interrupts
IPI4:          0  CPU stop interrupts
IPI5:          0  IRQ work interrupts
IPI6:          0  completion interrupts
Err:          0

30:          0     GIC-0  62 Level     sun4i-a10-lradc-keys

主线是这样的。

#34 Re: 全志/Allwinnertech/V3S/A64/H6/A20/A33/F1C100s » f1c100s和v3s没有内部温度传感器吗? » 2019-11-04 14:26:42

我记得Q群里面有一个狠人, 把V3s装在一个100摄氏度的盒子里面跑, 据说很稳定。

#35 Re: 全志/Allwinnertech/V3S/A64/H6/A20/A33/F1C100s » f1c100s和v3s没有内部温度传感器吗? » 2019-11-04 14:22:10

f1c100s 有温度传感器, 但是手册没写, 和 RTP的在一起, 具体参考 A20 的手册, 偏移地址是一样的。V3s不清楚有没有。

#37 Re: 全志/Allwinnertech/V3S/A64/H6/A20/A33/F1C100s » 【汇总】最便宜的A5 A7 A8 A9 A53芯片汇总 » 2019-11-04 14:04:47

http://www.orangepi.cn/downloadresourcescn/

Orange Pi 2G-IoT

Android 源码更新:2019-02-18
Linux 源码更新:2017-08-14
社区文档更新:2019-06-12
官方工具 更新:2018-01-31
用户手册更新:2018-01-31
Ubuntu Server更新:2018-01-31
Debian Server更新:2018-01-31
Raspbian Server更新:2018-01-31
Android Tcard Startup更新:2018-01-31
Android Nand Startup更新:2018-01-31
Linux nand startup更新:2019-05-29

#40 Re: 全志/Allwinnertech/V3S/A64/H6/A20/A33/F1C100s » linux-4.13.y 4.14 5.2有什么区别? » 2019-10-28 15:59:16

Sorry, we had to truncate this directory to 1,000 files. 992 entries were omitted from the list.

抱歉,我们必须将该目录截断为1,000个文件。列表中省略了992个条目。

#42 Re: 全志/Allwinnertech/V3S/A64/H6/A20/A33/F1C100s » 全志A40I的video*切换问题? » 2019-10-28 15:25:09

那建议先改下应用层的软件, 把默认值 video0(uvc) 改成 video2(csi)

#45 Re: 全志/Allwinnertech/V3S/A64/H6/A20/A33/F1C100s » 利用fswebcam抓取图像 » 2019-10-28 14:21:04

文件大小正常吗?

抓 bmp 试一试:

fswebcam -d /dev/video0 -q -r 1024x768 test.bmp

#47 Re: 技术人生/软件使用技巧/破解经验/技术吐槽/灌水 » 时隔十年, Linux QQ在贸易战复活 » 2019-10-28 10:24:09

开放给国产软硬件厂商, 他们自己可以开发自己的QQ, 反正就是用扫码登录, 也不泄露啥?

#56 Re: 技术人生/软件使用技巧/破解经验/技术吐槽/灌水 » 少壮不努力,老大用红米, 终于抢到了传说中的 红米Note7, 这卡成狗的MI5可以退休了. » 2019-10-26 08:22:30

买了一个小米的黄金会员, 50G存储空间, 只要用小米的手机登录我的账号, 照片就自动刷刷刷下来了, 所以不想换别的品牌手机。

#58 Re: 全志/Allwinnertech/V3S/A64/H6/A20/A33/F1C100s » V3S的U-BOOT能读写U盘吗? » 2019-10-26 08:09:31

我曾经试过 u-boot 2019.04 没搞定, 然后就放弃治疗了。

#59 Re: VMWare/Linux/Ubuntu/Fedora/CentOS/U-BOOT » VMWare虚拟机 Ubuntu gnome 没有动画效果, 而真机Ubuntu有动画效果的原因 » 2019-10-15 22:05:17

特意查了一下,我的mac air 是 Intel® HD Graphics 4000 显卡,

用的是 i915 驱动:

MacBookAir:~$ lsmod |grep i915
i915                 1818624  16
drm_kms_helper        180224  1 i915
drm                   483328  6 drm_kms_helper,i915
i2c_algo_bit           16384  1 i915
video                  49152  1 i915

驱动源码: https://github.com/torvalds/linux/tree/master/drivers/gpu/drm/i915

#60 Re: 全志/Allwinnertech/V3S/A64/H6/A20/A33/F1C100s » 发现淘宝有卖F1C100S源码的 » 2019-10-12 13:41:18

建议大家买买买,据说那位作者的代码写得非常优雅。

#62 Re: 全志/Allwinnertech/V3S/A64/H6/A20/A33/F1C100s » f1c100s烧写uboot没有log输出 » 2019-10-11 17:28:47

sudo sunxi-fel -p spiflash-info

sudo sunxi-fel -p spiflash-read 0 0x100000 readback.bin

#63 Re: 全志/Allwinnertech/V3S/A64/H6/A20/A33/F1C100s » V3s内部的RTC很不准,误差每天接近两分钟!!!? » 2019-10-11 15:50:58

Rikka0w0 说:

这货好像没有板载晶振 是从哪分频得到的内部时钟源吧

内部 RC 震荡。

#64 Re: web/html5/javascript/js » 现在web前端设计效果比起从前的MFC酷多了 » 2019-10-11 13:42:52

dgtg 说:

请问楼主,如何入门web前端设计?

我也在门外徘徊啊,不过根据网上大神经验,

学点 html,css,js基础, 然后就上 bootstrap/vue 框架, bilibili上面大把视频教程.

我正在研究 bootstrap, 这个发端于推特的前端框架看起来相当不错:
https://getbootstrap.com/docs/4.3/getting-started/introduction/
https://getbootstrap.com/docs/4.3/examples/

https://www.jasny.net/bootstrap/examples/navbar-offcanvas/

#68 Re: VMWare/Linux/Ubuntu/Fedora/CentOS/U-BOOT » ubuntu18.04 nvidia显卡GPU编程 » 2019-10-08 22:00:31

一楼那个toolkit安装或许可以用这个命令代替:  sudo apt install nvidia-cuda-toolkit

#70 Re: VMWare/Linux/Ubuntu/Fedora/CentOS/U-BOOT » ubuntu18.04 nvidia显卡GPU编程 » 2019-10-08 09:20:41

链接: C ++中的CUDA GPU编程教程

引言

在本指南中,我们将探讨使用C ++编程的GPU的强大功能。
开发人员可以期望使用C ++具有令人难以置信的性能,
并且使用低级语言访问GPU的强大功能可以生成一些当前可用的最快的计算。

要求条件

虽然任何能够运行现代版本Linux的计算机都可以支持C ++编译器,
但您将需要基于NVIDIA的显卡。如果没有GPU,
则可以使用Amazon Web Services或您喜欢的任何其他云服务提供商来激活实例。

如果决定使用物理机,请确保已安装专有的NVDIA驱动程序。您可以在以下位置找到有关此信息:
https://linuxhint.com/install-nvidia-drivers-linux/

除了驱动程序,您还需要CUDA工具包。在此示例中,我们将使用Ubuntu 16.04 LTS,
但是大多数主要Linux发行版都有可供下载的版本,可以在以下链接中找到:
https://developer.nvidia.com/cuda-downloads

对于Ubuntu,您应该选择下载.deb文件。下载的文件没有扩展名.deb,但是您可以轻松地重命名它。
然后,您可以使用以下命令进行安装:

sudo dpkg -i package-name.deb
可能会询问您是否要安装GPG密钥,如果要安装,请按照提供的说明进行安装。

完成后,更新您的存储库:

sudo apt-get update
sudo apt-get install cuda -y
完成后,建议您重新启动系统以确保所有内容均已正确加载。

GPU开发的好处

CPU处理许多不同的输入和输出,并且包含各种功能,
不仅可以处理各种必需的程序,而且还可以管理各种硬件配置。
它们还处理内存,缓存,系统总线,分段和I / O功能,使它们成为所有任务的服务器。

GPU相反,它们包含许多单独的处理器,它们专注于非常简单的数学函数。
因此,它们处理任务的速度比CPU快许多倍。通过专门研究标量函数(接受一个或多个输入并返回单个输出的函数),
它们以牺牲极度专业化为代价来实现极高的性能。

样例代码

在此示例中,我们将添加两个向量。添加一个带有CPU的版本和一个带有GPU的版本以进行速度比较。
gpu-example.cu 文件包含以下代码:

#include "cuda_runtime.h"
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <cstdio>
#include <chrono>
 
typedef std::chrono::high_resolution_clock Clock;
 
#define ITER 65535
 
// Version CPU de la función suma de vectores
void vector_add_cpu(int *a, int *b, int *c, int n) {
    int i;
 
    // Add the vector elements a and b to the vector c
    for (i = 0; i < n; ++i) {
    c[i] = a[i] + b[i];
    }
}
 
// Versión GPU de la función suma de vectores
__global__ void vector_add_gpu(int *gpu_a, int *gpu_b, int *gpu_c, int n) {
    int i = threadIdx.x;
    // No es necesario el loop for por que el runtime de CUDA
    // maneja estos hilos ITER veces
    gpu_c[i] = gpu_a[i] + gpu_b[i];
}
 
int main() {
 
    int *a, *b, *c;
    int *gpu_a, *gpu_b, *gpu_c;
 
    a = (int *)malloc(ITER * sizeof(int));
    b = (int *)malloc(ITER * sizeof(int));
    c = (int *)malloc(ITER * sizeof(int));
 
    // Necesitamos variables accesibles en CUDA,
    // para eso cudaMallocManaged nos las provee
    cudaMallocManaged(&gpu_a, ITER * sizeof(int));
    cudaMallocManaged(&gpu_b, ITER * sizeof(int));
    cudaMallocManaged(&gpu_c, ITER * sizeof(int));
 
    for (int i = 0; i < ITER; ++i) {
        a[i] = i;
        b[i] = i;
        c[i] = i;
    }
 
    // Llama a la versión CPU y la temporiza
    auto cpu_start = Clock::now();
    vector_add_cpu(a, b, c, ITER);
    auto cpu_end = Clock::now();
    std::cout << "vector_add_cpu: "
    << std::chrono::duration_cast<std::chrono::nanoseconds>(cpu_end - cpu_start).count()
    << " nanoseconds.\n";
 
    // Llama a la versión GPU y la temporiza
    // Los triples <> es una extensión del runtime CUDA que permite
    // que los parametros de una llamada al kernel CUDA sean pasados
    // En este ejemplo estamos pasando un thread block con ITER threads
    auto gpu_start = Clock::now();
    vector_add_gpu <<<1, ITER>>> (gpu_a, gpu_b, gpu_c, ITER);
    cudaDeviceSynchronize();
    auto gpu_end = Clock::now();
    std::cout << "vector_add_gpu: "
    << std::chrono::duration_cast<std::chrono::nanoseconds>(gpu_end - gpu_start).count()
    << " nanoseconds.\n";
 
    // Libere la memoria basada en la función GPU allocations
    cudaFree(a);
    cudaFree(b);
    cudaFree(c);
 
    // Libere la memoria basada en la función CPU allocations
    free(a);
    free(b);
    free(c);
 
    return 0;
}

Makefile包含:

INC=-I/usr/local/cuda/include
NVCC=/usr/local/cuda/bin/nvcc
NVCC_OPT=-std=c++11
 
all:
    $(NVCC) $(NVCC_OPT) gpu-example.cu-o gpu-example
 
clean:
    -rm -f gpu-example

要运行该示例,请首先编译:
make

然后运行程序:
./gpu-example

如您所见,CPU版本的运行速度明显慢于GPU版本。

如果不是,则必须将gpu-example.cu 中定义的ITER设置为更高的数字。
这是因为GPU的配置时间比一些占用大量CPU的较小循环更长。
我发现65535在我的机器上可以正常工作,但是其里程可能会有所不同。
但是,一旦清除此阈值,GPU就会比CPU快得多。

结论

希望您从我们的C ++ GPU编程入门中学到很多。前面的示例并没有太大的成就,
但是演示的概念提供了一个框架,您可以使用该框架合并您的想法以释放GPU的功能。

#71 VMWare/Linux/Ubuntu/Fedora/CentOS/U-BOOT » ubuntu18.04 nvidia显卡GPU编程 » 2019-10-08 09:14:00

我思故我在
回复: 3

1. 安装nvidia开发工具
https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=1804&target_type=deblocal

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin
sudo mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget http://developer.download.nvidia.com/compute/cuda/10.1/Prod/local_installers/cuda-repo-ubuntu1804-10-1-local-10.1.243-418.87.00_1.0-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu1804-10-1-local-10.1.243-418.87.00_1.0-1_amd64.deb
sudo apt-key add /var/cuda-repo-10-1-local-10.1.243-418.87.00/7fa2af80.pub
sudo apt-get update
sudo apt-get -y install cuda

2. 测试代码:
https://linuxhint.com/gpu-programming-cpp/
https://eslinux.com/programacion-gpu-cuda/

gpu-example.cu:

#include "cuda_runtime.h"
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <cstdio>
#include <chrono>

typedef std::chrono::high_resolution_clock Clock;

#define ITER 65535

// CPU version of the vector add function
void vector_add_cpu(int *a, int *b, int *c, int n) {
    int i;

    // Add the vector elements a and b to the vector c
    for (i = 0; i < n; ++i) {
    c[i] = a[i] + b[i];
    }
}

// GPU version of the vector add function
__global__ void vector_add_gpu(int *gpu_a, int *gpu_b, int *gpu_c, int n) {
    int i = threadIdx.x;
    // No for loop needed because the CUDA runtime
    // will thread this ITER times
    gpu_c[i] = gpu_a[i] + gpu_b[i];
}

int main() {

    int *a, *b, *c;
    int *gpu_a, *gpu_b, *gpu_c;

    a = (int *)malloc(ITER * sizeof(int));
    b = (int *)malloc(ITER * sizeof(int));
    c = (int *)malloc(ITER * sizeof(int));

    // We need variables accessible to the GPU,
    // so cudaMallocManaged provides these
    cudaMallocManaged(&gpu_a, ITER * sizeof(int));
    cudaMallocManaged(&gpu_b, ITER * sizeof(int));
    cudaMallocManaged(&gpu_c, ITER * sizeof(int));

    for (int i = 0; i < ITER; ++i) {
        a[i] = i;
        b[i] = i;
        c[i] = i;
    }

    // Call the CPU function and time it
    auto cpu_start = Clock::now();
    vector_add_cpu(a, b, c, ITER);
    auto cpu_end = Clock::now();
    std::cout << "vector_add_cpu: "
    << std::chrono::duration_cast<std::chrono::nanoseconds>(cpu_end - cpu_start).count()
    << " nanoseconds.\n";

    // Call the GPU function and time it
    // The triple angle brakets is a CUDA runtime extension that allows
    // parameters of a CUDA kernel call to be passed.
    // In this example, we are passing one thread block with ITER threads.
    auto gpu_start = Clock::now();
    vector_add_gpu <<<1, ITER>>> (gpu_a, gpu_b, gpu_c, ITER);
    cudaDeviceSynchronize();
    auto gpu_end = Clock::now();
    std::cout << "vector_add_gpu: "
    << std::chrono::duration_cast<std::chrono::nanoseconds>(gpu_end - gpu_start).count()
    << " nanoseconds.\n";

    // Free the GPU-function based memory allocations
    cudaFree(a);
    cudaFree(b);
    cudaFree(c);

    // Free the CPU-function based memory allocations
    free(a);
    free(b);
    free(c);

    return 0;
}

Makefile:

INC=-I/usr/local/cuda/include
NVCC=/usr/local/cuda/bin/nvcc
NVCC_OPT=-std=c++11

all:
    $(NVCC) $(NVCC_OPT) gpu-example.cu-o gpu-example

clean:
    -rm -f gpu-example

3. 运行:

gpu-test$ ./gpu-example 
vector_add_cpu: 1370132 nanoseconds.
vector_add_gpu: 6445 nanoseconds.

#72 VMWare/Linux/Ubuntu/Fedora/CentOS/U-BOOT » 为什么在VMWare虚拟机下面Ubuntu没有动画效果?而真机有接近苹果mac os 的动画效果,是因为GPU没开吗?如何开启虚拟机GPU? » 2019-10-07 10:04:56

我思故我在
回复: 0



请问大家为什么在VMWare虚拟机下面Ubuntu没有动画效果?
而真机有接近苹果mac os 的动画效果,是因为GPU没开吗?
那如何开启虚拟GPU?

#75 Re: 全志/Allwinnertech/V3S/A64/H6/A20/A33/F1C100s » 重新制作文件系统以后,触摸屏不能使用 » 2019-10-06 18:20:39

文件系统不会影响驱动,除非你用 modprobe 安装电容电阻屏驱动。

#78 Re: web/html5/javascript/js » 现在web前端设计效果比起从前的MFC酷多了 » 2019-10-06 16:49:15

https://stackoverflow.com/questions/55278867/video-not-playing-on-android-chrome-and-ios-safari

and most important -pix_fmt yuv420p as Android / iOS does not support Hi444PP profile as stated by aergistal

果然是不支持 444p

成功的把 UI 帖转成视频帖

#79 Re: 全志/Allwinnertech/V3S/A64/H6/A20/A33/F1C100s » 使用buildroot生成的qt,编译的应用程序不能运行 » 2019-10-06 16:45:10

重新 configure 然后编译或许可以可以,

有个简单的办法,

export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0
./analogclock

先设置环境变量,然后再运行。

不确定一定行,先试一试吧。

#80 Re: web/html5/javascript/js » 现在web前端设计效果比起从前的MFC酷多了 » 2019-10-06 16:37:42

因为命令行打开 firefox 浏览器, 点击前面的视频, 会提示:

[Child 25122, MediaDecoderStateMachine #2] WARNING: Decoder=7f1ed8a26800 Decode error: NS_ERROR_DOM_MEDIA_FATAL_ERR (0x806e0005) - mozilla::SupportChecker::AddMediaFormatChecker(const mozilla::TrackInfo&)::<lambda()>: Decoder may not have the capability to handle the requested video format with YUV444 chroma subsampling.: file /build/firefox-y_KX3Y/firefox-69.0.1+build1/dom/media/MediaDecoderStateMachine.cpp, line 3309

所以我非常确定像素格式引起,只是没想到苹果浏览器都播放不了。

#82 Re: web/html5/javascript/js » 现在web前端设计效果比起从前的MFC酷多了 » 2019-10-06 16:27:51

发现上面的 mp4 文件在好几个浏览器都看不了,

比较了一下, 发现像素格式是 yuv444p, 能正常播放的是 yuv420p

所以 Linux 下用命令行转换一下: ffmpeg -i ' 2019-10-06 13:59:21.mp4'  -vcodec libx264 -pix_fmt yuv420p "2019-10-06_13:59:21A.mp4"

#85 Re: web/html5/javascript/js » 现在web前端设计效果比起从前的MFC酷多了 » 2019-10-06 13:56:57

kekemuyu 说:

screentogif  了解下

刚刚装了一个 kazam: sudo apt install kazam

录了一个 mp4, 效果不错。

#86 web/html5/javascript/js » 现在web前端设计效果比起从前的MFC酷多了 » 2019-10-06 11:24:07

我思故我在
回复: 25

2019-10-06%2011-09-47屏幕截图.png








-----------------------------------------






2019-10-06%2011-10-25屏幕截图.png


本来还有动态效果的,不会录制 gif

#88 Re: 全志/Allwinnertech/V3S/A64/H6/A20/A33/F1C100s » 买个全志arm9 F1C100s 方案的唱戏机回来拆一拆 » 2019-09-25 09:31:31

找到背光芯片, 顺藤摸瓜找到背光芯片的控制引脚, 这时有两个选择:

1. 用万用表量出与 f1c100s 连接的引脚.
2. 直接飞线上拉或者下拉引脚控制引脚。

#93 Re: 计算机图形/GUI/RTOS/FileSystem » [原创开源]emwin侧边导航框架支持按钮选中效果 » 2019-09-21 14:15:05

2019-09-21_141217.png

2019-09-21_141354.png

6666666  继续紧跟楼主步伐,

一开始发现 C:\Windows\Fonts\msyh.ttf 会引起错误, 然后挂了。

后来网上下载了一个 msyh.ttf 可以了。


但是楼主的第三个图片, 左侧导航那个界面怎么点进去呢?

#94 Re: 全志/Allwinnertech/V3S/A64/H6/A20/A33/F1C100s » lichee nano官方linux config文件踩坑与填坑(常见配置误区) » 2019-09-20 17:13:20

0x04: 运行framebuffer gui程序后,右上角有闪烁的光标
论坛里有修改bootargs的办法:
https://whycan.cn/t_543.html
https://whycan.cn/t_1953.html#p12829
搜索引擎里搜到的基本都说要patch代码

但我个人认为两种方法都不是根本办法,其实config中有可以关闭framebuffer 作为console的选项。
修改方法
禁用:Device Driver ---> Graphics support  --->   Console display driver support  --->    Framebuffer Console support
但这个选项默认无法修改。仔细查看相关的Kconfig文件后,发现这个选项只有启用了专家模式(Expert Mode),且没有其他依赖选项时才可以关闭。
启用专家模式:General setup ---> Configure standard kernel features (expert users)  但不要修改里面的选项
然后就可以禁用:Device Driver ---> Graphics support  --->   Console display driver support  --->    Framebuffer Console support
这样你的显示器在framebuffer初始化完了就会变成黑色,运行gui程序后也不会有闪烁的光标了。

原来如此

#95 Re: 全志/Allwinnertech/V3S/A64/H6/A20/A33/F1C100s » 参考http://nano.lichee.pro的步骤编译linux烧写后开机屏幕无打印,黑白条闪烁 » 2019-09-20 17:07:30

https://whycan.cn/t_2703.html#p21662

0x01:  开机卡在waiting for rootfs

原因有两点

1. 找不到SPI flash
f1c100s应使用A31的spi控制器驱动,但lichee官方config中是启用的A10 SoC的驱动。
表现为开机ttl日志中没有dts中的spiflash 分区信息打印,且卡在waiting for rootfs
启用:Device Driver --->  SPI Support ---> Allwinner A31 SPI controller
禁用:Device Driver --->  SPI Support ---> Allwinner A10 SoCs SPI controller

#100 Re: ESP32/ESP8266 » 官方提供的ADF中的examples例程中的Dueros都实现了哪些功能? » 2019-09-18 11:55:22

反正当时相当不好用, 而且唤醒词还要签协议,加上客户转型, 所以后来就没玩了。

#103 Re: 全志/Allwinnertech/V3S/A64/H6/A20/A33/F1C100s » V3S无法找到interface文件 » 2019-09-18 09:52:28

用buildroot, 在 output/target/ 会自动生成文件系统,会带必要的文件。

#108 Re: 全志/Allwinnertech/V3S/A64/H6/A20/A33/F1C100s » 请问下主线 V3s Linux 如何在程序运行中自动切换USB模式: otg/host/peripheral » 2019-09-17 11:30:50

试了一下, 如果执行 echo "peripheral" > /sys/devices/platform/soc/1c19000.usb/musb-hdrc.1.auto/mode

那么插入/拔出U盘也不会输出以下log:

[  249.795725] usb 1-1: new high-speed USB device number 3 using ehci-platform
[  249.988291] usb-storage 1-1:1.0: USB Mass Storage device detected
[  250.016377] scsi host0: usb-storage 1-1:1.0
[  251.046803] scsi 0:0:0:0: Direct-Access     Mass     Storage Device   1.00 PQ: 0 ANSI: 0 CCS
[  251.182148] sd 0:0:0:0: [sda] 3842048 512-byte logical blocks: (1.97 GB/1.83 GiB)
[  251.190488] sd 0:0:0:0: [sda] Write Protect is off
[  251.196730] sd 0:0:0:0: [sda] No Caching mode page found
[  251.202060] sd 0:0:0:0: [sda] Assuming drive cache: write through
[  251.215272]  sda: sda1
[  251.228960] sd 0:0:0:0: [sda] Attached SCSI removable disk
[  254.229815] usb 1-1: USB disconnect, device number 3

#109 Re: VMWare/Linux/Ubuntu/Fedora/CentOS/U-BOOT » 请问晕哥,如何搭建一个服务器 » 2019-09-17 11:27:30

这几天抓得紧, 你换了也没用, 一会又会被干掉。按上次惯例过了节日就会自动恢复。

#110 Re: 全志/Allwinnertech/V3S/A64/H6/A20/A33/F1C100s » licheepi zero如何使用PhoenixSuit进行烧写 » 2019-09-17 11:26:23

晕哥小弟 说:

使用Win32DiskImager  可以把img烧写到SD卡中吧。
烧了一个,居然licheepi zero什么反应也没有

NO, 你错了, 那个又不是镜像文件,全志自己格式, 先把u-boot下到ddr跑,然后通过USB通讯下载其他的文件。

#111 Re: 全志/Allwinnertech/V3S/A64/H6/A20/A33/F1C100s » 请问下主线 V3s Linux 如何在程序运行中自动切换USB模式: otg/host/peripheral » 2019-09-17 09:39:58

我的可以哟:

# echo "host" > /sys/devices/platform/soc/1c19000.usb/musb-hdrc.1.auto/mode
[ 1065.974559] phy phy-1c19400.phy.0: Changing dr_mode to 1
#
# cat /sys/devices/platform/soc/1c19000.usb/musb-hdrc.1.auto/mode
a_wait_vrise
#
#
# echo "peripheral" > /sys/devices/platform/soc/1c19000.usb/musb-hdrc.1.auto/mode
[ 1082.470768] phy phy-1c19400.phy.0: Changing dr_mode to 2
[ 1083.525617] musb-hdrc musb-hdrc.1.auto: VBUS_ERROR in b_idle (98, VALID), retry #0, port1 00000100

#
# cat /sys/devices/platform/soc/1c19000.usb/musb-hdrc.1.auto/mode
b_idle
#
#

插入USB线后:

# cat /sys/devices/platform/soc/1c19000.usb/musb-hdrc.1.auto/mode
b_peripheral

#112 Re: 全志/Allwinnertech/V3S/A64/H6/A20/A33/F1C100s » nano板子ns2009软件驱动和硬件问题 » 2019-09-16 20:02:09

达克罗德 说:

f1c100s不是自带电阻触摸吗?

占了四个 IO 口, 不爽 ;(

用 ns2009 就不用占 io了

#114 Re: 全志/Allwinnertech/V3S/A64/H6/A20/A33/F1C100s » nano板子ns2009软件驱动和硬件问题 » 2019-09-16 19:37:59

没事, 可以用, 只是有点浪费CPU而已.

你可以接一个中断脚, 然后驱动实现中断优化一下, 当然,不改也是一样的用.

#115 Re: 全志/Allwinnertech/V3S/A64/H6/A20/A33/F1C100s » 荔枝派zero开发板 使用的是BSP Linux 配置dvp的ov2640 » 2019-09-16 19:17:57

太一酱鸭 说:
我思故我在 说:

@nothing 谢谢, 晚点我试一试

请问你尝试成功了吗

这段时间太忙, 没来得及试呢

#116 Re: 全志/Allwinnertech/V3S/A64/H6/A20/A33/F1C100s » nano板子ns2009软件驱动和硬件问题 » 2019-09-16 19:17:03

那个 ns2009 的驱动没有用中断, 而是驱动不停轮询, 机制不太好.

#117 Re: 全志/Allwinnertech/V3S/A64/H6/A20/A33/F1C100s » 投屏软件scrcpy在Linux上的移植(porting scrcpy to linux) » 2019-09-12 16:45:41

还有这种玩法啊, 顶起顶起!


--------------------------
试了一下, 玩摄像头, 有点丢帧, 越久越滞后。

#120 Re: Nuvoton N32905/N32926/NUC972/N9H20/N9H26/N9H30 » step by step 全志 f1c100s MDK 裸奔各种外设(参考N3290x) » 2019-09-12 11:31:45

2B青年欢乐多 说:

晕哥  这个是在RAM里面运行的吧   有没有在SPI启动运行的KEIL demo

这个简单了, 直接用裁剪后的 u-boot 加载 bin 即可.

技术好的话, 用 u-boot的spl加载更好了

#122 Re: VMWare/Linux/Ubuntu/Fedora/CentOS/U-BOOT » Ubuntu 14.04 下试一试 wpa_cli 的 GUI 版本 wpa_cute » 2019-09-12 11:29:48

2019-09-12_112826.png

搞定, 都加 sudo 就没有问题了:

sudo LD_LIBRARY_PATH=/usr/local/Qt5.9.8/freetype/lib:$LD_LIBRARY_PATH ./wpa-cute


###自动获取ip
sudo dhclient  wlan0

#124 Re: VMWare/Linux/Ubuntu/Fedora/CentOS/U-BOOT » Ubuntu 14.04 下试一试 wpa_cli 的 GUI 版本 wpa_cute » 2019-09-12 10:59:52

手动输入环境变量LD_LIBRARY_PATH, 可以跑了:

LD_LIBRARY_PATH=/usr/local/Qt5.9.8/freetype/lib:$LD_LIBRARY_PATH ./wpa-cute

2019-09-12_105537.png

#125 Re: VMWare/Linux/Ubuntu/Fedora/CentOS/U-BOOT » Ubuntu 14.04 下试一试 wpa_cli 的 GUI 版本 wpa_cute » 2019-09-12 10:53:14

 ./wpa-cute 
./wpa-cute: symbol lookup error: /usr/local/Qt5.9.8/5.9.8/gcc_64/plugins/platforms/../../lib/libQt5XcbQpa.so.5: undefined symbol: FT_Get_Font_Format

运行 wpa-cute 出错, 网上搜索发现 freetype 版本太低导致。

下载新版 free 编译安装:

wget https://download-mirror.savannah.gnu.org/releases/freetype/freetype-2.10.0.tar.bz2

tar xvf freetype-2.10.0.tar.bz2

cd freetype-2.10.0

./configure --prefix=/usr/local/Qt5.9.8/freetype

make 

make install

#126 Re: VMWare/Linux/Ubuntu/Fedora/CentOS/U-BOOT » Ubuntu 14.04 下试一试 wpa_cli 的 GUI 版本 wpa_cute » 2019-09-12 10:49:25

克隆源码:

git clone https://github.com/loh-tar/wpa-cute.git

编译:

/usr/local/Qt5.9.8/5.9.8/gcc_64/bin/qmake wpa_gui.pro

然后执行 make

但是 gcc 4.8 版本编译的过程会出现一个错误,

wpa_gui.pro 需要删除下面一行:

QMAKE_CXXFLAGS += -Wformat-truncation=0

再重新执行 qmake, make

#127 Re: VMWare/Linux/Ubuntu/Fedora/CentOS/U-BOOT » Ubuntu 14.04 下试一试 wpa_cli 的 GUI 版本 wpa_cute » 2019-09-12 10:44:36

下载 Qt5.9.8: https://download.qt.io/official_releases/qt/5.9/5.9.8/ 的 qt-opensource-linux-x64-5.9.8.run Linux 安装版

直接执行命令 sudo ./qt-opensource-linux-x64-5.9.8.run 安装,

安装地址我手工填写 /usr/local/

#128 VMWare/Linux/Ubuntu/Fedora/CentOS/U-BOOT » Ubuntu 14.04 下试一试 wpa_cli 的 GUI 版本 wpa_cute » 2019-09-12 10:42:44

我思故我在
回复: 6

上一篇: Ubuntu 18.04 下试一试 wpa_cli 的 GUI 版本 wpa_cute

公司的电脑跑不动 Ubuntu 18.04, 还是在用 14.04

直接采用上面链接的方法, 非常多的编译错误, 因为 Ubuntu14.04 自带的qt 是 5.2 版本

#130 Re: VMWare/Linux/Ubuntu/Fedora/CentOS/U-BOOT » Ubuntu 18.04 下试一试 wpa_cli 的 GUI 版本 wpa_cute » 2019-09-11 17:51:59

试一试编译成嵌入式版本并拷贝到rootfs:

git clone https://github.com/loh-tar/wpa-cute.git
cd src
/opt/buildroot-2019.08-hf/output/host/bin/qmake wpa_gui.pro
cp wpa-cute /opt/buildroot-2019.08-hf/output/target/usr/bin/

#131 Re: 全志/Allwinnertech/V3S/A64/H6/A20/A33/F1C100s » nano板子GT911触摸屏驱动问题 » 2019-09-11 17:40:45

i2c i2c-0: mv64xxx: I2C bus locked, block: 1, time_left: 0

这个错误一般是硬件出问题, 看有没有上拉。

烧这个固件看下情况: https://whycan.cn/t_2689.html

#132 Re: VMWare/Linux/Ubuntu/Fedora/CentOS/U-BOOT » Ubuntu 18.04 下试一试 wpa_cli 的 GUI 版本 wpa_cute » 2019-09-11 17:14:52

Ubuntu14.04/16.04 下面 Qt/g++ 版本要低一些, 编译过程中要修复一些错误才行。

#133 VMWare/Linux/Ubuntu/Fedora/CentOS/U-BOOT » Ubuntu 18.04 下试一试 wpa_cli 的 GUI 版本 wpa_cute » 2019-09-11 17:12:46

我思故我在
回复: 2

1. sudo apt-get install qt5-default

2. sudo apt-get install libqt5svg5-dev

3. git clone https://github.com/loh-tar/wpa-cute.git

4. 执行命令

cd src
qmake       # 或 qmake-qt5 
make        # To enable debug messages run: make -f Makefile.Debug

2019-09-11_171202.png

#140 Re: 全志/Allwinnertech/V3S/A64/H6/A20/A33/F1C100s » 荔枝派zero开发板 使用的是BSP Linux 配置dvp的ov2640 » 2019-09-11 10:32:31

nothing 说:

DVP和LCD公用了引脚,BSP内的引脚默认配置成LCD,要使用DVP得自己进行引脚初始化,fex配了没有相关代码进行初始化,不信在linux下直接读相关寄存器就知道了,然后ov2640的寄存器得自己调下,不然拍出来的效果是很暗的

只要把 ov2640.c 里面把 引脚的 lcd 复用改为 dvp 就可以了吗?

#143 Re: VMWare/Linux/Ubuntu/Fedora/CentOS/U-BOOT » 请教Linux下面如何才能对 /dev/input/event* 在应用程序注入数据,用 evtest 可以读出?内核要不要配置什么 » 2019-09-05 14:24:49

2019-09-05_141629.png

Event: time 1567662318.369695, type 4 (EV_MSC), code 4 (MSC_SCAN), value 1e
Event: time 1567662318.369695, type 1 (EV_KEY), code 30 (KEY_A), value 1
Event: time 1567662318.369695, -------------- SYN_REPORT ------------
aEvent: time 1567662318.461093, type 4 (EV_MSC), code 4 (MSC_SCAN), value 1e
Event: time 1567662318.461093, type 1 (EV_KEY), code 30 (KEY_A), value 0
Event: time 1567662318.461093, -------------- SYN_REPORT ------------
Event: time 1567662326.488377, type 4 (EV_MSC), code 4 (MSC_SCAN), value 1d
Event: time 1567662326.488377, type 1 (EV_KEY), code 29 (KEY_LEFTCTRL), value 1
Event: time 1567662326.488377, -------------- SYN_REPORT ------------
sudo ./sendevent /dev/input/event1 4 4 1
sudo ./sendevent /dev/input/event1 1 30 1
sudo ./sendevent /dev/input/event1 0 0 0 
sudo ./sendevent /dev/input/event1 4 4 1e
sudo ./sendevent /dev/input/event1 1 30 0
sudo ./sendevent /dev/input/event1 0 0 0 

感谢楼主分享, 我在Ubuntu 试了一下模拟按键输入字母 a, 果然好用

ssh 登陆才好用, 不要问我为什么 ;(

#146 Re: 计算机图形/GUI/RTOS/FileSystem » @熊掌 开源的 littlevgl 读取并显示TTF字体的程序,使用 freetype ttf字体库 » 2019-09-03 15:51:51

2019-09-03_154652.png

demo.c 文件明明另存为 UTF8 With BOM 了, 但是代码里面的字符串还是 GBK ???

我佛了 ...

#147 Re: 计算机图形/GUI/RTOS/FileSystem » @熊掌 开源的 littlevgl 读取并显示TTF字体的程序,使用 freetype ttf字体库 » 2019-09-03 14:55:21

2019-09-03_144919.png

各位大佬,为什么我用官方 VC2017 的demo工程, 借用楼主的代码, 这里输入汉字, 模拟器显示都是框框框呢?

页脚

Powered by FluxBB