自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 收藏
  • 关注

原创 加速度传感器术语解析

一般用g表示加速度,g即为重力加速度9.8米/秒的平方如上图表示了加速度传感器的量程范围,可选为±2g,±4g,±8g,±16g,即对应±19.6米/秒的平方、±39.2米/秒的平方、±78.4米/秒的平方、±156.8米/秒的平方。

2023-08-30 17:10:13 1695

原创 Unico-GUI软件关于ST传感器机器学习(MLC)基本操作步骤

UNICO-GUI软件用于意法半导体产品组合(加速度计、陀螺仪、磁力计和环境传感器)中所有MEMS传感器的评估板。它可用于Linux(基于Debian) / Mac OS X / Windows平台。用这个软件的前提是需要有一个专用的传感器评估板,比如STEVAL-MKI109V3(),如下图:还需要一个适配板,比如 STEVAL-MKI227KA(),如下图:适配板其实就是一个传感器的扩展板,插到评估板上即可。

2023-08-09 18:45:00 655 2

原创 蓝牙HID与Android的通信--多点触摸问题

从中可以看出,如果report中有usage为HID_DG_CONTACTID,即判断为多点触摸的设备,会加载多点触摸的hid相关驱动,也就是linux内核中drivers\hid\hid-multitouch.c代码,该代码对HID的多点触摸设备进行了相关的转换,以适应android系统上报正确的多点触摸input事件。在其代码中,也可以找到static const struct hid_device_id mt_devices[]结构体数组,里面定义了支持该驱动的设备ID和厂商ID。

2023-07-01 14:07:30 1282

原创 stm32wb15cc蓝牙芯片学习

对STM32WB系列蓝牙芯片的初步学习,以及创建首个蓝牙应用。

2023-05-19 16:09:15 2259 1

原创 Android9.0开发记录

【代码】Android9.0开发记录。

2023-04-07 10:23:32 353

原创 Android P安装第三方输入法需要注意so文件的处理

androidP在集成第三方输入法的时候,根据网络给的教程一直没法打开。最后发现原来是写Android.mk文件的时候没有处理so库导致apk找不到库。把so库加上去即可以正常打开。注意这些so库名字可能会变化,而且需要注意自己的Android是64位还是32位的,根据需要进行添加。把上面的编辑一下,添加进Android.mk文件即可。...

2022-08-01 17:56:53 1084

原创 Android P 源码中如何设置默认字体大小

Android P 源码中如何设置默认字体大小

2022-06-16 19:00:00 567

原创 Android P 源码如何修改屏幕密度

1. device/模块公司名称/模块平台名称/system.prop比如:device/qcom/sdm660_64/system.prop这个文件添加字段:ro.sf.lcd_density=300 (300为密度值,根据自己要求填写不同的值)2. 屏幕密度修改可能导致设置-->显示-->显示大小里面设置不正常。可以修改如下代码:packages\apps\Settings\src\com\android\settings\display\DensityPreference.java 这里有两个数

2022-06-15 19:00:00 3120

原创 十六进制数据改写为C语言数组形式

/*十六进制数据改写为C语言数组形式如:011102222203333333生成:{0x01,0x11},{0x02,0x22,0x22},{0x03,0x33,0x33,0x33},如果第一个数为数据长度信息,第二个数为地址,其他为数据如:011102222203333333生成:{0x01,0x01,0x11},{0x02,0x02,0x22,0x22},{0x03,0x03,0x33,0x33,0x33},*/#include <stdio.h&gt

2022-02-09 18:38:32 1938

原创 C语言二维数组相关操作方法

1. 定义一个二维数组,并赋值:#define ROW 32#define COL 16//定义一个32行,16列的数组,并赋值。unsigned char str[ROW][COL] = {{0x01, 0x01, 0x02}, //第一行 赋值str[0][0], str[0][1], str[0][2],其他为0{0x01, 0x01}, //第二行 赋值str[0][0], str[0][1],其他为0{0x01}, //第三行 赋值str[0][0], 其他为0//其他未赋值的行默

2022-02-09 17:56:56 1037

原创 Linux 内核I2C设备驱动代码模板

Linux内核版本:Linux 4.4.153设备树:hello@3e { compatible = "HELLO1,HELLO2"; reg = <0x3e>; };驱动代码:#include <linux/module.h>#include <linux/i2c.h>static int hello_probe(struct i2c_client *client, const

2022-01-24 12:30:22 1264

原创 移远USB3.0 5G模块无法休眠问题跟踪

在调试移远5G模块时,发现5G模块通过USB3.0方式连接的时候,android系统无法进入休眠,原因自然跟USB有关系。联系移远FAE, 反馈回来的结果是根据他们给的文档,增加一下USB自动休眠与支持远程唤醒即可。依据移远给的提示,增加了相关代码,usb_enable_autosuspend()与device_init_wakeup()。通过测试,发现USB终于可以进入休眠,但当系统进入休眠,唤醒的时候,5G模块与主机之间断掉了。usb_wwan_port_remove--port=2usb.

2021-11-09 16:09:43 1613 3

原创 Android9.0 kernel上传的input键值与frameware层需要做一个转换或者声明

做项目时,需要从安卓内核层写驱动上传一些键值到上层。结果发现很多都对不上号。查看了frameworks\native\include\android\keycodes.h里面安卓的标准键值,然后再查看kernel\msm-4.4\arch\mips\boot\dts\include\dt-bindings\input\linux-event-codes.h,发现两者相差特别大。安卓是怎样把两者对应起来呢?肯定需要做一些转换。结果查到设备的/system/usr/keylayout目录下面有很多.

2021-08-26 16:06:14 279

原创 先复制文件再打开文件C语言函数

int read_file(const char* path, char* buf, int* lenp, pthread_t tid){ char cmd[512] = {}; unsigned long cmdlen = sizeof(cmd); int ret = -1; FILE *fp = NULL; const char * ftmp = "/sdcard/qianshi_file"; int rand; if (path == NULL || buf == NULL) .

2021-08-25 16:53:58 68

原创 高通PWM调试笔记

本笔记基于SDM660平台记录一、PWM信号电平转换不能用普通三极管或者二极管,需要用高速三极管或者分压否则出来的信号可能因为PN结的电容效应而变得不是方波,比如如下图:蓝色是4V的PWM信号,黄色是通过三极管反向输出的波形,显然因为三极管的电容效应,无法得到转换后的波形。二、改变PWM的高电平电压路径:kernel\msm-4.4\arch\arm64\boot\dts\qcom\sdm660-mtp.dtsigpio@c500->qcom,vin-sel = <0&

2021-08-13 19:36:33 1691

原创 draw.io流程图软件笔记

样式swimlane;--可以对一个框框设置放大缩小功能。如图:点击减号只显示标题:

2021-07-31 10:39:12 293

原创 正则表达式笔记

行首加入‘{’字符:查找目标:^(.+)$替换为:{$1

2021-06-10 09:31:58 65

原创 android9.0 linux用户空间编写测试程序方法记录

做驱动有时需要测试一下驱动的各项功能,可写一些简易的用户空间程序去测试。如下:cd external/external目录下创建自己的文件夹,比如test。cd test/编写C程序,比如test.c在你创建的文件夹下,添加Android.bp编辑Android.bp,添加如下:(比较易懂,可参考tinyalsa目录下的做法)cc_binary {name: "test",srcs: ["test.c"],cflags: ["-Werror"],}在test目录下mm,编译该

2021-05-11 12:17:12 99

原创 C语言 8位数字 unsigned char类型高低位对换

#include <stdio.h>/* 8位数字高低位调换 */unsigned char ltoh(unsigned char data){ int i = 0; unsigned char buf = 0; for(i = 0; i < 8; i++) { buf |= (((data >> i) & 0x1) << (7 - i));

2021-05-08 17:59:09 1570

翻译 ARM Cortex-A(arm v7) 裸机及Linux内核启动代码过程官方介绍翻译

本文是一篇翻译的文章,翻译自《ARM Cortex-A Series Programmer’s Guide》第13章Boot Code。文档来自https://developer.arm.com/,由于在移植Linux内核到exynos4412芯片上时,遇见了一些问题,所以决定把ARM的启动过程分析一下。Chapter 13 Boot CodeThis chapter considers the boot code running in an ARM processor based system, a

2020-11-20 12:35:53 2382 3

原创 tiny4412 uboot 2020.10版本移植(四)——uboot修改支持sd卡、eMMC引导内核及其他一些杂项设置

本文描述了在《tiny4412 uboot 2020.10版本移植(三)——uboot初步启动》 的基础上继续向tiny4412 uboot 2020.10版添加的各种功能。一、串口设置1.1. 把早期的uart debug关掉:默认配置文件configs/tiny4412_defconfig去掉:CONFIG_DEBUG_UART = yCONFIG_DEBUG_UART_BASE=0x13800000CONFIG_DEBUG_UART_CLOCK=100000000CONFIG_D

2020-11-16 23:23:02 3243 1

原创 tiny4412 uboot 2020.10版本移植(三)——uboot初步启动

这篇文章主要描述如何把2020.10版本的uboot在tiny4412核心板(1412版)上启动起来,而不关注一些细节问题。一、添加交叉编译器信息到Makefile打开uboot源代码根目录下的Makefile,在开头添加如下:ARCH = armCROSS_COMPILE = ~/WDC250GBHD/toolchain/gcc-arm-none-eabi-9-2020-q2-update/bin/arm-none-eabi-CROSS_COMPILE是自己交叉编译器所在的路径。(有关

2020-10-22 22:49:01 3010 3

原创 tiny4412 uboot 2020.10版本移植(二)——下载uboot及对uboot移植的构想和准备工作

一、uboot下载这个网站提供所有uboot版本的下载:ftp://ftp.denx.de/pub/u-boot/我下载了最新版本的uboot:u-boot-2020.10.tar.bz2二、uboot启动流程分析uboot源码根目录下的README是一个好文件,里面会告诉你很多关于uboot源码怎么使用的信息,仔细阅读会带来很多便利。uboot的启动流程可以参见README文件Board Initialisation Flow: 下面的信息。这里进行一些简略的记录:uboot源

2020-10-19 12:17:57 2374

原创 tiny4412 uboot 2020.10版本移植(一)——交叉编译器的选择

交叉编译器的选择并不需要一定是开发板光盘提供的编译器,可以自己上网下载最新的编译器,也可以下载自己认为稳定的编译器。我这里移植的目的是为了学习,所以我下载了最新的编译器版本。tiny4412核心板使用的是Samsung ARM Cortex-A9 四核 Exynos 412 Quad-core处理器,是一个32位Cortex-A系列的Arm处理器。可以到如下网站下载交叉编译器。https://developer.arm.com/tools-and-software/open-source-sof

2020-10-19 09:10:38 1347

原创 关于tiny4412开发板烧录uboot时不成功的一个原因可能是mkbl2造成的

tiny4412核心板用到了三星exynos4412芯片。2020版的uboot支持spl, spl使得uboot可以编译出一个比较小巧的uboot_spl.bin的镜像文件,叫做辅助引导程序。可以加载到芯片SoC里面的ram上进行运行。在为tiny4412编译uboot时,烧录的时候用到三星提供的sd_fuse程序。烧录程序时,uboot_spl.bin小于14KB,我打算把uboot_spl.bin变为bl2.bin,烧录到sd卡的bl2分区上。运行脚本sudo ./sd_fusing.

2020-10-15 11:20:17 790

原创 Linux设备驱动程序(第三版)第四章示例驱动程序

Linux设备驱动程序(第三版) 作者科波特(Corbet, j.)书本的示例代码比较零乱,而且网站上给的示例代码是旧版或者是比较完整的代码,且没有单独成章。初学者学习起来比较困难,所以笔者分享一下在学习过程中调试过的模块,供有需要的读者参阅。由于侧重书本每章的知识,所以模块仅反映每章的知识点,不是一个全面的驱动模块,但对学习驱动的编写可能比看书本本身网站提供的代码会更有侧重点。仅仅是每一章相对前一章增加一些代码,而不是一个全面的代码。希望能够交流学习。也可以通过 https://gitee.com/san

2020-09-19 00:30:09 175

原创 Linux设备驱动程序(第三版)第三章修正过的示例驱动程序

Linux设备驱动程序(第三版) 作者科波特(Corbet, j.)书本的示例代码比较零乱,而且网站上给的示例代码是旧版,且没有单独成章。学习起来比较困难,所以笔者分享一下在学习过程中调试过的模块,供有需要的读者参阅。由于侧重书本每章的知识,所以模块仅反映每章的知识点,不是一个全面的驱动模块,但对学习驱动的编写可能比看书本本身网站提供的代码会更有侧重点。希望能够交流学习。也可以通过 https://gitee.com/sanzhouzi/ldd3ex.git 下载第三章主要是编写一个“完整”的字符设备驱

2020-09-16 21:18:33 383 2

原创 linux内核驱动调试常见错误笔记

错误:[ 2432.550000] Division by zero in kernel.[ 2432.550000] [<c001aa44>] (unwind_backtrace+0x0/0xf0) from [<c0254514>] (Ldiv0+0x8/0x10)[ 2432.555000] [<c0254514>] (Ldiv0+0x8/0x10) from [<c02544fc>] (__aeabi_idivmod+0x8/0x18)[ 2

2020-09-15 09:56:50 692

原创 openwrt添加linux内核驱动--helloworld示例笔记

一、linux内核驱动相关位置在openwrt目录下执行make menuconfig选择Kernel modules --->发现这里存在内核驱动的各种选项:这个选项表是通过openwrt/package/kernel/linux/modules目录下的.mk文件生成的:二、创建相应的目录与文件在openwrt/package/kernel/linux/modules目录下创建helloworld.mk文件...

2020-09-14 13:19:49 3312

原创 Openwrt编译完之后的目录解析笔记

目录一、openwrt/binopenwrt/bin/packages -- 里面存放这编译好的ipk包比如:ppp_2.4.8.git-2020-09-04-2_mipsel_24kc.ipkppp-mod-pppoe_2.4.8.git-2020-09-04-2_mipsel_24kc.ipkopenwrt/bin/targets/xxxxxx/xxxxxx --里面存放编译好的bin文件,是可以直接烧录到板子里面的二进制文件。不同型号的板子文件名不同。比如MT7688板子,路

2020-09-11 17:30:49 6868

原创 MT7688路由器 openwrt编译笔记

代码下载:git clone https://gitee.com/mirrors/openwrt.git查看README.md,查看编译说明执行 ./scripts/feeds update -a错误1:Build dependency: Please install GNU 'awk'Prerequisite check failed. Use FORCE=1 to override.make: *** [/home/lgcdb/openwrt/openwrt/include/to

2020-09-10 14:30:17 3052

原创 设置MT7688路由器短按复位按键时重启开机

编译主机:Debian10 64位编译SDK:MediaTek_APSoC_SDK5030_20170331路由芯片:MT7688开发过程:短按按键,出现如下信息:ralink_gpio: sending a SIGUSR1 to process 112也就是按键的中断处理函数给进程112发送SIGUSR1导致112进程退出。ps命令查看,没有发现112进程。重启路由器,ps查看112 admin 2396 S nvram_daemon得知112进程是n...

2020-09-10 12:03:10 817

原创 MT7688路由器 wifi驱动移植笔记

MT7688 SDK包:MediaTek_APSoC_SDK5030_20170331移植过程:下载wifi驱动包:MT7628_LinuxAP_V4.1.0.0_DPA_20160310.tar.bz2解压:tar jxvf MT7628_LinuxAP_V4.1.0.0_DPA_20160310.tar.bz2得到mt_wifi 、mt_wifi_ap两个文件夹。查看 source/linux-2.6.36.x/ralink/Kconfig 文件发现有下面这行代码:source

2020-09-09 16:55:58 1432

原创 MT7688路由器启动时无法进入联发科图标的解决办法

编译主机:Debian10 64位编译SDK:MediaTek_APSoC_SDK5030_20170331路由芯片:MT7688问题描述:编译生成xxxx_uImage固件烧录进板子里面,发现内核启动完毕引导init的时候不动了。PPP generic driver version 2.4.2PPP MPPE Compression module registeredNET: Registered protocol family 24PPTP driver version 0.

2020-09-09 11:28:27 522

原创 gitlab及git相关操作

服务器端:启动gitlabsudo gitlab-ctl start关闭gitlabsudo gitlab-ctl stop重启gitlabsudo gitlab-ctl restart客户端:

2020-09-08 15:38:58 82

原创 MT7688 SDK固件编译错误记录

编译错误1:extra/locale/gen_ldc.c:197:15: error: '__LOCALE_DATA_WCuplow_diff_data' undeclared (first use in this function); did you mean '__LOCALE_DATA_Cuplow_data'? out_i16(lso, __LOCALE_DATA_WCuplow_diff_data, __LOCALE_DATA_WCuplow_diff_TBL_LEN, "tblwuplo.

2020-09-08 15:17:05 807

原创 MT7688 SDK编译环境安装记录

工作主机:Debian10 64位SDK包:MediaTek_ApSoC_SDK_4320_20150414.tar.bz2一、安装gcc解压toolchain/buildroot-gcc463_32bits.tar.bz2 到/opt目录下二、安装LZMA

2020-09-07 22:32:18 1553

原创 linux常用命令

//修改命令行显示的路径export PS1='\w #'

2020-06-03 18:46:02 113

原创 sbrk系统函数在Ubuntu 18.04.4 LTS 64位系统中的一些疑问

//查找100以内的素数#include <stdio.h>#include <unistd.h>//素数检测函数int isPrimer(int a){ int i; for(i = 2; i < a; i++) { if(a % i == 0) { return 1;...

2020-04-02 21:46:10 239 1

原创 Wireshark抓包分析TCP连接、发送数据与断开过程

准备工具:1. 两台连接到同个局域网的电脑,或者虚拟机;2. 在其中一台电脑安装Wireshark;3. 在两台电脑上面都有TCP&UDP测试工具软件TCP连接建立过程(三次握手):抓包分析TCP连接过程:1.两台主机都分别打开TCP&UDP测试工具这里设置主机A的IP地址为10.1.13.2, 主机B为10.1.13.3。主机A作为客户...

2020-03-12 16:25:53 7816

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除