whycan 发布的帖子
-
回复: linux 常用的命令在哪里 配置
@ms_guest 在 linux 常用的命令在哪里 配置 中说:
find呢? 比如我想在板端的命令行界面,找个什么文件。
find 是因为tina默认可能没有编译进去,make menuconfig 输入 /find ,可以查找到开启这些软件包的位置。勾选之后,重新 make && pack 烧录之后,板上就有find命令可以用了。
-
回复: A133 Andriod SDK的内核配置文件
差不多是这个意思,编译android的时候,那个 extract-bsp 命令就是把longan下面编译的linux文件复制到anroid目录对应的板级文件夹。
-
回复: T113 ov5640加载驱动报错,PE11申请不到,被占用了。
我看了一下T113手册,没有发现ISP,
board.dts都这样修改试一试:
vinc0_isp_sel = <0xFF>;
vinc1_isp_sel = <0xFF>; -
回复: d1s meils烧录导致xfel工具烧写失效
@danfeng
有一个更简单一点的方法,flash引脚飞八根线到 usb烧录器(淘宝有卖,几块钱),也不用纠结这些问题了。 -
回复: d1s meils烧录导致xfel工具烧写失效
@danfeng 在 d1s meils烧录导致xfel工具烧写失效 中说:
@whycan 目前烧录进两块板子都是这个问题,读spinor正常,写入(包括擦除)显示正常,实际是没写(擦除)进去的,排除硬件问题。spinor能读,img能够通过刷机工具刷进去,驱动应该没问题。实在疑惑,解决这个问题好多天了,哈哈哈。谢谢晕哥的解答了,我再研究研究吧。
不排除xfel工具有bug。
写入全是0xFF文件,然后读出来,是否正常?
-
回复: T113编译出错如何解决
【问题分析】
SDK下检索SOURCE_DATE_EPOCH可以发现,他是通过scripts/get_source_date_epoch.sh设定的,设定的原则有几个,我们一般用到的是:try_repo() { [ -d .repo ] || return 1 SOURCE_DATE_EPOCH="$(date +%s)" [ -n "$SOURCE_DATE_EPOCH" ] }
判断存在.repo目录则将date +%s的值赋值给SOURCE_DATE_EPOCH
这个值在openWrt build环境下有多处用到,例如build/kernel-build.mk, build/image.mk,另外有些工具也会通过env获取这个值,通过网上搜索可以了解到,SOURCE_DATE_EPOCH是一个比较通用的环境变量,用于表示时间戳(秒数),具体描述可以参考:
https://reproducible-builds.org/specs/source-date-epoch/回到这个问题,客户暴露这个编译问题的原因,是他们删除了.repo,导致没有规则赋值给SOURCE_DATE_EPOCH
解决方案: 可以修改在tina目录执行 date +%s > version.date 来生成一个日期值
-
回复: 使用g++编译lvgl出现错误
@lingeasy 在 使用g++编译lvgl出现错误 中说:
lvgl/src/core/lv_obj.c:79:1: error: designator order for field '_lv_obj_class_t::base_class' does not match declaration order in 'const lv_obj_class_t' {aka 'const _lv_obj_class_t'}
以下是chatgpt告诉我的:
这个错误提示是因为在代码中使用了 C99 标准新增的结构体成员初始化语法,并且使用了成员名字来初始化,但成员初始化顺序不一致。
具体地说,C99 标准允许在定义结构体变量时使用类似下面的语法:
struct my_struct { int x; int y; int z; }; struct my_struct s = { .y = 42, .x = 3, .z = 0, };
这种语法叫做结构体成员初始化语法(Designated Initializers),它可以用来显式地指定结构体成员的初始值,以及避免未初始化的结构体成员。
但是,这种语法在 C99 标准之前是不支持的,而且不是所有的编译器都支持这种语法。因此,如果使用了这种语法,并且编译器不支持,就会出现错误。
具体到您的错误提示,它提示的是 _lv_obj_class_t 结构体成员初始化时的顺序与 const lv_obj_class_t 结构体成员的声明顺序不一致。要解决这个问题,可以将结构体成员初始化的顺序改为与声明顺序一致,或者使用旧的结构体初始化语法。例如:
const lv_obj_class_t lv_obj_class = { .base_class = NULL, .constructor_cb = lv_obj_constructor, .destructor_cb = lv_obj_destructor, .event_cb = lv_obj_event_handler, .width_def = LV_SIZE_CONTENT, .height_def = LV_SIZE_CONTENT, .instance_size = sizeof(lv_obj_t), .editable = 0, .group_def = 0, };
或者:
const lv_obj_class_t lv_obj_class = { NULL, // base_class lv_obj_constructor, lv_obj_destructor, lv_obj_event_handler, LV_SIZE_CONTENT, // width_def LV_SIZE_CONTENT, // height_def sizeof(lv_obj_t), // instance_size 0, // editable 0, // group_def };
-
回复: 请问如何用C代码判断音量强度,或者有没有声音?
均方根值(Root Mean Square,RMS)是一种常用的统计量,可以用来表示一组数据的平均值和离散程度。对于N个样本数据x1、x2、...、xN,其均方根值RMSS算式为:
RMSS = sqrt((x1^2 + x2^2 + ... + xN^2) / N)
均方根值的物理意义是衡量某一信号强度大小的有效值。对于周期性的电信号或声波等实际应用中的信号,其波形通常是不规则的,并且会存在高低起伏。在这种情况下,简单地求取平均值可能会导致实际信号强度被低估,因为正负幅度相互抵消。而均方根值考虑了每个数据点的平方,从而避免了正负幅度相互抵消的影响,更准确地反映了信号的强度。
例如,在音频处理中,均方根值常用于评估音频信号的音量大小。在这种情况下,均方根值越大,表示音频信号的能量越强,音量也就越大。
-
回复: 请问如何用C代码判断音量强度,或者有没有声音?
以下是一个简单的C代码示例,用于检测麦克风输入是否有声音,并计算当前音量的强度:
#include <stdio.h> #include <stdlib.h> #include <stdint.h> #include <math.h> #define SAMPLE_RATE 44100 // 采样率 #define VOLUME_THRESHOLD 5000 // 音量阈值,根据实际情况调整 int main(void) { int16_t buffer[1024]; // 输入缓冲区 double rms = 0; // 均方根值,用于计算音量强度 size_t count, i; while (1) { count = fread(buffer, sizeof(int16_t), 1024, stdin); // 从标准输入读取音频数据 if (count == 0) { break; } for (i = 0; i < count; i++) { rms += pow((double)buffer[i], 2); } rms = sqrt(rms / count); // 计算均方根值 if (rms > VOLUME_THRESHOLD) { // 判断音量是否超过阈值 printf("有声音\n"); } else { printf("无声音\n"); } } return 0; }
该代码使用了C标准库中的fread函数从标准输入读取音频数据。在每个读取到的数据块上,它计算了音频信号的均方根值,并将其与预先定义的阈值进行比较,以确定是否存在声音。在实际使用中,您需要根据硬件和应用程序的要求进行一些修改和调整。
-
回复: camera driver not loading automatically
看下有没有存在 /etc/init.d/S00mpp 这些文件,如果存在则看是否有执行权限。
-
回复: 如何编译package下的demo
应该说的就是这些:
wifi_connect_ap_test wifi_connect_ap_with_netid_test wifi_connect_chinese_ap_test wifi_disconnect_ap_test wifi_get_connection_info_test wifi_get_netid_test wifi_list_networks_test wifi_longtime_scan_test wifi_longtime_test
-
回复: T507 LCDRGB引脚是否可调
@watson1986 在 T507 LCDRGB引脚是否可调 中说:
是否可以配置为
D1 ~ D7 = B7~B0
D8 ~ D15 = G7~G0
D16~D23 = R7~R0不可以。
但是B和R整组可以交换,通过dts可以配置。
-
回复: V853怎么交叉编译OpenCV
如果确实编译不过,试一试曲线救锅,用buildroot,选外部工具链(extern toolchain),用V853 SDK里面的gcc,编译出来复制到tina里面即可.
参考这个帖子: 如何配置buildroot用外部编译器?
-
回复: T113-S3 LCD DE/SYNC 模式选择
@wte_wte
就是 HSYNC/VSYNC/DE 这三条腿都输出信号,一般显示屏都能接受。但是有些比较老的屏可能只接受 SYNC,或者只接受DE,那么不接相应的腿即可。
-
回复: 各位大佬,请问如何让一个交叉编译过的sample,在开发板开机运行?
@cavert121
我的意思是可以用adb shell 执行,但是命令行得存在。只要用串口终端能正常执行的命令,用adb shell都能执行。
-
回复: 各位大佬,请问如何让一个交叉编译过的sample,在开发板开机运行?
可以,但是 am 不是里面的指令,换别的指令。
D:\>adb shell am /bin/sh: am: not found D:\>adb shell ls /tmp/ mlock
-
回复: D1 _open SDK,编译烧录SD卡MMC失败
[2023-04-10 23:44:00] [00.570]workmode = 0,storage type = 1 [2023-04-10 23:44:00] [00.573][mmc]: mmc driver ver uboot2018:2021-12-20 13:35:00 [2023-04-10 23:44:00] [00.579][mmc]: get sdc_type fail and use default host:tm1. [2023-04-10 23:44:00] FDT ERROR:fdt_get_all_pin:get property handle pinctrl-0 error:FDT_ERR_INTERNAL [2023-04-10 23:44:00] [00.591][mmc]: get card0 default pin fail [2023-04-10 23:44:00] [00.595][mmc]: can't find node "mmc0",will add new node [2023-04-10 23:44:00] [00.600][mmc]: fdt err returned <no error> [2023-04-10 23:44:00] [00.603][mmc]: Using default timing para [2023-04-10 23:44:00] [00.607][mmc]: sunxi mmc pin set failed! [2023-04-10 23:44:00] [00.611]error card no error [2023-04-10 23:44:00] [00.613][mmc]: MMC Device -1 not found [2023-04-10 23:44:00] fail to find one useful mmc card [2023-04-10 23:44:00] initcall sequence 0000000043f91318 failed at call 000000004200df06 (err=-1) [2023-04-10 23:44:00] ### ERROR ### Please RESET the board ###
怀疑你的 uboot-board.dts sdc0 节点的pin配置有问题。
-
回复: tslib 电阻触摸屏调试!!!
@wyljkl 在 tslib 电阻触摸屏调试!!! 中说:
root@TinaLinux:/etc# ./evtest
No device specified, trying to scan all of /dev/input/event*
Available devices:
/dev/input/event0: 1c24800.sun3i-rtp
/dev/input/event1: ts_uinput
Select the device event number [0-1]: 1
Input driver version is 1.0.1
Input device ID: bus 0x6 vendor 0x0 product 0x0 version 0x0
Input device name: "ts_uinput"
Supported events:
Event type 0 (EV_SYN)
Event type 1 (EV_KEY)
Event code 330 (BTN_TOUCH)
Event type 3 (EV_ABS)
Event code 48 (ABS_MT_TOUCH_MAJOR)
Value 0
Min 0
Max 1000
Event code 53 (ABS_MT_POSITION_X)
Value 0
Min 0
Max 479
Event code 54 (ABS_MT_POSITION_Y)
Value 0
Min 0
Max 271
Properties:
Testing ... (interrupt to exit)
^Croot@TinaLinux:/etc#这个正常吗?
-
回复: tslib 电阻触摸屏调试!!!
可以参考这个帖子: D1S芒果派MQ-R在tina-sdk2.0下无法识别电阻触摸屏
① 用这个先生成校准文件:
TSLIB_TSDEVICE=/dev/input/event0 ts_calibrate
② 后台运行 uinput(会产生新的event设备):
TSLIB_TSDEVICE=/dev/input/event0 ts_uinput
③ 前台执行 测试:
TSLIB_TSDEVICE=/dev/input/event2 ts_test
这个坐标应该是正确的。
注意看环境变量!
-
回复: 执行lunch报错“no buildserver to clean”
复制这段内容后打开百度网盘APP,操作更方便哦。 链接:https://pan.baidu.com/s/1h-yRCvY3I7fhlVL9tVIfvw?pwd=awol
提取码:awol--来自百度网盘超级会员V4的分享太难了,里面有个纯净版的虚拟机,建议用这个吧。