- 博客(678)
- 资源 (31)
- 收藏
- 关注
原创 2024-09-27 buildroot C和语言将 中文的GBK编码转换为 UTF-8 的代码, printf 显示出来,使用 iconv 库去实现。
【代码】2024-09-27 buildroot C和语言将 中文的GBK编码转换为 UTF-8 的代码, printf 显示出来,使用 iconv 库去实现。
2024-09-27 18:54:05 207
原创 2024-09-10 linux uart串口外面发送过来的是0x0d,但接收的都是0x0a,解决方法:禁用 ICRNLtty.c_iflag &= ~(ICRNL | INLCR | IGNCR)
工具查看或修改串口的终端参数。
2024-09-10 19:11:27 249
原创 2024-09-06 用adb把一个文件push到linux设备里,明明已经看到有这个so库了,但是重启之后这个so库就变为0字节。sync命令会强制所有挂载的文件系统将内存中的修改数据块写入磁盘。
一、现象如下:sync。
2024-09-06 16:08:01 226
原创 2024-08-31 Linux bug调试记录,linux 驱动里面kthread_run 打开一个内核线程里面如果使用 mdelay 会导致系统崩溃,使用ssleep msleep代替
是一个忙等待(busy-wait)函数,它在延迟期间占用CPU资源,不进行任何实际工作,这会阻止其他任务的执行,特别是当它在队列处理循环中使用时。如果队列处理循环是一个高优先级的任务,它可能会阻止低优先级任务运行,从而导致系统整体响应变慢甚至挂起。例如,如果延迟是为了等待硬件状态变化,考虑使用中断或轮询硬件状态,而不是使用延迟函数。在设计内核驱动时,应尽量避免使用忙等待,以免影响系统的整体性能。: 如果你在等待某个事件的发生,可以使用这些等待队列函数。为了避免这种情况,你应该考虑使用不同的方法来实现延迟。
2024-08-31 17:33:06 344
原创 2024-08-26 C语言在程序里面使用system() 函数执行一个shell脚本,如何获取shell脚本的exit的返回值,使用這個來加載WIFI驅動模塊。
一、system()
2024-08-26 18:58:42 219
原创 2024-08-22 buildroot linux 使用wpa_supplicant -B -i wlan0 切换WIFI 设备之后无法上网的问题。解决方法,使用udhcpc -i wlan0 命令
【代码】2024-08-22 buildrootlinux 使用wpa_supplicant -B -i wlan0 切换WIFI 设备之后无法上网的问题。解决方法,使用udhcpc -i wlan0 命令。
2024-08-22 19:52:08 194
原创 2024-08-21 Linux 可以指定某个网络设备来进行 ping 操作。你可以使用 -I 选项来选择网络接口,I就是interface接口的意思。ping -I wlan0 8.8.8.8
ping-I。
2024-08-21 19:08:22 152
原创 2024-08-16 Android studio Clean project如何把子模块的build 目录也clean, 增加 delete subproject.buildDir
【代码】2024-08-16 Android studio Clean project的时候如何把子模块的build 目录也clean。
2024-08-16 12:24:29 260
原创 2024-08-15 调试中发现 linux spi 驱动通过spi_write 或者 spi_sync 最多只能写0XFFFF 个字节,提供解决方案。
【代码】2024-08-15 调试中发现 linux spi 驱动通过spi_write 或者 spi_sync 最多只能写0XFFFF 个字节,提供解决方案。
2024-08-15 20:03:01 241
原创 2024-08-12 socket 通信客户端断开连接时服务端还在write的话会导致程序崩溃,用gdb 运行看详细log,Thread received signal SIGPIPE, Broken
使用gdb 去运行看详细的log。
2024-08-12 10:07:58 325
原创 2024-08-09 C语言Socket 把一个的结构体占用的字节值发到android java 里面,用jni的形式解析里面的变量,然后再把数据返回到java层
2.3 Java 代码调用 JNI 方法,在 Java 端调用 JNI 方法,并接收返回的 ImageHeader 对象。3.4 运行结果如下,解析出来的数据跟我用另外一种方法解析出来的值是一样的,说明一切OK。2.2 jni 函数,确保 JNI 方法签名与 Java 构造函数匹配。2.1 ImageHeader类。3.2 ImageHeader类。3.3 java 调用。
2024-08-09 10:57:08 166
原创 2024-07-31 Android studio gradle、sdk、ndk 等路径记录
一、gradle的下载路径:C:\Users\user\.gradle\wrapper\dists二、NDK下载路径C:\Users\user\AppData\Local\Android\Sdk\ndk三、SDK下载路径:C:\Users\user\AppData\Local\Android\Sdk\platforms
2024-07-31 18:19:46 312
原创 20240730 Linux 一个libxxx.so库,把这库名改成libfuckyou.so,Makefile CFLAGS += -lfuckyou ,可执行文件运行还是会去寻libxxx.so
patchelf。
2024-07-30 10:18:18 200
原创 2024-07-24 buildroot c语言应用获取 kernel kobject_uevent_env 发送的消息,侦测USB口变化。
3.1 kernel 使用kobject_uevent_env 发送信息。3.2 c语言app代码。
2024-07-24 16:06:12 444
原创 2024-07-20 如何在Android系统里面的PATH变量增加一个路径,增加一个LD_LIBRARY_PATH变量?
一、adb 进入系统后 busybox vi /system/etc/init/hw/init.rc 在on init里面修改二、重新开机运行查看系统环境变量,发现PATH环境变量没有变化,应该是另外一个地方赋值了,分析一下没有找到,算了。
2024-07-20 15:26:14 215
原创 2024-07-20 Android java 判断是否有usb camera 设备,一般USB视频设备类代码为239,接口的类代码为 USB_CLASS_VIDEO (0x0e)
【代码】2024-07-20 Android java 判断是否有usb camera 设备,一般USB视频设备类代码为239,接口的类代码为 USB_CLASS_VIDEO (0x0e)
2024-07-20 10:50:06 263
原创 2024-07-17 Android studio 提示libuvccamera:ndkBuild 2/ndk-build.cmd‘‘ finished with non-zero exit
【代码】2024-07-17 Android studio 提示libuvccamera:ndkBuild 2/ndk-build.cmd‘‘ finished with non-zero exit。
2024-07-17 09:58:58 312
原创 2024-07-09 Linux 使用gpio-keyboard标准方式获取按键事件实例代码
【代码】2024-07-09 Linux 使用gpio-keyboard标准方式获取按键事件实例代码。
2024-07-09 19:43:40 258
原创 2024-07-09 如何要让 Linux 驱动模块(.ko 文件)加载时接受参数,并在驱动模块内部解析这些参数,使用module_param_string形式
【代码】2024-07-09 如何要让 Linux 驱动模块(.ko 文件)加载时接受参数,并在驱动模块内部解析这些参数,使用module_param_string形式。
2024-07-09 19:00:50 189
原创 2024-07-09 buildroot 上面调试usb蓝牙模块最常用的命令 hciattach hciconfig hcidump ,记录调试蓝牙模块可以搜索到设备的过程,算是调试蓝牙的第一步。
我这里编译会遇到找不到wordexp.h,解决方法是把buildroot-2023.02.6/output/build/bluez5_utils-5.65/android/compat/wordexp.h 复制到编译器tools/linux/toolchain/arm-rockchip830-linux-uclibcgnueabihf/arm-rockchip830-linux-uclibcgnueabihf/sysroot/usr/include/wordexp.h。
2024-07-09 16:33:16 600
原创 2024-07-04 linux 两个lib目录下有同样文件名的动态链接so库,程序会调用哪个呢?使用 strace -e 命令查看,LD_LIBRARY_PATH变量路径会先于/usr/lib路径。
也就是说LD_LIBRARY_PATH里面的变量路径会先于/usr/lib/路径。
2024-07-04 10:57:08 171
原创 2024-07-03 java Bitmap写图像rgba数据使用setPixel和setPixels的时间对比,setPixels方法一次性设置像素会比setPixel快得惊人,相差三百多毫秒。
【代码】2024-07-03 java Bitmap写图像rgba数据使用setPixel和setPixels的时间对比,setPixels方法一次性设置像素会比setPixel快得惊人,相差三百多毫秒。
2024-07-03 15:17:12 290
原创 2024-07-01 Linux xxd命令上查看或创建16进制的命令行工具。可以将二进制文件的内容以十六进制格式显示,将十六进制格式的数据转换回二进制文件。xxd 可以生成适合包含在C代码中的C数组
【代码】2024-07-01 Linux xxd命令上查看或创建16进制的命令行工具。可以将二进制文件的内容以十六进制格式显示,将十六进制格式的数据转换回二进制文件。xxd 可以生成适合包含在C代码中的C数组。
2024-07-01 18:53:08 194
原创 2024-06-28 buildroot Makefile 文件ifeq 前面能有空格吗?ifeq 前面不能有空格。ifeq 是一个指令,必须从行首开始,否则会被解释为命令或规则的一部分,导致语法错误
是一个指令,必须从行首开始,否则会被解释为命令或规则的一部分,导致语法错误。
2024-06-28 10:43:41 150
原创 2024-06-20 在 Buildroot 系统中,使用reboot loader 并未进入烧录模式的解决方法,重启前在文件系统中创建一个文件来存储参数,然后内核重启时读取这个文件并做相应处理。
定义的系统调用函数在用户空间程序调用对应的系统调用时被触发。例如,当用户空间程序调用。3.3 运行实际效果,执行my_reboot loader时候会进入烧录模式。3.2 修改kernel 下面的驱动reboot.c。3.1 编写一个my_reboot.c 系统应用。系统调用时,最终会执行内核中由。
2024-06-20 18:51:33 392
原创 2024-06-14 ARM Ubuntu 22.04.3 串口无密码登录设置,修改/usr/lib/systemd/system/serial-getty@.service服务ExecStart
agetty。
2024-06-14 11:44:08 390
原创 2024-06-14 ubuntu 简单易用的文本编辑器nano 一些常用方法
通过掌握这些常用方法和快捷键,您可以更高效地在 Ubuntu 上使用 Nano 编辑文本文件。显示 Nano 的帮助文档,其中包含所有快捷键及其功能。如果文件有未保存的更改,Nano 会提示您是否保存。Nano 支持多种语言的语法高亮,可以通过编辑。如果文件不存在,将会创建一个新文件。显示当前光标位置(行和列)。以确认文件名并保存。
2024-06-14 11:32:10 893
原创 2024-06-07 使用Android辅助功能AccessibilityService 进行自动化测试demo,可以获取目标app的控件id,输入内容以及自动点击按钮
要使用 AccessibilityService,你需要创建一个继承自 AccessibilityService 的服务类,并在 AndroidManifest.xml 文件中声明该服务。因此,在使用 AccessibilityService 时,你需要确保用户已经授权你的应用程序,并且在用户关闭辅助功能时及时停止服务,以避免不必要的资源消耗。此外,AccessibilityService 还可以模拟用户的操作,例如点击、滑动、输入等,以便实现一些自动化的操作。
2024-06-07 19:18:39 1065
原创 2024-06-06 C语言结构体成员变量位域(bit-field)的使用,它允许我们有效地利用数据存储空间,将多个逻辑上相关的小数据放在同一个字节中
的宽度为 3 位,因为它后面紧跟着冒号和数字 3,这表示该成员变量只占用 3 个位。这种语法被称为位域(bit-field),它允许我们有效地利用数据存储空间,将多个逻辑上相关的小数据放在同一个字节中。的位域宽度为 3,意味着它可以存储的数值范围是 0 到 7(2^3 - 1)。根据具体的应用场景,这 3 位可以用来表示不同的状态、类型或者标志位等信息。mipi 和 type是共用在一个字节里面。
2024-06-06 11:34:31 446
原创 2024-06-05 Android app jni里面c语言函数申请的局部变量数组过大会导致程序崩溃的问题分析
不同操作系统和编译器对栈大小有不同的默认限制。例如,在Linux系统上,栈大小通常是8 MB,而在Windows系统上,默认栈大小通常是1 MB。由于栈空间是有限的,分配过大的局部数组可能导致栈溢出(stack overflow),导致程序崩溃。因此,分配局部数组时需要谨慎。4.3 点击增加1M,2072-1048=1024 ,到了7192后再加的时候app会crash。:不同的编译器可能对局部变量大小有不同的限制,但这通常是次要的,主要的限制还是系统的栈大小。局部变量通常分配在栈上。
2024-06-05 15:01:34 310 1
原创 2024-05-30 ARM32编译器编译neon汇编代吗 Error: selected processor does not support `vrshrn.i16 d0,q1,‘ in ARM
使用arm-xxxxxx-gcc -Q --help=target 命令查看。,发现编译器的默认值不是neon。
2024-06-02 00:00:00 162
原创 2024-05-30 Ubuntu创建一个 systemd 服务来实现开机自动运行 C 程序,使用sudo tail -f /var/log/syslog查看log,syslog 是标准的日志记录系统
systemd是现代 Linux 系统中管理系统和服务的工具。你可以创建一个 systemd 服务来实现开机自动运行 C 程序。
2024-05-30 11:49:59 265
原创 2024-05-28 Android app java 根据SOF0(Start of Frame 0 帧图像起始)图像基本信息判断jpeg是gray灰度图还是YCbCr/YIQ 彩色图(包含yuv)
图像高度:0x0100=256 图像宽度:0x0500=1280,分量数量(Number of Components)是0x01,说明是灰度图。指定了图像中颜色分量的数量。每个分量描述了一个颜色通道,通常是 Y、Cb、Cr 或者灰度图像中的 Y 通道。这个字段后面跟着每个分量的详细信息。
2024-05-28 14:33:58 202
原创 2024-05-21 C语言fopen打开文件不使用fclose关闭会导致程序文件描述符耗尽,导致程序崩溃
【代码】2024-05-21 C语言fopen打开文件不使用fclose关闭会导致程序文件描述符耗尽,导致程序崩溃。
2024-05-21 15:23:30 350 1
原创 2024-05-20 C语言中,一个可执行程序修改了动态链接库so中全局变量值,当该可执行程序退出并重新启动时,这个全局变量的值会恢复为初始值。两个可执行程序同时修改动态链接库里的全局变量,互相不影响
每个运行的可执行程序实例都会在其自己的地址空间内有一份动态链接库的加载副本。这意味着当两个不同的进程加载同一个动态链接库时,它们操作的是物理内存中的同一份代码(如果操作系统支持代码共享),但是每个进程的全局变量副本通常是独立的。分别修改同一动态链接库中的同一全局变量时,每个进程只会影响到其自己地址空间中的那份全局变量副本。)同时修改同一个动态链接库中的全局变量时,这个变量的值将取决于两个程序对该变量修改操作的相对时序和方式。因此,重新启动程序后,动态链接库中的全局变量值将恢复为编译时设定的初始值。
2024-05-20 11:12:18 453
原创 2024-04-16 使用C语言把FMT_YUV400SP (gray8)/* YYYY... */格式的数据转换为 JPEG 文件
中,只有一个平面,即亮度平面(Y)。这意味着每个像素只有一个亮度值灰度图像或单通道图像,例如黑白摄像头捕获的图像或某些图像处理操作的中间结果。格式的数据转换为 JPEG 文件,您可以使用一些库来处理图像编码和文件写入。在 C 语言中,您可以使用像 libjpeg 这样的库来实现这个任务。是一种仅包含亮度分量的图像格式,没有色度分量,通常用于表示灰度图像数据。以下是一个简单的示例,演示了如何使用 libjpeg 库将。格式的数据转换为 JPEG 文件。
2024-05-16 15:58:09 194 1
原创 2024-05-10 C语言使用开源的JPEG解码库libjpeg 读取JPEG文件并将其解码为RGB24格式的数据
2.3 测试运行效果,使用ffplay -pixel_format rgb24 -video_size 588x776 -i rgb_data.rgb 显示出获取到rgb数据。2.1安装了libjpeg-dev包。
2024-05-10 11:43:36 632
原创 2024-05-10 Ubuntu上面使用libyuv,用于转换、缩放、旋转和其他操作YUV图像数据,测试实例使用I420ToRGB24
【代码】2024-05-10 Ubuntu上面使用libyuv,用于转换、缩放、旋转和其他操作YUV图像数据,测试实例使用I420ToRGB24。
2024-05-10 11:07:23 770
原创 2024-05-09 Ubuntu上面用ffmpeg把jpeg图像转成yuv、rgb格式文件,通过ffplay命令显示这些文件成图像,了解一下I420 YV12 NV12 NV21 的存储方式
yuv420sp(NV12)格式。yuv420p(I420)格式。rgba8888格式。
2024-05-09 17:41:32 487
使用Android辅助功能AccessibilityService 进行自动化测试demo 源码
2024-06-07
2023-06-16 Android app 使用opencv 调用jni在图片上添加文字,对图片进行模糊处理,源码实例学习
2023-06-16
2023-06-16 Android Studio 使用CMakeList编译JNI ,源码
2023-06-15
2023-03-25 android app 用经典蓝牙socket方式数据传输实例
2023-03-25
Android app 使用android-serialport-api 实现串口通信 源码
2022-07-23
AndroidStudio-NDK开发 编译c代码提供so库和jar包 另外一个app调用,实例源码
2022-07-22
hello_hidl.rar
2021-10-27
iperf-2.0.5-master.zip
2021-05-22
frameworks_services_jni_hardware_kernel.zip
2021-04-27
RK3288 Android7.1 USB wifi bluetooth 模块RTL8821CU 调试资料.zip
2021-04-12
Android Studio 生成JAR包和调用JAR包方法 demo
2021-03-08
RK3288-Android7.1-华为移远域格4G模块调试记录所有文件.zip
2021-01-08
binder.zip
2020-11-04
android_app_server_demo.zip
2020-10-22
2020-10-20 Ubuntu 16.04安装配置Samba服务每个用户可以用自己的用户名和密码登录自己的home目录以及共享特定的目录配置smb.conf
2020-10-20
analyze_hdmi_edid.zip
2020-09-11
Android 开机自动启动一个Service
2020-08-28
Android APP:开机自动启动app demo 源码 autorundemo.zip
2020-06-17
settingdatebasedemo.zip
2020-06-11
popupwindow_demo.zip
2020-05-27
navigationbar.zip
2020-04-17
android linux i2c调试工具源码 i2c-tools-3.0.0.zip
2020-03-26
PreferencexmlDemo.zip
2020-01-02
PreferenceDemo.zip
2020-01-02
dynamic_register_jni.zip
2019-12-31
static_jni.zip
2019-12-31
dianzhen下位机AVRM16代码.zip
2019-12-20
MFC写的一个汉字取模软件
2019-12-20
interfaceservicecallback.zip
2019-11-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人