自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

中华田园巨龙

觉得好的话给个赞,也是对博主的支持。

  • 博客(61)
  • 资源 (2)
  • 收藏
  • 关注

原创 Linux笔记--程序后台运行办法

1、使用nohup指令nohup cammand 使得程序后台运行,信息打印输出到nohup.out中2、使用ctrl+z使用ctrl+z 程序挂起jobs 查看后台任务号bg %n 后台运行某程序fg %n 前台运行某程序3、使用&符号command & 让程序直接进入后台运行...

2021-01-19 16:54:29

原创 DAVE笔记--Micrium uc-Probo Oscilloscope调试

介绍1、DAVE4是英飞凌产品的开发工具,用于代码开发。产生.elf 符号文件,存有程序中的所有存于静态存储区的变量。2、Micrium用于编写UI界面,以及加载波形图,进行实时数据监控。(1)DashboardMicrium中类似于UI界面的开发方式,可以把.elf中的文件加载后添加到控件中。(2)OscilloscopeMicrium中的示波器功能,用于监控波形。Oscilloscope1、首先下载官方用于示波器的代码文件,地址https://www.micrium.com/down

2021-01-18 11:07:19 7

原创 DAVE笔记--Micrium uc-Probo DashBoard调试

介绍1、DAVE4是英飞凌产品的开发工具,用于代码开发。产生.elf 符号文件,存有程序中的所有存于静态存储区的变量。2、Micrium用于编写UI界面,以及加载波形图,进行实时数据监控。(1)DashboardMicrium中类似于UI界面的开发方式,可以把.elf中的文件加载后添加到控件中。(2)OscilloscopeMicrium中的示波器功能,用于监控波形。Dashboard1、首先用DAVE4 编写工程,编写完成后,右键工程->Propertes->C/C++ B

2021-01-18 10:51:19 10

原创 QT笔记--QT程序打包发布(linuxdeployqt工具)

介绍本文主要介绍QT程序打包发布,可以在未安装QT的平台上运行,并且解决了一些打包过程中的常见问题。工具linuxdeployqt步骤默认前提:Linux已经安装了QT Creater并且你的界面程序已经编好并可以执行。但是未打包发布。安装linuxdeployqt(本地编译安装)//环境准备sudo apt-get -y install git g++ libgl1-mesa-dev//下载git clone https://github.com/probonopd/linuxde

2020-12-24 15:06:54 74 3

原创 Linux笔记--信号量

介绍信号量是Linux内部的一种进程同步方式,在多个进程同时执行时,使用信号量可保护临界区代码执行时不会乱序。函数//创建并获取信号量int semget(key_t key, int num_sems, int sem_flags);//改变信号量的值int semop(int sem_id, struct sembuf *sem_opa, size_t num_sem_ops);//控制信号量int semctl(int sem_id, int sem_num, int command,

2020-12-23 15:54:31 12

原创 Linux笔记--man指令(福利)

介绍Linux提供了一个帮助手册,可以供使用者进行查询。格式man 代号 数据1 使用者在shell中可以操作的指令或可执行档2 系統核心可呼叫的函数与工具等3 一些常用的函数(function)与函数库(library),大部分是C的函数库(libc)4 装置档案的说明,通常在/dev下的档案5 设定档或者是某些档案的格式6 游戏(games)7 惯例与协定等,例如Linux档案系统、网络协定、ASCII code等等的說明8 系統管理員可用的管理指令9 跟kernel有关的文

2020-12-22 10:26:16 46

原创 Linux笔记--共享内存

介绍共享内存是一段物理数据区域,可以被映射到多个进程进行直接读写访问。十分方便。使用方式是 创建–映射–直接使用–取消映射–删除共享内存函数//创建并获取共享内存区int shmget(key_t key, size_t size, int shmflg);//映射内存void *shmat(int shmid, const void *shmaddr, int shmflg);//取消映射int shmdt(const void *shmaddr);//共享内存控制--用于删除共享内存

2020-12-22 09:50:33 10

原创 Linux笔记--消息队列

介绍  消息队列是Linux进程间通信的一种方式,可以把它理解为超市的储物柜,一个消息队列就是一个储物柜,而对应的类型就是储物柜格子编码。编码对应,就能存取对应的物品(数据);函数//创建以及获取队列 int msgget(key_t key, int msgflg)//发送数据到队列 int msgsnd(int msqid, struct msgbuf *msgp, int msgsz, int msgflg)//从队列接收数据 int msgrcv(int msqid, struct

2020-12-21 14:41:11 4

原创 Linux笔记--信号通信

介绍信号时Linux提供的一种用于进程间通讯的机制,使用方式类似中断或者定时器,都是先绑定再触发。函数//发送信号int kill(pid_t pid,int sig);//绑定信号与处理函数void (*signal(int sig, void (*func)(int)))(int)举例#include <stdio.h>#include <unistd.h>#include <signal.h>#include <stdlib.h>

2020-12-21 11:04:32 10

原创 Linux笔记--进程初识

有这样一段代码,分别在父进程和子进程中返回fork()的返回值,以及当前进程pid和父进程pid#include <stdio.h>#include <unistd.h>#include <signal.h>#include <stdlib.h>int t;pid_t pid;void print(){ printf("Hello\n"); exit(0);}int main(){ pid = fork(); if(pid

2020-12-21 10:45:09 9

转载 转载--Linux信号(signal) 机制分析

转自:https://www.cnblogs.com/hoys/archive/2012/08/19/2646377.htmlLinux信号(signal) 机制分析【摘要】本文分析了Linux内核对于信号的实现机制和应用层的相关处理。首先介绍了软中断信号的本质及信号的两种不同分类方法尤其是不可靠信号的原理。接着分析了内核对于信号的处理流程包括信号的触发/注册/执行及注销等。最后介绍了应用层的相关处理,主要包括信号处理函数的安装、信号的发送、屏蔽阻塞等,最后给了几个简单的应用实例。【关键字】软中断信号

2020-12-21 09:37:37 18

原创 Linux笔记--有名管道FIFO的使用

有名管道FIFO在系统中创建一个文件用来进行进程间信息交互,可以在非父子进程中交互信息。函数//创建有名管道,文件fifo.tmpmkfifo("fifo.tmp",S_IRWXU);//打开文件,可读可写open("fifo.tmp",O_WRONLY);//写入字符串write(fd, buf, strlen(buf));//打开文件,只读方式open("fifo.tmp",O_RDONLY);//读取文件内容到字符串read(fd, buf, sizeof(buf));//关

2020-12-18 11:08:11 11

原创 Linux笔记--无名管道Pipe通信

管道无名管道可以用来给父进程以及子进程之间通信,使用十分方便。函数//pipe创建管道,fd为一个int类型数组,fd[0]用来读,fd[1]用来写pipe(fd);//将字符串buf写入管道fd,成功则返回0,否则返回-1write(fd[1], buf, strlen(buf));//将管道fd的数据读出到buf,成功则返回0,否则返回-1read(fd[0], buf, sizeof(buf));//关闭端口,fd关闭管道,fd[0]读端口,fd[1]写端口close(fd[

2020-12-18 10:33:49 14

转载 QT笔记--信号和槽的阻塞与屏蔽操作(转载)

Qt程序中有时候不希望信号槽的触发,在某段流程结束之后,又需要继续回复信号槽状态,这时候可以用阻塞或者断开信号槽的方法来处理。阻塞方法:bool QObject::blockSignals(bool block)qt描述:阻塞模式下,这个对象发送的信号都会被阻塞,解除阻塞后则不再阻塞。返回值为之前状态的阻塞情况。If block is true, signals emitted by this object are blocked (i.e., emitting a signal will not

2020-12-17 16:28:41 22

原创 QT笔记--设置QDockWidget的默认大小以及显示/隐藏

QDockWidget大小设置1、首先,定义一个QDockWidget对象:QDockWidget *dock = new QDockWidget();2、之后新定义一个类,继承QWidget:class QMyWidget : public QWidget{public: QSize sizeHint() const { return size; } QSize size;};3、之后在代码里定义一个QMyWidget类型的对象,设置大

2020-12-17 14:21:52 127

原创 QT笔记--Dock Widget内添加控件并进行排列

目的:使用Dock Widget控件,在其内添加10个组件,并进行栅格排序。最终结果:代码以及注释://定义一个dock widgetQDockWidget *Dock_Widget = new QDockWidget(tr("Al_Dock_Widget"),this);//设置颜色QPalette palAl;palAl.setColor(QPalette::Background, Qt::cyan);Dock_Widget->setAutoFillBackgroun

2020-12-16 14:16:26 52

原创 QT笔记--实现对话框交互操作的方法

  在上一篇博文中,讲述了如何实现自定义对话框。在使用对话框时,我们会经常性的遇到一个问题:我怎么在一个界面的函数实现中,调用另一个界面的参数。例如,在字体设置界面上,获取主界面实时坐标。其实有两种办法:一、包含头文件的方式  假如有两个界面,一个是mainwindow,一个是dialog。  当我们想要在dialog的.cpp文件中,调用mainwindow的函数时,只需要在dialog.h里面,引用#include “mainwindow.h”,然后创建一个mainwindow 类的对象并实例化,

2020-11-26 15:21:19 15

原创 QT笔记--标准对话框与自定义对话框

QT标准对话框  QT提供了默认的五种对话框,分别为以下对话框类  其中从上到下分别为1、文件对话框2、颜色对话框3、字体对话框4、输入对话框5、消息框标准对话框调用方式void Dialog::on_btnOpen_clicked(){ //选择单个文件 QString curPath=QDir::currentPath();//获取系统当前目录 //获取应用程序的路径 QString dlgTitle="选择一个文件"; //对话框标题 QStrin

2020-11-20 15:42:04 12

原创 QT笔记--栅格布局导致的按钮变小无法调节

  当使用QT的栅格布局时,一列按钮会变小,无法用鼠标调节大小,而且调节栅格布局的属性也不起作用。  解决办法:调节布局内的按钮参数  minimumSize 最小大小  maximumSize 最大大小...

2020-11-13 14:52:07 7

原创 QT笔记--编程调试过程心得

  一,当编程时遇到new对象报错时,可能是由于没有包含类导致。举例:QTime fTimeCounter;//计时器报错:widget.cpp:9:11: error: variable has incomplete type 'QTime'qwindowdefs.h:77:7: note: forward declaration of 'QTime'解决:在头文件中设置#include <QTime>  二,当编程时,对象的函数不存在方法同上...

2020-11-13 10:33:49 9

原创 QT笔记--QT内类的层次关系,以及控件从属关系

  QT窗口界面使用的类层次如下(只包含了直接使用部分)  界面上每一个创建的控件,都是一个控件类的对象,定义在头文件ui_mainwindoow.h的类UI_MainWindow中,并且其中的成员函数setupUI提供了初始化过程。  而在工程目录下面的mainwindow.h文件中,在继承UI_MainWindow的基础上,又定义了一个私有对象ui,使用构造函数,调用ui->setupUI()对界面上的控件进行初始化。  如图所示,我在界面上定义了三个对象(控件):EditNum, Edi

2020-11-12 11:48:27 27

原创 QT笔记--QT基本程序框架与代码分析

  QT是一款非常简单好用的界面设计工具,第一次使用时,有被他的简洁易上手程序惊艳到。最近正在用QT搭建GUI界面程序,总结下QT的程序框架与以及使用的基本思想。一、基本程序框架  整体程序框架分为两大部分,而细分的话,可分为三小部分1、xxx.h头文件部分,用来定义控件对象2、main.cpp部分,窗体显示入口3、xxx.cpp部分,定义控件(一个空间就是一个object)的初始化,并且实现槽函数。二、动作信号传递流程  在一个界面上,有按钮,勾选框,文本显示框等多个控件,每一个控件,对应

2020-11-11 11:17:12 13

原创 DAVE4笔记--Error in services launch sequence

  在进行DAVE4仿真时,第一次使用容易出现仿真设置报错  这是由于DAVE4使用Jlink进行仿真,但是仿真路径设置不对导致的。解决办法:进入 debug configurations点击browse ,选择自己的Jlink目录下的JLinkGDBServerCL.exe之后点击Apply,进行仿真就可以了...

2020-11-06 10:55:36 93

原创 Linux驱动笔记--主机驱动与外设驱动概念以及分离思想

主机端驱动  即CPU上的总线控制器,例如I2C,SPI,USB等。指的是总线。外设端驱动  CPU上的总线所连接的外设,即为外设端驱动。连接主机和外设的纽带  外设调用主机端驱动时,使用的标准API,由标准API将请求发给主机端驱动。板级逻辑  CPU上的总线与对应外设的连接顺序,即哪个总线连接了哪个外设,即为板级逻辑。一般出现在arch/arm/mach-xxx或者arch/arm/boot/dts下面。举例说明:一个CPU使用USB1连接了一个鼠标,USB2连接了一个键盘。那么USB就

2020-10-13 14:46:03 23 1

原创 LinuxCNC笔记--Hal driver驱动源码例程(基于Ethercat)

以下是.hal文件与.ini文件举例,可以根据自己的PDO配置以及轴数自行修改。.hal文件loadusr -W lcec_conf ethercat-conf_X.xmlloadrt lcecloadrt trivkinsloadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXESloadrt not count=1

2020-09-27 15:03:38 179 3

转载 Linux驱动笔记-字符设备,块设备,网络设备

  在Linux设备驱动开发中,粗略的将设备分为三种类型:字符设备,块设备和网络设备。1、字符设备:指能够像字节流串行顺序依次进行访问的设备,对它的读写是以字节为单位。字符设备的上层没有磁盘文件系统,所以字符设备的file_operations成员函数就直接由字符设备驱动提供(一般字符设备都会实现相应的fops集),因此file_operations 也就成为了字符设备驱动的核心。  类型举例:鼠标,键盘,串口,控制台,LED2、块设备:以数据块的形式存放数据,如NAND Flash以页为单位存储数

2020-09-27 10:06:03 26

原创 Linux驱动笔记2--内核模块

  内核模块可加载到内核中或生成为.ko文件,等系统启动后再加载。加载完之后就与加载到内核中完全一样。以此可以减少内核体积。知识结构命令函数内核模块例子#include <linux/init.h>#include <linux/module.h>static int __init hello_init(void){ printk(KERN_INFO "Hello World enter\n"); return 0;}module_int(hello_

2020-09-23 10:01:54 38

原创 Ethercat系列---IGH DC模式测试电机程序(Preempt-RT)

先上代码#include <errno.h>#include <signal.h>#include <stdio.h>#include <string.h>#include <sys/resource.h>#include <sys/time.h>#include <sys/types.h>#include <unistd.h>#include <time.h>#include &

2020-09-21 16:20:35 400 10

原创 LinuxCNC笔记---HAL驱动的指令介绍

  LinuxCNC的硬件抽象层,是用来给客户操作,进行LinuxCNC驱动电机用的。LinuxCNC官方给出了操作说明,之后有位国外的大神又开发出了针对LinuxCNC和IGH之间的驱动linux-ethercat(在github上可找到源码)。下面为大家介绍下,操作LinuxCNC HAL的指令。HAL驱动的构成指令举例详解首先,从终端进入到HAL命令行,执行halrun,即可进入halcmd命令行loadrt

2020-09-14 12:08:44 257 7

原创 菜鸟笔记---开发板驱动HDMI显示屏,闪屏问题解决

在我用开发板驱动HDMI显示屏时,显示屏一开始较为稳定,但是没过一会就开始闪屏,越闪越快,最后完全黑屏,无法操作。之后使用xrandr,查看当前显示参数,发现参数为1920*1080 60hz。这个参数,显示屏是支持的,之前用笔记本带的时候就没问题。最后询问了原厂,原来是开发板不支持这么高的刷新率和分辨率。最后使用指令改为 xrandr --output HDMI-1 --mode 1280x960 --rate 60.00问题解决。...

2020-09-08 17:36:27 63

原创 菜鸟笔记---startx执行后显示Only console users are allowed to run the X server

输入startx &后报错信息/usr/lib/xorg/Xorg.wrap: Only console users are allowed to run the X serverxinit: giving upxinit: unable to connect to X server: Connection refusedxinit: server error意思是需要你在开发板接入的tty上执行startx,而不是用电脑显示的超级终端ttys0...

2020-09-08 12:07:02 1109

原创 git笔记---git下载加速办法

1、使用站长工具查询下载网址的iphttps://ip.tool.chinaz.com/2、将查询的ip以及网址写入到 /etc/hosts147.75.46.191 git.kernel.org3、重启dns寻址sudo /etc/init.d/networking restart

2020-09-04 14:57:35 34

原创 linux驱动笔记1---linux内核驱动目录结构

  在Linux内核中新增驱动时,需要增加以下结构和文件更改,下面做一个笔记进行记录。驱动结构的Xmind展示新增驱动test详解  新增驱动为drivers下的test文件夹,里面包含了驱动源码test**.c1、在arch/arm64/Kconfig文件下增加source “drivers/test/Kconfig” ,使得进行make menuconfig时,drivers/test下的Kconfig可以参与进来。2、在drivers下的Makefile下,增加对test目录的支持3、在

2020-09-04 10:30:19 65

原创 Yocto笔记--ERROR: Worker process (12928) exited unexpectedly (-9), shutting down...

  最近使用Yocto的bitbake指令时,出现了如下错误提示ERROR: Worker process (12928) exited unexpectedly (-9), shutting down...ERROR: Worker process (12928) exited unexpectedly (-9), shutting down...ERROR: Worker process (12928) exited unexpectedly (-9), shutting down...ERRO

2020-09-03 17:12:37 154

原创 Linux移植笔记--arm64上的Linux系统移植

  linux作为一款流行的嵌入式系统,目前已经有多种架构的MCU支持Linux移植,arm64就是其中一种。今天在这里想做一个笔记,记录一下完整的arm64移植过程。嵌入式Linux系统组成部分嵌入式Linux移植到开发板上时,主要有四个组成部分,下面一 一列举。  在启动过程中,bootloader加载设备树文件(dtb),之后启动内核(Start kernel),进而加载根文件系统(debian或者ubuntu),最后进入系统。  那么我们所做的工作可以分为以下三部分:1、进行bootlo

2020-08-26 14:49:06 229

原创 LinuxCNC---在PC端显示开发板LinuxCNC界面

  今天在调试开发板时,执行开发板上的linuxcnc指令,总是出现如下报错LINUXCNC - 2.9.0~pre0application-specific initialization failed: couldn't connect to display "192.168.137.3:1"Error in startup script: invalid command name "image" while executing"image create photo -file $f/$i

2020-08-25 17:18:43 436 1

原创 Machinekit系列---适用于arm64的Machinekit安装

背景介绍  老版本的Machinekit只适用于arm32位的系统。发展到了后期,开发人员将Machinekit一分为二。发展为后来的Machinekt-HAL(硬件抽象层)和 Machinekit-CNC(应用层)。  而Machinekt-HAL发展过程中,早已支持arm64位系统。但是Machinekit-CNC却在一年前(2019年)停止更新维护,至今不支持arm64。那么,我们该怎么在arm64位系统上安装Machinekit呢?  在之前和开发人员的交流过程中,他们推荐了EMCApplic

2020-08-20 12:20:40 236

原创 菜鸟笔记---Linux下编译时linux/module.h: No such file or directory(详细)

  今天在编译安装软件时,一直报错,提示我fatel error : linux/module.h: No such file or directory  查找了一下原因,是因为编译器在make时,会搜索头文件的路径/usr/include/,但是我是移植的debian系统到开发板,并且内核是自己打补丁编译的。导致/usr/include/下面没有linux/module.h相关文件。  而经过我检查发现,我的linux/module.h文件在/usr/src/linux-4.19.xx/inclu

2020-08-19 09:46:38 542

原创 菜鸟笔记--internet连接共享访问被启用时 出现了一个错误 ,(null)

今天开启电脑热点,供开发板上网时,突然出现一个错误internet连接共享访问被启用时 出现了一个错误 ,(null)。明明昨天还好好的。查看了网上的办法。1、检查 服务—Internet Connection Sharing (ICS) 已启用2、检查 服务—Windows Firewall 不存在,经百度得知,已改为WindowsDefinderFirewall,已启用。3、检查 服务—Windows Installer 已启用4、检查 服务—Windows up

2020-08-18 11:30:27 90

原创 菜鸟笔记-- fatal error: google/protobuf/stubs/common.h: No such file or directory解决

今天在编译过程中发现如下报警Compiling hal/user_comps/xhc-whb04b-6/pendant.ccCompiling hal/user_comps/xhc-whb04b-6/xhc-whb04b6.ccCompiling hal/user_comps/xhc-whb04b-6/main.cchal/user_comps/xhc-whb04b-6/main.cc:30:42: fatal error: google/protobuf/stubs/common.h: No su

2020-08-13 17:39:42 384

Tutorial, LinuxCNC, IndraDrive and EtherCAT.pdf

linuxcnc-ethercat的HAL文件编写说明,包括对xml文件以及hal文件的编写举例。

2020-09-10

Ethercat协议详解.zip

Ethercat主站协议详解,对于想要开发主站的同学有很大帮助,便于理解主站源代码的相关作用。注:英文文档 1、Ethercat协议原理,应用层,数据链路层,物理层。 2、Ethercat从站寄存器说明 3、ET1200硬件详解

2020-05-12

空空如也

空空如也

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

TA关注的人 TA的粉丝

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