自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 资源 (1)
  • 收藏
  • 关注

原创 两个同网段网口的数据发送

原因:因为系统里面有一个路由表,当您设置IP的时候就会同时设置路由表,当需要访问外面的时候,系统会去路由表里面查询,当查询到第一个匹配的项目时就应用这个项目,eth0在路由表的第一行,也就是从这条路径走了。可以从socket程序层面绑定具体的网口,让数据分别从eth0和eth1发出去。PS:通过手动配置路由是不是可以实现?网络知识欠缺,留待后期验证~~~结果:两个IP发送的数据会通过 eth0 发送,而eth1没有数据。同一台设备的两个网口,如果为同一网段会怎样?

2023-05-20 10:19:23 351

原创 使用多个USB网卡,重启后网口名称都会变化

多个USB网卡,重启后网口名称变化

2023-02-09 13:19:43 989

原创 vsomeip之E2E

1、AUTOSAR_E2EE2E的概念是在运行时对与安全相关的数据交互进行保护,以防止通信链路故障的影响。基本实现方式是在要保护的数据区添加额外的E2E Header。发送端负责添加E2E Header,接收端会对Header进行校验检查,保证数据的完整性。参考 AUTOSAR_PRS_E2EProtocol Specification R20-11 ,规定了不同的E2E Profiles,如1,2,4,5,6,7,8,11,22等以E2E Profile 4为例,规范中定义了Profile

2022-05-28 15:23:50 2908 3

原创 vsome/ip test 编译

最近看vsomeip的E2E,示例代码在test中。vsomeip中的test部分编译,依赖于gtest(googletest)库。而在执行 cmake .. 的时候,提示 GTEST_ROOT is not defined第1步:安装gtest,发现系统中已经存在第2步:在cmake时指定GTEST_ROOTcmake -DGTEST_ROOT=/usr/src/gtest ..GTEST_ROOT 文件解决,同时提示几个warning(1) TEST_IP_MASTER TE

2022-05-25 15:07:23 1228

原创 vsomeip第一课: vsomeip的安装和demo演示

vsomeip安装包及依赖安装过程helloworld demo编译执行vsomeip安装包及依赖host系统为Ubuntu18.04,从github中下载vsomeip安装包 github-vsomeip,下载最新版本3.1.20.3最终安装完成后会生成以下两个动态链接库1\ SOME/IP共享库 (libvsomeip3.so)2\ SOME/IP的服务发现(libvsomeip3-sd.so),如果服务发现已启用,则在运行时加载...

2022-03-26 13:56:35 6397 1

原创 如何在不删除32位Office的情况下安装AccessDataEngine64位

在win10中已安装32位的office,由于某些64位应用程序需要访问Access数据库,而访问数据库须使用AccessDataEngine即Access数据库引擎64位。而正常情况下,如果有32位Office安装在系统中,AccessDataEngine64位将会提示无法安装,如图:...

2021-06-17 22:40:22 6837

原创 ROS安装总结

初学ROS,第一步的install是必然经历的,无论是基于虚拟机还是双系统。具体的安装步骤在网上可以很方便的找到,如ROS wiki http://wiki.ros.org/melodic/Installation/Ubuntu,又或者古月居的ROS入门21讲等,b站有详细的讲解视频https://www.bilibili.com/video/BV1zt411G7Vn?p=5现以 Ubuntu18.04+ROS Melodic为例说明。1、ROS安装步骤(1) 配置Ubuntu的源和库.

2021-05-23 23:02:41 494 4

原创 配置VS Code进行ROS开发

系统环境:ubuntu18.04 + ROS melodic1、VS Code 安装(1)可以直接从Ubuntu的软件中心安装;(2)也可以从官网下载安装包 ,vscode 下载:https://code.visualstudio.com/download,Ubuntu使用 dep安装包直接双击安装,或者sudo dpkg -i xxxx.deb 进行安装。2、安装扩展插件ROS开发会涉及到 ROS、C++、Python、Cmake。(1)打开VS Code,打开 Exten..

2021-02-01 15:17:08 765

原创 ubuntu18.04 + melodic 无法运行rqt_plot

在ubuntu18.04 + melodic环境下,运行 rosrun rqt_plot rqt_plot 报错:从报错信息种可以看出,python2.7 的 matplotlib出了问题,这里通过重新安装matplotlib解决。1、执行安装命令$ pip install -U matplotlib上述命令可能会报错,是因为没有安装pip的缘故,执行 sudo apt install python-pip 进行安装pip22、执行pip install -U matplotli..

2021-01-27 12:26:20 498

原创 win10系统可以登录微信,但浏览器不能打开网页

电脑可以登录微信、QQ,使用浏览器(无论 qq、谷歌、火狐),都无法打开网页,网上搜索了许多办法,配置DNS、电脑管家网络修复......都没有作用!!!最后这篇博客起了作用,https://xiong535.blog.csdn.net/article/details/102470601使用火狐登录时,报错“代理服务器拒绝连接”,只需要把 “使用代理服务器”关闭就好...

2021-01-23 15:03:02 12753 5

原创 主机win7使用USB无线网卡,虚拟机Ubuntu如何上网?

主机win7使用TP-LINK Wireless USB Adapter无线网卡,正常访问外网,VMvare下ubuntu虚拟机如何设置访问外网呢?1、共享主机的无线网卡2、VMware -> 编辑 -> 虚拟网络编辑器,将VMnet桥接到TP-LINK Wireless USB Adapter无线网卡3、VMware -> 虚拟机 -> 设置,...

2020-04-21 17:44:20 496

原创 /dev/ttyUSB2 被锁定,l506无法建立ppp连接?

核心板和L506 4G模块USB连接,使用/dev/ttyUSB2 进行ppp 拨号上网,开机启动脚本 rc.local部分如下:ppp.sh 是拨号脚本,sdm是应用程序,如果手动reboot 重启,在启动的过程中有时会出现 /dev/ttyUSB2 is locked by pid 943,且943 进程无法手动kill。这种情况下pppd定时重新拨号,ttyUSB2一直处于被...

2020-04-09 17:26:45 1544

原创 Ubuntu12.04 32位转到Ubuntu12.04.5 (AMD64)遇到的一些问题

最近将vmware workstation升级至12.1.0,不支持32位操作系统,所以不得不重新装12.04.5 64位系统,并随之将arm-linux-gcc等重新安装,中间过程出现了以下几个问题,说明一下网上搜集的解决方式。1、Ubuntu系统的root用户登录之前32位系统有过说明,设置/etc/lightdbm/lightdm.conf,重启后会自动用root用户登录系统,且无需输入密码...

2018-05-10 16:02:12 291

原创 嵌入式Linux中时区的修改

1、使用NTP对时,ntpdate + IP 成功后,通过 date 指令查看系统时间,比服务器时间晚了8小时。系统时间 2018-3-1 08:18:52,服务器时间实际是 16点。2、什么原因会造成时间差8小时呢?考虑到是时区的问题,查询系统当前的时区设置 date -R,看到系统是 +0000 时区,而中国统一采用北京所在的东8时区,由此造成了8小时的时间偏差。3、如何设置Linux系统的时...

2018-03-01 17:02:59 7229 2

原创 ubuntu下搭建NTP服务器

搭建NTP服务器,下端的设备都主动向服务器对时,保持整个系统的时间同步。下端设备采用NTP客户端 ntpd,(注:这个之前已经测试过,NTP服务器在win7系统),现在ubuntu上搭建NTP服务器。ubuntu版本:root@jwx-merit:/etc/init.d# lsb_release -aNo LSB modules are available.Distributor ID: Ubun...

2018-03-01 14:53:06 7009 2

原创 嵌入式系统:通过web界面下载文件

嵌入式Linux,利用boa 构建web服务器,在index.html中使用 超链接 href 来下载web服务器上的文件。对于超链接的路径,href="doc/n1.cfg",要使用boa.conf中的 alias 的路径,否则路径无法正确链接。查看 /etc/boa/boa.conf 找到路径重定义的语句,将其定位到 n1.cfg的实际路径。在系统中,n1.cfg存放在/var

2018-02-06 11:44:07 905 1

转载 PPPD和chat 说明

转自 http://blog.sina.com.cn/s/blog_6d2a0a1a0100wqzb.htmlCAT中文帮助  名称 chat–调制解调器的自动对话脚本 命令格式 chat [options] script 描述 Chat程序定义了一个计算机和调制解调器之间对话交流,其主要目的是用来在本地PPPD和远端PPPD程序之间建立连接。

2018-02-05 14:40:50 2204

原创 嵌入式web&sqlite3

调试sqlite3数据库,通过web查询数据库时,出现了下面两种现象:1.查询6分钟间隔的数据,返回 502 BadGateway2.查询10分钟间隔的数据,最后数据不全(查询1小时数据同样的情况) 3.分析:从502 BadGateway入手,之前调试CGI程序时,出现这个错误基本都是 内存溢出 的问题,查看源代码:int select_flow_info_difftime(sqlite3 *d

2017-09-26 10:55:59 656

原创 sqlite3交叉编译环境配置

SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库,这意味着与其他数据库一样,您不需要在系统中配置。 就像其他数据库,SQLite 引擎不是一个独立的进程,可以按应用程序需求进行静态或动态连接。SQLite 直接访问其存储文件。一个完整的 SQLite 数据库是存储在一个单一的跨平台的磁盘文件,存储在本地,无需连接服务器,在嵌

2017-09-05 21:36:47 1730

原创 嵌入式linux下线程CPU占用跟踪

本文章参考http://blog.csdn.net/shamofeiyu/article/details/21336557,受益匪浅,特收藏,感谢作者。1.linux系统CPU占用率高,首先需要查看那些进程cpu占用率高,这个通过top 命令,可以查看, 可见,我这里是n1l.bin 占用了几乎100% CPU,并且可看到进程id = 15262.进一步分析n1l.bin 里那些线程cpu占有率高

2017-08-25 18:00:38 4812

原创 关于linux3.14.38 MAC地址设置问题

一、测试时发现:我设置设备的MAC 地址为ab:cc:de:08:96:fe,ifconfig eht0 he ether ab:cc:de:08:96:feifconfig: SIOCSIFHWADDR: Cannot assign requested address二、提示无法分配这个地址,这是什么原因,向度娘求助,得到如下解释:IP地址分为三类:广播,组播和单播。广播就是:FF:FF:FF:

2017-08-21 15:17:04 711

转载 Ubuntu12.04 开启自动root登录设置

转载自http://blog.csdn.net/www_w/article/details/16337805ubuntu12.04默认是不允许root登录的,在登录窗口只能看到普通用户和访客登录。以普通身份登陆Ubuntu后我们需要做一些修改, 普通用户登录后,修改系统配置文件需要切换到超级用户模式,在终端窗口里面输入: sudo -s.然后输入普通用户登陆的密码,回车即可进入 root用户权限

2017-08-16 22:50:28 1228 2

原创 boa cgi + web页实现文件的上传

Boa是一种非常小巧的Web服务器,其可执行代码只有大约60KB左右。作为一种单任务Web服务器,Boa只能依次完成用户的请求,而不会fork出新的进程来处理并发连接请求。但Boa支持CGI,能够为CGI程序fork出一个进程来执行。Boa的设计目标是速度和安全。一、Boa在嵌入式Linux的开发中非常广泛,网上也有许多关于Boa移植的文章,这里不再详细说明,只介绍boa.conf中配置时需要注意的

2017-07-13 17:24:46 3039 1

原创 linux应用程序中设置RTC

接触过Linux的朋友们都知道,linux内部的时间分为系统时间和硬件时间。系统时间一般是在系统启动时读一下RTC,然后就依靠定时器维护的时间,这个时间的是掉电不保存的。而 硬件时间通常指的就是RTC,只要RTC有电池供电,这个时间是可以掉电保存的。系统时间在应用程序中,可以用gettimeofday() / setttimeofday() 读取和设置。 硬件时间在终端中可以通过如下命令设置:

2017-05-16 17:19:33 3646 7

转载 Linux内核中用到的宏

1. MODULE_DEVICE_TABLE (usb, skel_table);该宏生成一个名为__mod_pci_device_table的局部变量,该变量指向第二个参数。内核构建时,depmod程序会在所有模块中搜索符号__mod_pci_device_table,把数据(设备列表)从模块中抽出,添加到映射文件/lib/modules/KERNEL_VERSION/modules.pci

2017-05-09 17:24:03 312

原创 socket编程中应用recv判断连接已断开

在网络编程中,经常会检测网络的连接情况,进而进行下面的动作。在Linux的socket编程中,有一种非常方便的方法,来判断对方是否断开了连接,就是使用recv函数。在APUE 中,对 recv的表述如下,#include <sys/socket.h>ssize_t recv(int sockfd, void *buf, size_t nbytes, int flags); 返回值:返回数据

2017-05-03 18:36:14 6915 2

原创 ntpdate + crond 实现周期性对时

ntpdate是NTP协议的客户端,通过 ntpdate ip 命令可以将本机的系统时间与 服务器的时间同步。而crond服务可以定时执行相应的任务,因此ntpdate+crond的组合可以实现周期性的对时动作。ntpdate 首先确认本机系统中有没有安装ntpdate,没有安装的话,去[http://www.ntp.org/downloads.html]下载ntp源代码,进行编译,最后可得到

2017-04-24 16:19:38 1298

原创 Linux定时器之setitimer()

之前试过用select超时+线程的方法实现定时功能,经过测试,运行实际的定时偏差较大。现在对用定时器函数实现的定时器进行测试。 实现代码如下:void Timer_Init(long timevalus)//初始化定时器{ struct itimerval value,ovalue; signal(SIGALRM,Timer_handle);//定时处理函数Timer_handl

2017-04-19 18:25:47 520

原创 linux 应用程序中select定时器

1.在应用程序中使用select实现1ms的定时器:通过select实现毫秒级的延时,代码如下:/* ms Timer */int msSleep(long ms) { struct timeval tv; tv.tv_sec = ms/1000; tv.tv_usec = (ms%1000)*1000; return select(0, NULL, NULL,

2017-04-14 17:04:07 709

转载 shell脚本中一些特殊符号的含义

在shell中常用的特殊符号罗列如下:; ;; . , / \ ‘string’| ! {} ?? *\”string\”* ** ? : ^ ## @ command{} [] [[]] () (()) || && {xx,yy,zz,…}~ ~+ ~- & \<…\> + - %= == !=井号 (comments)这几乎是个满场都有的符号,除了先前已经提过的\”第一行\” !/bin/

2017-04-06 14:19:37 1948

原创 platform设备驱动

platform总线、设备与驱动 在linux2.6以后的设备驱动模型中,总线将设备与驱动绑定,它们的匹配由总线完成。 一个现实的linux设备和驱动通常都需要挂接在一种总线上,对本身依附于PCI,USB,I2C,SPI等的设备而言,这自然不是问题。但在嵌入式系统里,SOC系统中集成的独立外设控制器、挂接在soc内存空间的外设等却不依附于此类总线。为此,linux发明了一种虚拟的总线,成为pl

2017-04-05 11:13:09 432

转载 Linux中_IO,_IOR,_IOW,_IOWR宏的使用

在驱动程序里, ioctl() 函数上传送的变量 cmd 是应用程序用于区别设备驱动程序请求处理内容的值。cmd除了可区别数字外,还包含有助于处理的几种相应信息。 cmd的大小为 32位,共分 4 个域:     bit31~bit30 2位为 “区别读写” 区,作用是区分是读取命令还是写入命令。     bit29~bit15 14位为 "数据大小" 区,表示 ioctl() 中的 ar

2017-03-28 17:04:37 286

原创 uboot-imx-imx_v2015.04_3.14.38_6ul_ga编译记录

从http://git.freescale.com/git/下载uboot-imx-imx_v2015.04_3.14.38_6ul_ga源码,文件不大,压缩文件只有9.2M。这里以编译mx6ul_14x14_evk为例— 1.解压文件tar jxvf uboot-imx-imx_v2015.04_3.14.38_6ul_ga.tar.bz2得到uboot-imx-imx_v2015.04_3.1

2017-03-23 17:50:18 2519

原创 imx6ul的sd卡启动过程分析

上手飞凌OKMX6UL-C开发板,256M NAND Flash,256M DDR3,支持从SD卡启动烧写程序。原来没接触过,通过这两天阅读 IMX6ULRM,有了初步的认识,特进行记录。 1.imx6ul启动方式的选择 imx6ul的启动方式通过内部寄存器Boot Mode[1:0]和电子熔丝位的值或是IO引脚的电平量的组合来决定启动方式的选择。 寄存器Boot Mode[1:0]的值以复位

2017-03-21 18:24:07 8538 2

原创 消息队列

一 、消息队列含义 : 及消息的列表,用户可以从消息队列中添加消息和读取消息,可以随机查询。消息队列是存在于内核中的,由“队列ID”来标识。二、应用 :消息队列的实现包括创建或打开消息队列、添加消息、读取消息和控制消息队列这 4 种操作。创建或打开消息队列 int msgget(key_t key,int msgflg)参数: key:消息队列的键值,多个进程可以通过它访问同一个消息

2017-03-16 13:12:57 262

转载 ubuntu12.04解决gedit中文显示乱码问题(转载)

转自http://blog.csdn.net/wenjs0620/article/details/51646889(1).问题原因:打开部分Windows下的txt文本文件的时候,中文显示为乱码。但是自己用Gedit编写新文件的时候,输入的中文却可以正常显示,保存后再退出也可以正常显示。而且对于Windows下的文本文件,也不是全部含有中文的都显示为乱码。整理下思路,如果真的是中文无法正常显示的问题

2017-03-15 15:06:59 263

原创 信号量线程控制

1.线程定义 线程是进程内独立的一条运行路线,可以称为轻量级进程,与同一进程内的其他线程共享内存空间及资源。因此,线程的上下文切换的开销比创建进程小很多。 一个进程可以有多个线程,由于线程共享进程的内存空间和资源,多线程中的同步是非常重要的问题。 2.线程间的同步与互斥 针对线程共享进程内存空间及资源的问题,POSIX中提供了相应的同步机制,如互斥锁和信号量。这两个同步机制可以互相通过调用对

2017-03-15 09:23:25 1148

原创 linux3.14.38内核编译出错

编译Linux3.14.38 内核过程中出现如下错误:| Kernel: arch/arm/boot/Image is ready | AS arch/arm/boot/compressed/head.o | LZO arch/arm/boot/compressed/piggy.lzo | /bin/sh: 1: lzop: not found make[2]: Warning: File

2017-03-14 16:37:45 687

原创 守护进程

守护进程,即daemon进程,是linux中的后台服务进程。它是一个生存期较长的进程,通常独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件。linux有很多的系统服务,大多数是通过守护进程实现的。如果想让某个进程不因为用户、终端或者其他的变化而受到影响,那么就必须把这个进程变成一个守护进程。守护进程的编写基本遵循以下几个步骤: (1)创建子进程,父进程退出 父进程先与子进程退出

2017-03-01 16:52:52 295

原创 文件IO操作之文件锁fcntl()函数

linux是多用户的操作系统,在实际的应用中不可避免的会出现多个用户(或是多个进程)共同使用、操作一个文件的情况,这时,linux通常采用的方法是给文件上锁,来避免共享的资源产生竞争的状态。文件锁 — 建议性锁:要求每个上锁文件的进程都要检查是否有锁存在,并尊重已有的锁。 —-强制性锁:由内核执行的锁,当一个文件被上锁进行写入的时候,内核将阻止其他任何文件对其 进行读

2017-02-28 16:17:47 633

空空如也

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

TA关注的人

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