自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(77)
  • 资源 (7)
  • 收藏
  • 关注

原创 busybox-microcom串口调试工具使用方法

microcom。

2022-08-16 13:56:19 2116 1

原创 open 使用O_DIRECT报错

错误make -C ./ -f /sdk/temp/prj/protected_storage/Makefile.buildmake[1]: Entering directory '/sdk/temp/prj/protected_storage'/opt/ivot/arm-ca9-linux-gnueabihf-6.5/usr/bin/arm-ca9-linux-gnueabihf-gcc -Wall -O2 -g -I /sdk/temp/prj/protected_storage/include

2022-01-05 11:08:42 1195 1

原创 adb配置环境变量和使用

1 Android 调试桥 (adb)1.1 简介Android 调试桥 (adb) 是一种功能多样的命令行工具,可让您与设备进行通信。adb 命令可用于执行各种设备操作(例如安装和调试应用),并提供对 Unix shell(可用来在设备上运行各种命令)的访问权限。它是一种客户端-服务器程序,包括以下三个组件:客户端:用于发送命令。客户端在开发机器上运行。您可以通过发出 adb 命令从命令行终端调用客户端。守护程序 (adbd):用于在设备上运行命令。守护程序在每个设备上作为后台进程运行。服务器

2022-01-04 14:09:56 995 3

原创 shell 脚本使用

当发现编译内核或者配置内核的命令过长时,可以写一个脚本文件。1.2 小结问题 现象解决办法2 常用 2.1 基础指定执行脚本的解释器在脚本文件开头添加命令,执行脚本的时候如果遇到返回值为非零,整个脚本就会立即退出在终端上显示字符串几个特殊字符比较数值2.2 显示文件指定行内容修改指定行内容2.3 以字节为单位进行分割自定义分隔符分割实际使用2.4 命令2.4.1 数值条件示例2.4.

2022-01-04 11:21:43 361

原创 移植字符集转换库 libiconv

交叉编译库下载# 目前最新的版本$ wget http://ftp.gnu.org/gnu/libiconv/libiconv-1.16.tar.gz解压,创建安装目录$ tar zxvf libiconv-1.16.tar.gz$ cd libiconv-1.16配置# 需要提前配置好交叉编译工具链,CC CXX AS 等等# --enable-shared: 加上这个参数会生成共享库# --enable-static: 加上这个参数会生成静态库# --prefix:

2021-12-13 09:05:12 305 1

原创 x264 x265 ffmpeg移植

这是一个一键式库移植脚本,主要参考https://www.cnblogs.com/schips/p/12195647.html,因为无法直接使用,做了一些修改。#!/bin/shBASE=`pwd`BUILD_HOST=arm-ca9-linux-gnueabihfOUTPUT_PATH=${BASE}/installOTHER_LIB=${OUTPUT_PATH}/__all_without_ffmpegset_env(){ export CROSS_COMPILE=/opt/ivot

2021-12-13 08:53:38 776

原创 Qt应用接收红外遥控上报的按键

问题Qt 应用程序可以收到插在 ARM 板上键盘上报的键值。但是收不到自己写的驱动上报的键值。解决方案启动时需要加上下面的参数才行。./qtdemo -plugin evdevkeyboard:/dev/input/event0#或者可以修改/etc/profile,没有去测试export QT_QPA_GENERIC_PLUGINS=tslib:/dev/input/event1:evdevkeyboard:/dev/input/event0...

2021-09-17 15:35:39 513

原创 大端模式与小端模式

什么是大端和小端大端Big-Endian :高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。值:0x123456 低地址 -----> 高地址 0x12 | 0x34 | 0x56 小端Little-Endian :低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。值:0x123456 低地址 -----> 高地址 0x56 | 0x34 | 0x12 怎样判断大小端通过强制类型转换int is_big_endian(void){

2021-09-14 14:07:39 95

原创 Linux 直接读写磁盘物理地址

Linux 直接读写磁盘物理地址从 EMMC 磁盘物理地址读数据#include <sys/stat.h>#include <unistd.h>#include <fcntl.h>#include <stdio.h>#include <string.h>/** * ./lseek /dev/sdb */int main(int argc, char **argv){ int fd; char str[100] = {0

2021-09-10 15:34:39 1561 1

原创 u-boot 编译报错:awk: line 2: function strtonum never defined

错误awk: line 2: function strtonum never defined解决方案$ sudo apt-get install gawk

2021-09-06 13:20:35 413

原创 MobaXterm 使用 rz/sz 传送文件

MobaXterm 使用 rz/sz 传送文件1 Linux 安装 lrzsz$ sudo apt-get install lrzsz2 上传文件终端先输入 rz# 示例$ rz终端界面:Ctrl + 鼠标右键选择 Send file using Z-modem3 下载文件终端先输入 sz + 要发送的文件# 示例$ sz test.c终端界面:Ctrl + 鼠标右键选择 Receive file using Z-modem...

2021-09-03 08:44:36 7482 3

原创 adb 安装APK报错|INSTALL_FAILED_TEST_ONLY

错误adb install .\test-debug.apkPerforming Streamed Installadb: failed to install .\test-debug.apk: Failure [INSTALL_FAILED_TEST_ONLY: installPackageLI]解决方案adb install -t .\test-debug.apkPerforming Streamed InstallSuccess

2021-07-08 09:14:29 1053

原创 文件系统_文件IO

​ 在 系统中有一个重要的概念:一切皆文件,它把一切资源都看作是文件,包括硬件设备,通常称为设备文件。​ 为了高效地存储和管理数据,文件系统在存储介质上建立了一种组织结构,这些结构包括操作系 统引导区、目录和文件,就如同图书馆给不同类的书籍进行类、编号,放在不同的书架上。不同的管理 理念引出了不同的文件系统标准,如 、 、 、 就是指不同类型的 标准,除此之外,还有专门针对 类型设备 的文件系统 、 等等。​ 正是有了文件系统,计算机上的数据才能以文件的形式呈现给用户,下面简单介绍一下各种

2021-06-24 09:17:50 456 2

原创 Makefile的使用

1 Makefile 规则与示例参考:doc/gunmake.htm1.1 为什么需要 Makefile1.1.1 高效地编译程序参考 Visual Studio ,修改源文件或者头文件,只会重新编译 修改过的文件,就可以生成 APP。1.1.2 Makefile 其实挺简单一个简单的 Makefile 文件包含一系列的“规则”,其样式如下:目标(target)…: 依赖(prerequiries)… <tab>命令(command)如果“依赖文件”比“目标文件”更加新,那

2021-06-23 10:48:19 430

原创 GCC编译器的使用

1 GCC 编译工具链1.1 简介GCC 编译工具链(toolchain)是指以 GCC 编译器为核心的一整套工具,用于把源代码转化成可执行应用程序。它主要包含以下三部分内容:gcc-core :即GCC编译器,用于完成预处理和编译过程,例如把C代码转换成汇编代码。Binutils :除GCC编译器外的一系列小工具包括了链接器 ld ,汇编器 as 、目标文件格式查看器 readelf 等。glibc :包含了主要的 C 语言标准函数库,C 语言中常常使用的打印函数 printf、ma

2021-06-23 10:15:20 1711

原创 kernel编译报错|/bin/sh: 1: lz4c: not found

错误 OBJCOPY arch/arm64/boot/Image LZ4C arch/arm64/boot/Image.lz4/bin/sh: 1: lz4c: not foundarch/arm64/boot/Makefile:31: recipe for target 'arch/arm64/boot/Image.lz4' failedmake[1]: *** [arch/arm64/boot/Image.lz4] Error 1arch/arm64/Makefile:139: r

2021-06-22 10:07:58 1565

原创 kernel编译报错|/bin/sh: 1: bc: not found

错误scripts/kconfig/conf --syncconfig Kconfig DTC arch/arm64/boot/dts/rockchip/rk3399-roc-pc-plus.dtb/bin/sh: 1: bc: not foundKbuild:42: recipe for target 'include/generated/timeconst.h' failedmake[1]: *** [include/generated/timeconst.h] Error 127

2021-06-22 09:59:19 6600 1

原创 Linux应用模拟输入事件

参考资料:doc/input/uinput.rst (Linux Kernel 5.x/Documentation/input/uinput.rst)drivers/input/misc/uinput.c (项目使用的是 Kernel 4.x )1 概念uinput 是一个内核模块,可以从用户空间模拟输入设备。通过写入 /dev/uinput(/dev/input/uinput)设备,进程可以创建具有特定功能的虚拟输入设备。一旦创建了这个虚拟设备,进程就可以通过它发送事件,这些事件将被传递给用户空

2021-06-21 10:21:56 516

原创 HelloWorld背后没那么简单

1 在Ubuntu上编译执行HelloWorld程序1.1 hello.c源码#include <stdio.h> /* 执行命令: ./hello weidongshan * argc = 2 * argv[0] = ./hello * argv[1] = weidongshan */ int main(int argc, char **argv) { if (argc >= 2) printf("Hello, %s!\n", a

2021-06-18 16:13:50 304 6

原创 Android开发环境搭建_编译_运行

学习于 百问网韦东山在线课堂1 Android 开发环境搭建1.1 环境要求Android 源码下载时,会包含 Git 代码库,所以要检出代码,至少需要 250 GB 可用磁盘空间;如果要进行构建,则还需要 150 GB。如果要进行多次构建,则需要更多空间。环境要求如下:CPU:x86核越多越好RAM:16G磁盘:400G操作系统:Ubuntu 18.04操作系统交换分区: 4G 以上从 2021 年 6 月起,Google 使用 72 核机器,内置 RAM 为 64 GB,完整构建过

2021-06-18 10:56:23 807 1

原创 Linux常用命令

查看指定目录的所有文件大小或者指定文件的大小。查看当前终端打开的进程,并显示进程的线程。查找包含字符串的文件,并列出所在的行。在指定目录查找含有特定字符的文件。的进程,并显示程序间的关系。在指定目录查找指定名字的文件。查看当前文件某关键字的个数。查找文件转换成unix格式。将软件及其配置文件一并删除。移除软件,但不删除配置文件。查看当前系统硬盘挂载情况。显示当前终端里打开的进程。显示电脑上安装的所有软件。清除当前终端的历史命令。查看当前目录下文件个数。查看当前目录下目录个数。

2021-06-17 15:51:03 118

原创 Android源码编译|rsync: command not found

错误FAILED: out/target/product/generic_x86_64/ramdisk-debug.img/bin/bash -c "(mkdir -p out/target/product/generic_x86_64/debug_ramdisk ) && (touch out/target/product/generic_x86_64/debug_ramdisk/force_debuggable ) && (rsync -a out/target/pr

2021-06-17 09:01:11 290

原创 Android源码下载|repo init 报错

错误Downloading Repo source from https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/fatal: Cannot get https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/clone.bundlefatal: error unknown url type: httpsfatal: cloning the git-repo repository failed, will rem

2021-06-17 08:58:27 614

原创 Android源码下载|Python版本过低

错误repo: error: Python 2 is no longer supported; Please upgrade to Python 3.5+.解决方案#1、下载Python3,会下载在当前目录,所以要提前选好目录$ wget http://www.python.org/ftp/python/3.9.5/Python-3.9.5.tgz#2、下载完成后,解压 $ tar -xvzf Python-3.9.5.tgz#3、解压完成后,切换到Python3文件夹中 $ cd .

2021-06-17 08:56:51 903 1

原创 AOSP Repo使用

常用命令分支创建分支$ repo start <name> --all repo start 是在清单文件设定分支的基础上创建特性分支。在原来的分支基础上创建分支$ repo forall -c git branch <name>创建本地分支只管理几个 project$ repo start <name> project1 project2 ...如果想在原来的分支基础上再追加 project$ repo start <na

2021-06-16 14:19:15 447

原创 虚拟机-ubuntu-新增磁盘-分区-自动挂载

1 在新建磁盘前,先查看一下虚拟机磁盘relax@ubuntu:~/Desktop$ ls /dev/ | grep sd # 查看磁盘设备sda sda1 sda2 sda5relax@ubuntu:~/Desktop$ lsblk # 查看磁盘信息NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTfd0 2:0 1 4K 0 disk loop0 7:0 0 55.5M 1 loop /snap/core18/1

2021-06-16 09:24:43 631

原创 环形缓存区

应用场景主要应用于嵌入式平台,uart收发,RS232,RS485等,因为需要时间去处理数据,为防止数据丢失,把数据存储在缓存区里。环形缓存区代码根据韦东山老师的代码更改。ring_buffer.c#include "ring_buffer.h"/** * 初始化新缓冲区 * @handle : ring_buffer句柄 * @addr : 数组地址 * @size : 数组大小 */void ring_buffer_init(ring_buffer *handle, Eleme

2021-06-11 14:46:16 171 1

原创 Windows10-虚拟机-ubuntu安装-OpenSSL-Samba

1 虚拟机安装1.1 虚拟机下载免费的 VMware Workstation 16 Player 地址1.2 安装步骤双击安装包一直下一步,直到安装完成2 Ubuntu 20.04 安装2.1 镜像下载Ubuntu 20.04.2.0 LTS 桌面版 官方地址 华为开源地址2.2 安装按照提示去操作主要注意一下几点配置CPU核心,根据需要去配置,一般是电脑总数的一般配置运行内存,一般是4G把不需要的外设删除掉分配合理的内存3 安装open

2021-06-10 11:19:54 366

原创 解决Linux系统Git不能补全

下载软件$ git clone https://github.com/markgandolfo/git-bash-completion.git$ cp git-bash-completion/git-completion.bash ~/.git-completion.bash修改~/.bashrc,在文件结尾增加bash 在每次启动时都会加载 .bashrcif [ -f ~/.git-completion.bash ]; then . ~/.git-completion.bas

2021-06-09 14:06:12 146

原创 基于Python搭建http文件服务器

在Windows上安装Python官方下载地址按照提示直接安装就行。启动http服务在Windows终端执行命令PS E:\test> python -m http.serverServing HTTP on :: port 8000 (http://[::]:8000/) ...当前目录会被共享出去访问本地访问http://localhost:8000/http://127.0.0.1:8000/局域网访问(填写自己的IP)http://192.168.1.124

2021-06-01 15:45:40 367

原创 display_timing 转 drm_display_mode

//drivers/gpu/drm/panel/panel-simple.cstatic unsigned int panel_simple_get_timings_modes(struct panel_simple *panel) videomode_from_timing(dt, &vm); mode = drm_mode_create(drm); drm_display_mode_from_videomode(&vm, mode); dmode->hdispla

2021-06-01 14:33:42 1080

原创 Linux内核工作队列使用

VERSION:5.4.24参考:include/linux/workqueue.h实际需要定时器、下半部 tasklet,它们都是在中断上下文中执行,它们无法休眠。当要处理更复杂的事情时,往往更耗时。这些更耗时的工作放在定时器或是下半部中,会使得系统很卡;并且循环等待某件事情完成,这样太浪费 CPU 资源了。如果使用线程来处理这些耗时的工作,那就可以解决系统卡顿的问题:因为线程可以休眠。在内核中,我们并不需要自己去创建线程,可以使用“工作队列”(workqueue)。内核初始化工作队列时,就为

2021-06-01 11:24:55 447

原创 Linux内核定时器使用

Linux 内核定时器使用VERSION:5.4.24参考:include/linux/timer.hkernel/time/timer.cinclude/linux/jiffies.h重要的结构体,函数定时器结构体struct timer_list { /* * All fields that change during normal runtime grouped to the * same cacheline */ struct hlist_node entry;

2021-05-31 14:04:33 385

原创 windows10 释放被占用的 com 口

1 拔掉所有串口2 键盘组合键:win + R 启动"运行",然后输入 regedit 3 打开注册表4 删除 ComDBComDB 里会有使用的com口,删除它,关闭注册表。下一次插上串口,com口会被重新排序。

2021-05-27 11:31:29 2560

原创 开发工具介绍

1 PDF阅读器Sumatra PDF下载地址轻便简单快速的PDF阅读器。2 终端工具MobaXterm下载地址免费全能,支持远程ssh,串口,FTP等强大功能,一旦用了就回不去了。3 文件阅读Total Commander下载地址双窗口文件浏览,需要去发现。4 MarkDown 笔记工具Typora下载地址好用,实时的 MarkDown 工具,配合百度网盘备份,或者git 打造自己的开发笔记。...

2021-05-13 10:53:28 115

原创 Linux系统压缩命令

1 .tar# 压缩$ tar czvf FileName.tar DirName# 解压$ tar zxvf FileName.tar2 .gz# 压缩$ gzip FileName# 解压:方法一$ gunzip FileName.gz# 解压:方法二$ gzip -d FileName.gz3 .tar.gz# 压缩$ tar zcvf FileName.tar.gz DirName# 解压$ tar zxvf FileName.tar.gz4 .bz2

2021-04-30 14:17:57 76

原创 Git使用笔记

​ 版本库又名仓库,英文名repository,可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。

2021-04-29 15:27:19 631

原创 docker安装使用

1 什么是 DockerDocker 是一个开源的应用容器引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在本地编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、bare metal、OpenStack 集群和其他的基础应用平台。2 在 Ubuntu 上安装 Docker 引擎卸载旧版本的 docker$ sudo apt-get remove docker docker-engine docker.io containerd runc安装

2021-04-02 11:13:29 2351

原创 iMX8 Android SDK 下载

1 在官网上获得软件压缩包imx-android-10.0.0_2.5.0.tar.gz下载地址2 获取源码拷贝 imx-android-10.0.0_2.5.0.tar.gz 到一个文件夹里并解压,进入:2.1 获取repogit clone https://mirrors.tuna.tsinghua.edu.cn/git/git-repo修改 repo 里的内容为下面REPO_URL = 'https://mirrors.bfsu.edu.cn/git/git-repo'然后添

2021-04-02 10:28:39 705 1

原创 Linux常用命令—Ubuntu

1 常用命令行 清除当前终端的历史命令 history -c 显示当前终端里打开的进程 ps 查看当前终端打开的进程,并显示进程的线程 ps -T 显示所有进程(同“-e”) ps -A 显示含有字符“smbd”的进程,并显示程序间的关系 ps -ef | grep smbd 查看当前系统硬盘挂载情况 df -h 查看指定目录的所有文件总和 du -sh【目录】2find...

2021-03-18 11:08:09 122

AVR446驱动源码

这是一个最流行的步进电机和伺服电机的控制源码,驱动可以产生固定的脉冲数目,使用的梯形算法,防止丢步。

2018-09-28

adb工具,用于Android设备调试

本人上传的adb工具与众不同,目前还没有遇到连接不上的情况。

2018-09-21

PID控制算法(增量式、位置式)

这是本人参考网上的资料,然后总结写下的PID控制算法,属于最基本的版本,对于后期的参数调节,和算法使用可根据实际情况做调整。就是赚个辛苦费。

2018-09-14

字体库ft2.9的静态库和动态库,还有头文件

在使用的时候要记得添加头文件,文本函数里放这两个#include "ft2build.h" #include FT_FREETYPE_H 头文件就行了,好好使用吧。

2018-01-19

Freetype2.9()最新版兼容旧版)

你可以使用它来渲染字体,也可以通过他来获取字体的轮廓。

2018-01-19

飞思卡尔官方参考

AngleCalculate:车模倾角计算函数。根据采集到的陀螺仪和重力加速度传感器的数 值计算车模角度和角速度。如果这部分的算法由外部一个运放实现,那么采集得到 的直接是车模的角度和角速度,这部分算法可以省略。该函数是每 5 毫秒调用一次。 2. AngelControl:车模直立控制函数。根据车模角度和角速度计算车模电机的控制量。 直立控制是 5 毫秒调用一次。 3. SpeedControl:车模速度控制函数。根据车模采集到的电机转速和速度设定值,计算 电机的控制量。该函数是 100 毫秒调用一次。 4. SpeedControlOutput:速度输出平滑函数。由于速度是每 100 毫秒进行一次计算。为 了使得速度控制更加平滑,该函数将速度输出变化量平均分配到 20 步 5 毫秒的控制 周期中。 5. DirectionControl:方向控制函数。根据车模采集到的左右两个电磁传感器的数值计 算出角度控制的量。该函数每 10 毫秒调用一次

2015-11-21

空空如也

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

TA关注的人

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