自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(55)
  • 资源 (4)
  • 收藏
  • 关注

原创 /lib/aarch64-linux-gnu/libm.so.6: version `GLIBC_2.29‘ not found

运行交叉编译的程序时出现如下错误提示:./a.out /lib/aarch64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by ***)原因是交叉编译器使用的版本太新了,换个和设备匹配的gcc版本就好了!

2021-07-13 19:42:00 6079

原创 Linux USB驱动架构

《Linux设备驱动开发详解:基于最新的Linux4.0内核》—— USB主机、设备、与Gadget驱动架构USB驱动分为主机侧和从机侧:主机侧由设备驱动、USB核心、USB主机控制器驱动组成,从机侧由:Gadget Function驱动、Gadget Function API、UDC驱动组成,此外OTG协议既能当主机也能当从机:主机侧:USB核心将USB控制器驱动与USB设备驱动分层向USB核心注册USB控制器驱动USB设备驱动调用USB核心层API从机侧的Gadget API.

2021-07-07 16:45:50 874

原创 A311D温度控制

以下根据A311D的降温策略理解Linux Thermal架构Linux Thermal驱动架构Thermal框架分为四部分:Thermal Driver负责将获取温度的设备,注册成struct thermal_zone_device,比如Temp Sensor、NTC等;Thermal Governor负责如何控制温度,注册成struct thermal_governor,比如Step Wise、Bang Bang等;Thermal Cooling负责将控制温度设备,注册.

2021-05-28 19:38:54 889 1

转载 Linux程序分析工具

       Linux针对性能调优设计了许多分析工具,这些工具对于分析整个系统性能可提供巨大的帮助。影响性能的因素有cache、I/O,系统调用,系统内核、CPU性能等等。比如某些程序无法充分利用 cache,从而导致性能下降。比如不必要地调用过多的系统调用,造成频繁的内核 / 用户切换等。        主要的分析工具有:CPU性...

2021-05-22 14:55:32 423

原创 Qt+openCV实现人脸识别

对于Qt或者C++新手来说,一个有趣且易上手的练习项目非常关键,这里介绍一个基于Qt和openCV的人脸识别程序,亲测有效!测试环境:Win10 64位Qt 5.14.0Qt Creator 4.11.0openCV 4.4.0cmake 3.19.8 win64 x64具体步骤请参考这位博主的内容:Qt 使用摄像头通过openCV进行人脸识别运行效果图:这里我就介绍一些注意事项:使用Cmake构建OpenCV如果出错,要注意Cmake版本;Qt的.pro文件加上Open.

2021-04-10 10:54:02 4811

原创 Linux显示驱动子系统

梳理下Linux显示相关的驱动框架,如:Framebuffer LCD mipi-DSI HDMI VGA GPU DRM/KMS等的关系,要不然一头雾水。查阅:DRM/KMS架构Framebuffer架构Linux的Graphics子系统

2021-04-06 18:36:47 1048

原创 Linux挂载debian/ubuntu注意事项

挂载debian/ubuntu Linux内核需要勾选以下选项NamespaceCgroupFhandle

2021-02-22 17:10:09 119

原创 IEEE 802.1Q的VLAN标签

有台设备接入交换机后ping不通交换机上的设备,抓包发现这台设备不会接收其他设备的ARP包回复,原因是其他设备的包中带802.1Q的VLAN标签:而现在这台设备内核没有勾选802.1Q的支持,所有会将含有该标志的包丢弃。...

2020-12-28 19:47:43 1202

原创 关于汽车发展的个人想法

汽车发展存在着无限的可能,个人对无人驾驶以及相关产业的前景很是憧憬,这里列出一些个人想法汽车及无人驾驶前景现在谈论非常多的都是智能家居,智能家居为的是让人能够在家居生活中体验舒适与便捷,个人认为汽车同样需要这些体验。汽车作为一种交通工具,在现阶段中的舒适感远远未达到现在科技水平该有的用户体验,在长途中更有诸多不适,这里我列举一些个人认为的汽车发展方向:无人驾驶,这是肯定不用说的,逐步推进,首先应该就是建立一些自动驾驶专用通道,用于长途路程,像各种物流货车、大巴都是第一个被替换的;汽车中提高用户.

2020-12-12 11:36:27 273

原创 分布式多节点机器人操作系统

之前在看《超能陆战队》的时候就觉得里面的"蚁群"式机器人未来前景广阔,比如无人驾驶、群体飞行器、微型医疗机器人、以及后面军事领域的应用都非常有想像空间,这里我将构想一种专门应用于这种蚁群机器人的操作系统——分布式多节点机器人操作系统"蚁群"操作系统使用场景无人飞行器攻击战队超能陆战队中磁体机器人群无人驾驶快递分拣机器人"蚁群"操作系统特性对每个个体的算力、存储要求不高,运行决策分布在各个节点稳定性强,在个体与群体失去联系时,群体能正常工作具体功能特性跟随决策在蚁群个体中迁移,如:.

2020-12-10 13:36:35 633

原创 undefined reference to

编译出错g++ -O2 -g -lm -lrt -Llib_dir -lLib test.o -o out编译时出现错误: undefined reference to ‘func’排除常见问题objdump和nm命令查看库文件中确实含该函数;-L也指定了库的位置,-l也链接了库文件定位到问题改为如下就好:g++ -O2 -g test.o -Llib_dir -lLib -lm -lrt -o out总结在链接库时需要注意的库的依赖顺序,若库层层依赖,底层的库要放到更后

2020-11-04 15:52:38 217

原创 GD32F30x外部晶振修改

修改外部晶振获取时钟频率/*! \brief get the system clock, bus and peripheral clock frequency \param[in] clock: the clock frequency which to get only one parameter can be selected which is shown as below: \arg CK_SYS: system

2020-11-02 20:12:17 3318

原创 A311D项目开发总结

A311D项目有感最近项目使用了Amlogic的A311D平台,这款芯片的功能跟性能相比于其他平台都比较优秀了,当然他的开发过程也是让自己感觉收获了很多,这里就稍微做下回顾吧项目使用了荣品的A311D核心模块,硬件上内存相较于VIM3和odroid-n2存在差异,其他相差不大;荣品提供的SDK使用的是Buildroot构建的方式,uboot、kernel、ramdisk、rootfs统统打包在一起,而且编译打包一次的时间非常长,这是不能接受的,所以后面很多工作都是在将这些部件拆分开来;荣品SD

2020-10-24 11:25:35 6348 8

原创 A311D NPU支持

A311D NPU模块A311D包含一个NPU单元,可用于神经网络运算,支持Tensorflow、Caffe 和Darknet等主流的深度学习模型要使用NPU单元需要Linux内核勾选AMLOGIC_NPU,dts中也需要使能NPU,并为NPU预留一定内存Linux 内核:khads linux 4.9.232若存在/dev/galcore这个设备则说明NPU使能成功,如下图:A311D NPU使用Khadas:khadas npu 使用指南NPU SDK链接:aml_npu_sdk_6

2020-10-22 14:44:15 3122 6

原创 嵌入式学习书籍

嵌入式学习书籍C/C++RTOSLinuxARM网络C/C++《C专家编程》《C陷阱与缺陷》《C和指针》《C++ Primer》RTOS《uCOS-II 中文书(邵贝贝)》《RT-Thread 编程指南》Linux《How Linux Works 2nd Edition》《精通Linux 第二版》–【美】Brian Ward《嵌入式Linux开发教程》–周立功《Professional Linux Kernel Architecture》《深入理解Linux内核架构》–【美

2020-08-28 09:55:31 595

原创 STM32F103 I2C程序升级

I2C从机:STM32F103ZET6I2C主机:树莓派3B+IDE: STM32CubeIDE1.1.0HAL 库STM32 FLASH分区:0x08000000 - 0x08010000 : Bootloader0x08010000 - 0x08030000 : APPSTM32FBootloader1. 判断升级GPIO引脚电平;2. 若升级GPIO引脚置了直接跳转进入APP程序;3. 跳转代码如下,这里也可以加上关闭全局中断,防止跳转过程中发生中断,然后在..

2020-07-20 09:54:08 1248

原创 Linux设备驱动开发:I2C驱动架构

读《Linux设备驱动开发详解:基于最新的Linux4.0内核》—— Linux I2C核心、总线与设备驱动 篇I2C核心I2C总线驱动I2C设备驱动

2020-07-14 18:16:32 247

原创 make: aarch64-himix100-linux-gcc: Command not found

按照海思文档安装完交叉编译器后执行:sudo make CROSS_COMPILE=aarch64-himix100-linux- -j 20报错:make: aarch64-himix100-linux-gcc: Command not found执行命令又成功:aarch64-himix100-linux-gcc -vUsing built-in specs.COLLECT_GCC=aarch64-himix100-linux-gccCOLLECT_LTO_WRA..

2020-06-11 10:52:28 4297 2

原创 Coreutils交叉编译

Coreutils包括常用的shell命令,由于自己编译的busybox的mv命令不支持 -T 参数所以重新交叉编译一下移植:编译版本: Coreutils-8.27下载:wget https://ftp.gnu.org/gnu/coreutils/coreutils-8.27.tar.xz解压: sudo tar -xvJf coreutils-8.27.tar.xzcd coreutils-8.27/设置交叉编译器:export CC=/opt/Toolcha..

2020-06-06 10:35:11 1064

原创 STM32移植FreeModBus

MCU:STM32F4xx普通库移植主要是Uart和定时器portserial.c#include <stdio.h>#include "port.h"/* ----------------------- Modbus includes ----------------------------------*/#include "mb.h"#include "mbport.h"//STM32操作相关头文件#include "stm32f4Xx.h"#includ

2020-05-22 08:54:07 518

原创 STM32F103硬件I2C Slave

MCU:STM32F103IDE:STM32CubeIDEHAL库硬件I2C当作Slave,模拟EEPROM行为测试工具:树莓派为I2C主机,使用I2C-tools进行测试配置I2C:从机地址可直接在代码中修改,记得开启中断main.c代码:/* USER CODE END Header *//* Includes ------------------------------------------------------------------*/#includ

2020-05-21 16:51:45 3516 3

原创 STM32F407硬件I2C Slave

MCU:STM32F407ZET6IDE:STM32CubeIDEHAL库硬件I2C当作Slave,模拟EEPROM行为测试工具:树莓派为I2C主机,使用I2C-tools进行测试配置I2C为Slave,从机地址直接在代码中修改,开启中断以下为main.c中的程序/* Includes ------------------------------------------------------------------*/#include "main.h"/* P.

2020-05-20 16:14:51 4106 2

原创 STM32L475裸机移植LittleFS

MCU: STM32L475FLASH: W25Q128SPI模式: QSPIIDE: STM32CubeIDE1.1.0flash驱动使用SFUD(Serial Flash Universal Driver)配置QSPI和调试串口:移植SFUD:修改文件bsp.ctypes.hsfud_port.csfud_cfg.c这里参考SFUD/demo/stm32l475_non_os_qspi/例子sfud_cfg.c定义一个设备:#ifnde.

2020-05-11 17:49:40 1467

原创 STM32F0xx移植EasyFlash

MCU: STM32F072FLASH: W25Q128库:HALSPI: SPI模式IDE: STM32CubeIDE 1.1.0裸机移植EasyFlash基于FAL(FLASH抽象层) ,FAL基于SFUD(Serial Flash Universal Driver) 串行 Flash 通用驱动库配置调试串口和SPI:移植SFUD:修改移植文件:/sfud/inc/sfud_cfg.h/sfud/port/sfud_port.c另外修改几个涉及到包

2020-05-11 15:29:04 1498

原创 Linux内核调试工具

Strace:追踪系统调用路径systemtap:基于kprobekexec:从运行的内核装载另一个内核kdump:崩溃转存kprobe:内核里设置探针kdb:内核调试kgdb:用另一台机器配合gdb调试内核objdump:获取内核模块信息...

2020-05-06 18:51:19 388

原创 Linux进程间通信方式

匿名管道(pipe) 流管道 有名管道(FIFO) 信号量(semaphore) 信号(signal) 消息队列(message queue) 共享内存(shm) 内存映射(mmap) Socket Binder(android特有)...

2020-04-22 10:37:05 169

原创 UBI及EXT4文件系统

UBIFS介绍:由于超大容量NandFlash的普及,YAFFS等皆无法再去控制NandFlash的空间,于是在2006年由IBM与Nokia的工程师设计开发了UBI(UnsortedBlockImage)及其UBIFS文件系统,专门为了解决MTD(MemoryTechnologyDevice)设备所遇到的瓶颈。UBIFS可以认为是JFFS2文件系统的下一代产品。JFFS2运行在M...

2020-03-16 17:47:44 2580

原创 mtd-utils交叉编译

由于制作的Busybox缺少ubiformat命令,然后自己移植mtd-utils,这里记录下:环境:Ubuntu虚拟机19.04mtd-utils依赖zlib、lzo、e2fsprogs提供的库和头文件:zlib: 1.2.11http://www.zlib.net/lzo: 2.10http://www.oberhumer.com/opensource/lzo/do...

2020-03-11 10:42:47 2614 1

原创 Ubuntu虚拟机使用Debos构建Debian10

Ubuntu虚拟机版本:19.04Golang版本: 1.13.4 linux/amd64步骤:1.安装必要软件:sudo apt install golang git libglib2.0-dev libostree-dev qemu-system-x86 \ build-essential qemu-user-static debootstrap sys...

2020-03-03 10:16:51 699

原创 Linux 驱动注册流程

Linux设备管理模型将device、driver以链表的形式绑定在总线Bus上,向总线注册一个驱动时会去匹配相应设备,这里梳理下一个驱动注册的流程:1.驱动模块初始化函数module_init()被调用流程:start_kernel();rest_init();kernel_init();kernel_init_freeable();do_basic_setup();do_i...

2019-10-24 14:07:08 818

原创 Linux使用设备树的i2c驱动与设备匹配方式

Linux使用设备树的i2c驱动与设备匹配有3种方式:of_driver_match_device acpi_driver_match_device i2c_match_id源码:static int i2c_device_match(struct device *dev, struct device_driver *drv){ struct i2c_client...

2019-09-29 11:24:41 3419

原创 dts : rx8025t与lm75bd

外部RTC芯片rx8025t的时序与rx8025其他系列不同,但是兼容ds1307,可在内核中选择ds1307的驱动。温度芯片lm75bd兼容lm75a系列,可直接在内核中选择lm75a驱动。&i2c2 { clock_frequency = <100000>; pinctrl-names = "default"; pinc...

2019-09-29 09:44:57 980

原创 i.MX6模组MYC-6ULX使用

最近一个项目使用得是米尔的MYC-Y6ULY2系列模组,该模组基于飞思卡尔的i.MX6系列处理器内核 ARM® Cortex-A7主频 800M模组内置 512MB DDR3模组内置 4G eMMCSD Card*1:Console:CH340E UART to Micro USB串口*16:4路原生 12路为USB转出:GL852G-OHG12 :1路USB...

2019-09-21 10:55:41 429

原创 O_DIRECT打开文件失败

内核版本:Linux 4.1.39-g35786aadeab-dirty文件系统:UBIFS返回错误errno值:22 对应EINVAL官网说明:https://man.cx/open(2) EINVAL The filesystem does not support theO_DIRECTflag. SeeNOTESfo...

2019-09-03 10:46:57 2422

原创 RT-thread学习笔记之线程切换

年初的时候学习的RT-thread,时间久了有些东西都又忘了,这里记录一下自己的学习笔记方便回顾,请参考RT-thread的官方编程指南,里面讲解的其实很详细。 RT-thread在Cortex-M内核中是通过人为触发PendSV异常中断进行线程切换的,若在中断中触发PendSV异常,那么PendSV响应将在所有中断结束后进行,其实很多芯片内核都有PendSV异常中断用于操作系统线程切换;...

2019-08-31 14:13:50 1317

原创 ramdisk + overlay打造只读文件系统

为避免设备意外断电出现文件系统损坏,根文件系统起不来的情况,用ramdisk+overlay的方式制作分层的只读文件系统,lower层为只读文件系统,upper层为可读写分区,这样当文件系统出现问题时只需将upper层文件删除即可恢复文件系统,具体方案如下:硬件资源:SPI FLASH : 4MNAND FLASH: 1G基于nand flash 不可靠考量,...

2019-08-28 14:49:37 950

原创 Linux层次文件系统overlayfs

简介 OverlayFS是一种目前广泛应用的层次文件系统,openwrt、树莓派、docker等上都有应用。它于2014年被合并到Linux3.18内核中,顾名思义其主要特性就是“覆盖”,OverlayFS将单个Linux主机上的两个目录分层,并将它们显示为单个目录。这些目录称为层,OverlayFS的下层目录为"lowerdir"上层目录为"upperdir",合并目...

2019-08-24 14:45:56 2335 1

原创 initrd和initramfs及根文件系统切换

一.initrd和initramfs区别1.initramfs是对initrd的升级;2.initrd将根文件系统包和Image分开,而initramfs将根文件系统与内核打包在一起;3.initrd文件系统占用的内存得不到释放,而initramfs可以释放内存;4.initrd是基于ramdisk实现,initramfs是基于ramfs实现;5.ramdisk是把一块内存(r...

2019-08-21 16:51:19 2104

原创 ramdisk制作

之前写的一篇制作initramfs的总结是将initramfs和内核Image打包在一起的方案,因为我们有款产品需要将ramdisk和Image分开存储,所以这篇文章讲解ramdisk分开引导的方案。1.Busybox文件系统制作请参考之前的文章:https://blog.csdn.net/m0_38096844/article/details/977867612.打包ramdi...

2019-08-16 11:34:28 1365 3

原创 e2fsprogs移植

想实现在initrd文件系统中对emmc分区中的ext4文件系统进行修复的功能,但是之前用Busybox做的initramfs中fsck命令只支持minix文件系统,所以将e2fsprogs的fsck.ext4命令进行手动移植到initramfs中,以下是整个过程:从http://e2fsprogs.sourceforge.net/下载源码包 解压源码包: tar -zxvf e2fsp...

2019-08-09 12:06:32 1243 1

STM32f103_I2C_Update.rar

STM32F103使用I2C进行程序升级,HAL库,STM32CubeIDE工程,I2C主机使用树莓派,主机端程序使用GO:https://github.com/omzlo/pivoyager.git

2020-07-20

acmesystems_common.yaml

本文件为Debos构建debian10根文件系统的.yaml配置文件 sudo debos acmesystems_common.yaml #根据配置文件构建,生成debian-buster-armel.tgz sudo tar zxvf debian-buster-armel.tgz -C debian10/ #解压

2020-03-03

STM32F072B USB虚拟3串口

STM32F072B使用USB虚拟出3个串口,将虚拟出的串口分别连接到3个真使串口。

2018-10-17

CC13X0 Sensor Controller ADC编程示例

本示例为TI公司CC13X0系列芯片协处理器Sensor Controller 的ADC编程示例,Sensor Controller定时ADC采集,满足要求时可中断触发唤醒主CPU,从而达到低功耗ADC采集的效果。

2018-07-19

空空如也

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

TA关注的人

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