- 博客(82)
- 资源 (11)
- 收藏
- 关注
原创 HI3559av100的pcie扩展SATA内核配置
项目场景:Hi3559AV100芯片,自带PCIE接口,可以拓展pcie转SATA接口,扩大SSD电子存储设备,在视频采集过程中加大数据存储空间是必要的。问题描述:在配置hi3559AV100的pcie转SATA的驱动时,明明pci总线驱动在内核中已经开启,但就是不能找到SATA下的存储块设备;在Linux系统总使用lspci命令也找到了pcie装SATA芯片88se9215芯片的pcie设备ID:1b4b:9215原因分析:分析发现,既然是PCI能正常扫描到,那就应该.
2021-04-08 21:39:28
3151
转载 uboot下内存空间读写命令md&mw
md指令uboot下输入指令md,会提示md的用法,memory display,即内存显示。U-Boot-PetaLinux> mdmd - memory displayUsage:md [.b, .w, .l] address [# of objects]b:8位w:16位l:32位(默认值)示例:上述0x10000000是要显示内存的那个地址,后面的数字是输出的个数,注意是16进制的。直接输入md来显示,默认是以32位为单位输出 。mw指令u...
2020-10-17 11:21:44
2622
原创 PCIE配置和地址空间
来源:https://www.jianshu.com/p/574e9a2cbc4e每个PCIe设备,有这么一段空间,Host软件可以读取它获得该设备的一些信息,也可以通过它来配置该设备,这段空间就叫做PCIe的配置空间。不同于每个设备的其它空间,PCIe设备的配置空间是协议规定好的,哪个地方放什么内容,都是有定义的。PCI或者PCI-X时代就有配置空间的概念,那时的配置空间如下:图6.1整个配置空间就是一系列寄存器的集合,其中Type 0是Endpoint的配置,Type 1是Brid.
2020-10-17 11:13:54
3661
1
原创 ALSA音频工具编译安装
1.官网http://www.alsa-project.org下载alsa-lib和alsa-utils我的版本:alsa-lib-1.0.27.2.tar.bz2 和alsa-utils-1.0.27.2.tar.bz22.创建/home/m/3rd/alsa目录,并在目录下创建install目录,接着把压缩包拷到alsa目录下3.编译alsa-lib步骤tar -xvf alsa-lib-1.0.27.2.tar.bz2cd alsa-lib-1.0.27.2CC=arm-none-...
2020-10-06 21:26:28
1272
原创 Linux系统读写网卡PHY寄存器工具
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <linux/mii.h>#include <sys/types.h>#include <sys/socket.h>#include <sys/ioctl.h>#include <net/if.h>#include <linux/sockios.h>#i.
2020-09-11 00:11:46
2375
原创 UEFI学习开发(1)Ubuntu18.04搭建EDK2编译环境
UEFI开发大多在windos下进行,但是习惯使用gcc编译的我来说还是想在Ubuntu环境下开发调试uefi,下面来介绍一下在Ubuntu18.04环境下搭建udk2018编译环境具体步骤可以参考一下:https://ay123.net/668.html在这里描述一下我在搭建编译环境的时候遇到的问题:问题1:在编译Basetools时报错“can not be used when m...
2020-03-25 16:33:38
3127
1
原创 Ubuntu技巧:Ubuntu下多个gcc版本设置优先级
1.首先查看当前系统装了几个GCC版本:ls /usr/bin/gcc*2.给GCC各版本设置优先级,最后设置的数字越小,优先级越高,下面设置是GCC4.8为最高,即默认是GCC48.sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 70sudo update-alternatives --ins...
2020-03-17 22:46:25
4611
1
原创 Ubuntu技巧:Ubuntu上通过ethtool工具更改82580网卡MAC
如果想在Ubuntu下永久更改网卡MAC要如何实现,在网上搜了一些方法,单是大部分都是使用脚本配置;无意间搜到ethtool可以读写网卡eeprom的数据,我尝试直接从网卡的EEPROM中做手脚,成功更改mac后,不管系统如何更换,网卡Mac都会永久更改。ethtool 工具有一个-E 指令, 可以通过此指令修改网卡的eeprom. 前提是此网卡驱动编写了ethtool驱动接口,并具有eeprom...
2019-11-15 01:25:08
2753
原创 Ubuntu技巧:Linux中创建长路径的快捷键
Linux系统中创建长路径的快捷键1.在根目录下输入命令 vi ~/.bashrc或在ARM板的 ~/.bash_profile如果不存在则创建这个文件2.在文件的末尾 输入命令 alias showlog='cd /home/app/logs/'保存退出3.输入命令 source ~/.bashrc4.直接输入 showlog 进入到想要的路径下长路径设置快捷键完成...
2019-10-08 22:55:46
560
原创 GD32F407的CAN1无法进入接收中断问题解决
和STM32F4类似,在使用GD32F4时,初始化不对会导致MCU的CAN1控制器在中断接收数据的时候无法产生中断。则需要如下初始化才行:/*! \brief initialize CAN and filter \param[in] can_parameter \arg can_parameter_struct \param[in...
2019-10-06 17:37:37
9099
3
原创 QT建立动态数据表格tableView
最近做在做一个在linux下CAN数据收发测试上位机,在参考了周立功的CANTest测试软件界面后,想做一个和它相似的工具软件,这里就需要用到列表,最终实现了一个类似的上位机,下面先展示一下效果:周立功的测试软件界面:我实现的软件界面:1、tableView创建列表关键代码/*设置列字段名*/ modelCAN0->setColumnC...
2019-10-06 17:06:21
3889
2
原创 Linux学习之i-mx287学习:arm板上i2c-tools工具使用
i2c-tools是一个开源的linux下I2C设备测试工具,在Ubuntu或者ARM板环境下都能使用,下面介绍一下arm9下的I2C-tools工具的交叉编译和使用测试。步骤一:获取i2c-tools源码:git clone https://github.com/ev3dev/i2c-tools.git步骤二 :交叉编译i2c-tools:make CC=arm-linux-...
2019-10-06 16:26:37
1079
转载 ipmitool命令总结
Name(名字) Ipmitool —— 对于控制支持IPMI的设备有效.Synopsis(概要)ipmitool [-c|-h|-v|-V]-I open <command>ipmitool [-c|-h|-v|-V]-I lan -H <hostname> &nb...
2019-10-06 14:45:51
1966
原创 Linux学习之i-mx287学习:ARM9与GD32F407的I2C通信(ioctl,write,read)
最近想试一下ARM9下的I2C设备与外挂MCU通信,外挂mcu用的是GD32F407,在把GD32F4的I2C0初始化成从中断接收模式后,ARM9的i2c读写遇到了一点问题,mcu始终没有进接收中断,在搜索问题解决方法时了解到linux下的I2C设备操作的一些经验,在这里记录一下。一、linux下I2C设备的设置i2c通信无非是模式设置、设备地址设置、速率设置,linux下...
2019-10-06 00:45:19
828
原创 STM32F10x系列单片机keil虚拟仿真设置
keil的设置如下图其他型号的芯片没成功过,STM32F103ZF可以改成自己使用的额片子的型号例如STM32F103VE等。仿真运行效果如下:
2019-09-08 22:39:07
1343
1
原创 Linux学习之i-mx287学习:linux开机调用驱动模块,生成设备文件
https://www.cnblogs.com/puck/archive/2013/04/16/3023869.html在/etc/init.d/rc.local添加入下内容,my_dev.ko是自己编写的驱动文件,路径自己设置;第二句是在/dev/下生成需要读写操作的设备文件操作。insmod my_dev.komknod /dev/my_dev c 251 0 // 设备文...
2019-08-21 01:13:05
280
原创 Ubuntu技巧:windows和Ubuntu下给ping包加时间戳
UBUNTU下ping包加时间戳:Ubuntu下给我们用ping来测试网络通断,但是再测试网络的通信时,特别是测试网络冗余时,我们就想在ping包中加时间戳,这里给出在ping包加时间戳的方法ping 192.168.1.3 -c 10 | awk '{ print strftime("%H:%M:%S",systime()) $0"\t" }'此方法在Ubuntu14.04上...
2019-08-07 00:07:14
1923
原创 Ubuntu技巧:windows下挂载共享文件夹到Linux的cifs
对于嵌入式开发人员来说,需要经常在Windows和Linux之间来回切换环境;我们知道要在Ubuntu下交叉编译一些应用源码,需要特定的条件,大致分为两种方式,一种是将源码考到linux环境下编译,这样从windows下拷贝文件到Linux设备会比较繁琐;第二种方式则是不把源码拷贝到Linux下,采用共享文件夹的方式挂载到Linux设备中,然后直接编译就可以了。那么我们采用什么方式呢?我认...
2019-07-26 01:28:07
2538
原创 ubuntu下设备树信息dtb文件反编译方法
问题:如何查看ubunt下的.dtb文件如果是银河麒麟arm64架构的处理器平台,建议在如下链接去下载相应版本的device-tree-compiler软件包并安装https://packages.debian.org/buster/device-tree-compiler如果是在Ubuntu下则直接运行sudo apt-get install device-tree-compil...
2019-07-12 00:22:06
2794
1
转载 Qt5.7一个简单的多线程实例(类QThread)
Qt开启多线程,主要用到类QThread。有两种方法,第一种用一个类继承QThread,然后重新改写虚函数run()。当要开启新线程时,只需要实例该类,然后调用函数start(),就可以开启一条多线程。第二种方法是继承一个QObject类,然后利用moveToThread()函数开启一个线程槽函数,将要花费大量时间计算的代码放入该线程槽函数中。第二种方法可以参考写的另一篇博客https://blo...
2019-06-20 23:35:10
1257
原创 STM32使用CubeMAX配置的串口中断接收方法
STM32使用CubeMAX配置的串口中断接收方法目录1.定位串口中断发生的地方2.处理串口中断接收的流程是:(1)初始化串口(2)在main中第一次调用接收中断函数(这个也是比较关键的)(3)重写HAL_UART_RxCpltCallback回调,在回调中处理接收的数据,重点是回调函数中也要调用一次HAL_UART_Receive_IT函数。STM32使用cubeMA...
2019-06-17 23:25:28
7700
原创 Ubuntu技巧:Ubuntu中qt调用串口设备读写权限问题
ubuntu qtcreator 硬件权限问题在使用 qtcreator 在 ubuntu(debian、mint 等类同)下做开发时,常用到权限问题,无法直接操作硬件,比如串口等。办法之一是使用 root 打开 creator,进而进行其他操作。但是,这样做的问题是,文件也全部都被改成了 root 权限,会带来其他的障碍。这里考虑从 linux group 权限入手。比如,串口 ...
2019-06-16 22:28:15
1858
3
原创 阿里云MQTT服务器搭建--Mosquitto用户名密码配置
前言:基于Mosquitto服务器已经搭建成功,大部分都是采用默认的是允许匿名用户登录模式,正式上线的系统需要进行用户认证。1.用户参数说明Mosquitto服务器的配置文件为/etc/mosquitto/mosquitto.conf,关于用户认证的方式和读取的配置都在这个文件中进行配置。allow_anonymous允许匿名password_file密码文件acl_file访问控制列表...
2019-06-13 00:09:50
2800
原创 STM32作为I2C从机中断接收和从模式中断应答数据总结
之前在项目中用到了STM32F103的i2c功能,大致功能是两个单片机进行i2c通信,而且通信模式是主问从答模式。这里我研究了一下STM32F103硬件i2c作为从机中断接收主设备请求,然后从设备在主设备发送读信号时中断发送回应的功能。在网上找了很多资料,都说STM32F103的i2c硬件有瑕疵,具体有啥瑕疵我也不太清楚,只是大部分例程都是用IO模拟I2C。我这里使用的是硬件i2c,由于手上有...
2019-06-03 23:39:39
16149
8
原创 Ubuntu技巧:服务器系统静态IP配置
目录1.首先在终端中执行命令:2./etc/network/interfaces设置静态ip内容3.etc/resolv.conf 里面设置DNS服务器,设置gateway的地址4.修改完成之后需要重启网络服务以麒麟服务器系统为例,设置静态ip需要修改两个文件1.首先在终端中执行命令:ip a查看到网卡的信息,一般是有lo和eth0网卡的,我这里的网卡是enp7s...
2019-06-03 22:53:50
1420
原创 BMC(2):交叉编译IPMITOOL时出现undefined reference to rpl_malloc错误
编译的时候正常,但是在链接动态库的时候显示如下错误:undefined reference to rpl_malloc解决办法:打开config.h.in,删掉下面两行,重新编译一次 #undef malloc#undef realloc...
2019-05-29 01:03:36
436
原创 Ubuntu技巧:dpkg工具使用指南
dpkg是一个Debian的一个命令行工具,它可以用来安装、删除、构建和管理Debian的软件包。下面是它的一些命令解释:1)安装软件命令行:dpkg -i <.deb file name>示例:dpkg -i avg71flm_r28-1_i386.deb2)安装一个目录下面所有的软件包命令行:dpkg -R示例:dpkg -R /usr/local/src3)释放软...
2019-05-27 22:29:37
430
原创 BMC(1):ipmitool常用命令记录
IPMITool和其中常用的命令IPMI(Intelligent Platform Management Interface)即智能平台管理接口是使硬件管理具备“智能化”的新一代通用接口标准。用户可以利用 IPMI 监视服务器的物理特征,如温度、电压、电扇工作状态、电源供应以及机箱入侵等。Ipmi 最大的优势在于它是独立于 CPU BIOS 和 OS 的,所以用户无论在开机还是关机的状态下,只...
2019-05-03 23:35:38
7084
原创 STM32读取MCU唯一ID和flash信息
1、基本描述在STM32的全系列MCU中均有一个96位的唯一设备标识符。在ST的相关资料中,对其功能的描述有3各方面: 用作序列号(例如 USB 字符串序列号或其它终端应用程序) 在对内部 Flash 进行编程前将唯一 ID 与软件加密原语和协议结合使用时用作安全密钥以提高 Flash 中代码的安全性 激活安全自举过程等在资料中对其特性的描述是:96 位的唯一设备...
2019-05-03 23:26:41
3633
1
原创 ubuntu下编译STM32程序和烧写
参考链接:https://www.linuxidc.com/Linux/2015-08/121322.htm验证工程:https://github.com/zenglongGH/stm32f4-CANopen-project编译工具链下载安装:The toolchain is here:https://launchpad.net/gcc-arm-embedde...
2019-04-24 00:33:20
3360
1
原创 IPMI与BMC简介
智能平台管理接口 (IPMI) 是一种开放标准的硬件管理接口规格,定义了嵌入式管理子系统进行通信的特定方法。IPMI 信息通过基板管理控制器 (BMC)(位于 IPMI 规格的硬件组件上)进行交流。使用低级硬件智能管理而不使用操作系统进行管理,具有两个主要优点: 首先,此配置允许进行带外服务器管理;其次,操作系统不必负担传输系统状态数据的任务。用户可以利用IPMI监视服务器的物理健康特征,如温度、...
2019-04-10 18:13:43
8942
1
原创 Ubuntu技巧:Ubuntu离线安装apt-get的软件(.deb)
最近遇到需要在离线电脑上安装cutecom串口调试软件,正常情况下我们都是连上Ubuntu的网络,让后执行:sudo apt-get install cutecom但是没有网络的情况下怎么安装呢,这时需要在其他地方下载.deb的安装包,记住不是下载源码包,因为源码会需要编译,如果目标机上是新装的Ubuntu系统,什么工具都没有,比较麻烦,所以直接使用安装工具dpkg进行安装,这个工具是Ub...
2019-04-09 23:54:17
14405
1
原创 基于SmartARM2300开发板的ADS工程移植keil5工程
需求描述:最近在用LCP2378做项目,需要用到此芯片上的CAN接口,官方给的例程中,是ADS平台下的,根据我个人习惯,想在keil下进行开发,所以就需要将源码转换到keil平台上,根据需要搭建好keil5的软件环境(需要能支持LPC2XXX系列芯片支持包)。1.新建keil工程,选择LCP2378芯片:2、 会提示是否加载LPC2300.S可以选择加载后可以删除,这个文件相...
2019-03-26 23:08:25
754
1
原创 调试LPC2300单片机时出现"error: L6236E: No section matches selector - no section to be FIRST/LAST."
问题1描述:在将SmartARM2300单片机开发板的程序源码搬到keil,建立工程后,编译第一次遇到问题是“error: #147-D: declaration is incompatible with "void CANIntPrg(void)__irq" (declared at line 185 of "can\LPC2300CAN.h")”经查找解决方法时参考:armc...
2019-03-24 22:19:07
1655
1
原创 Ubuntu技巧:linux后台运行程序方法
1. 执行命令后加 & 符号,缺点客户端关了,也会停止执行 后台执行:./a.out & 显示到前台用命令:fg2. nohup 命令 & , 客户端关了,后台还会在执行 后台执行:nohup ./a.out &可以将这些启动后台运行命令写进启动脚本,使应用程序上电自启动。在I-MX287a开发板上想上电自启QT...
2019-03-09 17:58:52
788
原创 STM32L151单片机标准库静态编译和调用
STM32提供的标准库是ST单片机开发工程师应该非常熟悉的,在工程中调用标准库函数也是非常高效的开发方式,但是每次创建工程都需要将标准库文件源码和头文件添加到工程中,是不是觉得很麻烦呢,而且每次编译的时候,如果全编译,会花费很多不必要的时间,所以这里提供一个可提高stm32标准库开发效率和编译速度的方法:stm32静态库编译及调用测试,不仅标准库可以编译成lib文件调用,自己封装的通用的算法,也可...
2019-03-08 17:27:44
2326
原创 嵌入式C语言基础试题
#include <stdio.h>//设置a值的bit3位,使其他bit位保持不变#define SETBIT3(a) ((a) |= (1<<3))#define RESETBIT3(a) ((a) &= ~(1<<3))//测试函数声明void test1(void);void test2(void);void test3(v...
2019-03-08 13:56:13
488
gd32f407rtosDemo.rar
2019-05-12
基于STM32F103串口iap升级程序的IAP工程和APP工程
2019-01-17
windows下基于QT5.7的mqttClient测试上位机软件源码
2019-01-17
基于QT5.7给STM32F103进行串口升级的上位机源码
2019-01-17
uboot yt8521
2023-03-08
TA创建的收藏夹 TA关注的收藏夹
TA关注的人