- 博客(43)
- 资源 (2)
- 收藏
- 关注

原创 通过阿里云实现工业控制器在互联网中的访问
很多时候我们无法访问某个控制节点的原因是那个控制节点没有公网的IP地址,特别是对目前公网IP地址耗尽的现实下。 在互联网中有公司已经开发出了解决这种问题的产品,如花生壳公司的花生棒产品,这个产品有一个功能就是内网穿透。它的大概原理应该如下图所示:Oraybox很像一个“间谍”,我们在互联网中的所有请求都是通过这个“间谍”代理,把请求发给控制节点,把节点在返回给我们。对于它...
2020-12-23 08:45:53
419
原创 如何把openwrt的ipk软件包安装到ubuntu上
把ubuntu系统中的/lib/aarch64-linux-gnu/libc-2.31.so复制到sw-rootfs的安装包里,和执行程序放在一个位置,之后执行swconfgi时,只要在swconfgi坐在的目录去执行程序,自动的就会使用当前路径下的libc.so,而不会去使用根目录下的/lib/aarch64-linux-gnu/libc.so这个ASCII text。uci_2021-10-22-f84f49f0-6_aarch64_cortex-a72.ipk (可选,用于测试)
2024-01-24 12:05:43
2821
原创 使用git-repo管理多个git仓库
每个采用 repo 管理的复杂多仓库项目都需要一个对应的 manifest 仓库,如 AOSP 的 manifest ,此仓库用来存储所有子仓库的配置信息,repo 也是读取此仓库的配置文件来进行管理操作。里面的配置就是 xml 定义的结构,例如aosp default repository一般是default.xml。git-repo下载可在服务器端通过以下任一方式下载。step 4: 在客户端上repo拉取服务器端代码。step 1: 下载repo。Manifest示例。
2023-09-18 15:43:37
2584
原创 GDB+GDBService 嵌入式调式
使用buildroot编译对应的gdb for x86,gdbservice for arm: 确保各自平台和cpu的位数和程序的位数匹配记得设置 host gdb这边要调试的程序的依赖库,如:pakydu@SRVECT:~/works/E3_ok/source/utils/OneDay$ /opt/arm64_tool/bin/aarch64-buildroot-linux-gnu-gdb OneDayGNU gdb (GDB) 8.2.1Copyright (C) 2018 Free Sof
2022-11-27 19:52:07
497
原创 sudoers的用户权限控制
http://manpages.ubuntu.com/manpages/bionic/en/man5/sudoers.5.html
2021-06-17 21:58:25
6618
转载 Debian/ubuntu 显示屏幕校准
ubuntu多显示器单触摸屏校准多显示器单触摸屏屏幕校准0、触摸屏重定向sudo xinput map-to-output 13 DP1 #将触摸屏映射到指定的显示器 其中:13为触摸屏设备id,可通过 xinput命令查看 ILITEK ILITEK-TP id=13 [slave pointer (2)]; DP1为指定的显示设备名,可通过$ xrandr命令查看,见最下面附件。1、安装屏幕校准器$ sudo apt-get install xinput-cali..
2021-06-03 12:51:53
3210
转载 一篇文章完全搞清楚 scoket read/write 返回码、阻塞与非阻塞、异常处理 等让你头疼已久的问题
原文地址:https://www.cnblogs.com/junneyang/p/6126635.html我认为,想要熟练掌握Linux下的TCP/IP网络编程,至少有三个层面的知识需要熟悉:1. TCP/IP协议(如连接的建立和终止、重传和确认、滑动窗口和拥塞控制等等)2. Socket I/O系统调用(重点如read/write),这是TCP/IP协议在应用层表现出来的行为。3. 编写Performant, Scalable的服务器程序。包括多线程、IO Multiplexing、非.
2021-04-30 10:04:21
160
原创 一个char类型引发的死循环问题
最近我们的嵌入式项目上出现了一个应用程序没有机会给watchdog汇报,导致watchdog跳起来重启系统的问题。这个也就是我们常说的上层应用程序异常没法及时喂狗,导致狗发飙了。因为我们的系统业务比较复杂,很难定位到底哪个代码出问题了。初步根据经验和现象,个人认为应该是代码进入了某个死循环了。但是要找到这个代码就比较困难了,因为这个问题只发生在客户现场,而且我们很难使用过多的debug手段。所以第一个问题就是要想办法找到这个死循环点: 用过脚本监控watchdog多久没有收到...
2021-02-22 17:41:36
431
原创 Samba TDB 数据库 在嵌入式中的使用
Samba stores its data in TDB files. TDB stands for "Trivial database"其他相关的数据库的介绍可以参考这个链接:https://www.jianshu.com/p/8bb2c9d8d90c?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation...
2021-01-28 18:07:29
2222
转载 git 基本操作
Git 与 SVN 区别GIT不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。如果你是一个具有使用SVN背景的人,你需要做一定的思想转换,来适应GIT提供的一些概念和特征。Git 与 SVN 区别点: 1、GIT是分布式的,SVN不是:这是GIT和其它非分布式的版本控制系统,例如SVN,CVS等,最核心的区别。 2、GIT把内容按元数据方式存储,而SVN是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似.svn,.cvs等的文件夹里。
2020-12-25 20:12:36
176
原创 NFS 挂载失败的原因
今天在架上NFS时,也碰到了相关的错误:mount.nfs: access denied by server while mounting xxxx从网络上看到的NFS挂载失败的出现此类错误原因大致为:权限问题 防火墙机制问题 共享配置文件问题在NFS service上抓包的数据看,网络应该时通的,可能还是配置的问题。把所有权限都去掉用nobody,或者时共项目改为777的权限。按照网上说的种种解决方案都没有解决我碰到的问题。最后在NFS service的servicelog里面终于看.
2020-12-23 16:00:43
4140
原创 sem_timedwait 和修改系统时间
#include <stdio.h>#include <unistd.h>#include <stdlib.h>#include <string.h>#include <semaphore.h>#include <sys/time.h>#include <string>#include <fstream>//# define CLOCK_REALTIME 0/* Monoto...
2020-12-23 08:32:10
8229
原创 Linux 程序栈空间的大小
在Linux系统中程序的内存空间一般被划分成两个区域: 栈空间和堆空间(其他空间区域本文不做讨论): 在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。 从堆上分配,亦称动态内存分配。程序在运行的时候用malloc或new申请任意多少的内存,程序员自己负责在...
2019-10-15 13:41:50
3525
原创 python 3.x 使用mySQL数据库
我们如果是用python 3.x的ORM方式去连接mySQL,我们一般情况会用如下的格式:dialect+driver://username:passswd@host:port/databas <----->mysql+mysqldb://username:passwd@hostname:port/datdbasename.(postgresql数据库: postgresql...
2019-06-01 11:38:02
300
原创 LXC的网络结构和端口映射
LXC,其名称来自Linux软件容器的缩写,一种操作系统层虚拟化技术,为Linux内核容器功能的一个用户空间接口。它将应用软件系统打包成一个软件容器,内含应用软件本身的代码,以及所需要的操作系统核心和库。我们可以把LXC创建出来的容器理解成一个应用层的虚拟,它和宿主机共用一个kernel层,仅仅是应用层程序和运行环境的隔离。所以可想而知她的性能要优于我们常见的虚拟机形式的应用。Dock...
2018-03-21 14:49:34
5043
2
原创 写代码不能太偷懒 -- 关于c/c++运算符优先级
使用了c编程也有十几个年头的,今天居然因为一个运算符优先级的问题调试程序用了1个多小时。int TransSock(int nReadSock, int nWriteSock){char buf[1500] = {0};int nread = sizeof(buf);if (nread = read(nReadSock, buf,nread) keyp
2018-01-07 15:48:44
443
原创 自动化测试框架FitNesse -- 搭建CsLim
之前看了Bob大叔的《代码整洁之道》,里面有提到他的开源项目FitNesse,一个自动化测试的框架。可以进行单元测试、集成测试和系统测试等。对于一个开发人员来说,这个东西还是很强大的,因为你是要有编程的经验和能力才能挖掘出更大的宝藏。 下图是FitNesse的模块框架图,我们只要理解了SLIM Runners的功能,就可以知道各种Slim的的意义了。缺省的情况下Java就相当于是Slim。
2017-06-06 08:19:33
1290
原创 how to port 2.6.x driver to 4.x --关于pinctl 和GPIO
在2.6.x的代码里面对于PIN脚复用都是在对应的芯片的broad code里面进行配置的,直接调用相关的特有API去设置。如我使用的AT91 MSA9260里面的at91_set_GPIO_periph()用于设置一个PIN为GPIO的模式,at91_set_A_periph() 用于设置一个PIN为A mode。而且每家chip厂商提供的风格和形式都不相同。在3.x之后的代码里面kernel引...
2017-04-25 12:46:05
719
原创 how to port 2.6.x driver to 4.x --- DTS
What is DTS? DTS is "DeviceTree Source". 它是用于描述设备信息以及设备于总线之间的层级关系,DTS可用于描述绝大多数板级设备的细节,包括CPU、内存、中断、总线以及外设等,与DT相关的Object有dts、dtsi、dtc、dtb、dt.img。它是Ascii文本,一般一个dts文件对应一个Machine,ARM架构下dts文件存放于arch/ar
2017-04-24 14:54:01
366
转载 ubuntu 如何使用HP的打印机
一般情况,ubuntu都会自带惠普的打印机的通用驱动,如果系统识别出了打印机,但是打印总是失败,那就应该是权限的问题。这个需要通过hp-plug来安装相应的plug相关信息可参考http://hplipopensource.com/node/309http://www.linuxquestions.org/questions/linux-newbie-8/hp-propriet
2016-11-25 21:24:08
3467
转载 http://www.cnblogs.com/liyiwen/archive/2012/12/02/2798876.html
http://www.cnblogs.com/liyiwen/archive/2012/12/02/2798876.html
2016-04-12 21:48:31
1219
原创 创建子进程的目的
一般情况我们创建自己就两个目的:1.为了让一个程序同时走不通的分支。如父进程做A事情/流程,子进程做B事情/流程。2.执行新程序,子进程创建后,在退出前调用exec。这个类似父进程直接调用system.对于第一种的应用在网络服务程序里面比较多。今天我举另外一个例子:通过网页重启一个路由器,网页程序如何实现?答案就是第一种应用了。大家可以想想如何做,为什么?哈哈��
2015-04-08 11:24:53
3340
转载 好的软件人员一生必看的六十本书
入门类: C++ Primer, 3rd Edition Thinking in C++, 2nd Edition C++ 大学教程(这本书我没看过,但不少初学者说不错,留此存目) The C++ Standard Library: A Tutorial and Reference 进阶类: The C++ Programming Language, Special Editio...
2014-08-08 09:51:40
2475
原创 QQ和360的战争 ---我是最终的受害者
<br /> 由于您的电脑中有360,所以我们QQ软件没法正常工作,我QQ自动退出。<br />看到这样的恶意的竞争方式,我真的不知道说什么好了,我只能默默接受的卸载360吗?可是我不想花钱买其他杀毒软件呀。那你QQ给个好的免费的杀毒软件给你的用户呀。<br /> 我在想,你QQ能发行我的电脑上有360运行,那我电脑上的其他东西你是不是也了如指掌呀?请问我的个人资料和我电脑上的资料是不是也被你非法窃取了?????<br />我也不知道QQ会不会用类似的方法来惩罚我,把我的QQ给封号了。我
2010-11-03 21:45:00
719
原创 如何避免僵死进程。
最近在开发Linux的程序是常常遇到僵死的进程,可是不知道怎么回事,也不知道原因。所谓僵死进程就是没有父进程的子进程。问问很有经验的同事,也就知道怎么回事了。 解决的办法有二:方法一:fork()两次,让子进程exit,孙子进程变为init的子进程。应为init在一个Linux系统中绝对存在。static int start_deamon(void) {...
2009-06-03 21:51:00
1360
1
原创 用NFS快速开发嵌入式应用程序
几个月来一直在用linux开发应用程序,可是有时候就是改了一行代码也要build好久,还要dload到开发板子上去,这一来一往有时几分钟。该代码也就几十秒,可是测试就要花几分钟,真是太没有效率了!!! 后来想了个只dload刚改的bin到开发板,可还是要花费dload的时间呀。 再后来,看到有个同事用NFS开发速度特别快呀。现在就吧开发方式总结一下:1。参考鸟哥的nfs:
2009-05-17 03:07:00
928
转载 FC 的 yum...
Loading "installonlyn" pluginExisting lock /var/run/yum.pid: another copy is running.如果出现上述错误,直接输入下列命令再运行就好了 可以直接输入 [root@localhost ~]# rm -f /var/run/yum.pid[root@localhost ~]# /etc/init.d/yu
2009-04-15 22:55:00
771
转载 打开的窗口在任务栏上不显示,任务栏不显示正在运行的任务?
打开的窗口在任务栏上不显示,任务栏不显示正在运行的任务?阅读(9) 评论(0) 发表时间:2008年01月02日 11:07本文地址:<a style="cursor: pointer;" onclick="function onclick(){copyBlogURL();return false;}" href="javascript:;">http://qzone.qq.c
2009-03-01 19:26:00
7828
原创 在ubuntu下看电视
我用的是gsopcast和 sp-sc-auth开看电视的具体参考下为你地址http://blog.chinaunix.net/u1/38994/showart.php?id=1009705软件装好好之后,最关键的是要设置对要设置好1。player:mplayer -ontop -geometry 100%:100% //我用的是smplay,所以我就设为:smplayer就好了。2ch
2008-12-31 01:53:00
1780
转载 ubuntu下打开rar文件
come from: URL:http://www.xker.org/doc/2007/341900914.shtml1 、用ubuntu自带的新立得软件包安装ark软件 sudo apt-get install ark 2 安装完ark,会在菜单的附件中找到,你会发现ark其实已经设计成为支持rar,因为在新建打开等操作中都可以选择rar格式,不过只是写了出来,不是真正的支持。接下
2008-12-29 23:46:00
1605
原创 ubuntu的软件源
昨天终于把ubuntu 8.10从硬盘安装上了,哈哈。接下来就是安装各种软件了。对于ubuntu这样的linux来说,你自要设置好你的软件源,接下来只要:sudo apt-get install softwarename 就ok了。软件源指的是通过一定的方式组织,集中放置软件包的地方。很多的应用软件都可以在软件源当中找到。软件源可以是网络服务器,是光盘,甚至是硬盘上的一个目录。作为 de
2008-12-29 14:24:00
1427
转载 Linux 研发环境工具 下载网址大全
//// //##本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/48325/showart_433529.html Linux 研发环境工具 下载网址大全 来源: ChinaUnix博客 作者: ChinaUnix博客 发布时间:2007-01-02 00:04:00 软件集成研发环境(代码编辑、浏览、编译、
2008-12-27 19:18:00
4117
原创 如何从wondows到Linux
人类有个先入为主的习惯,很多是都证明了这一点。当然了我们使用电脑也不例外了。 从初中开始接住电脑就看到的是windows95,到了大学才看到用同学在玩Linux,当时就的那东西真的很新奇。后来自己也在自己的电脑上装了个Red Hat 9.0可是没有一星期酒吧它给格了,应为用很多在window习惯用的软件在Linux上找不到(后来才知道是自己他孤陋寡闻了)。这就是应为我刚开始接住
2008-12-27 18:52:00
3471
原创 JavaScrip 初学笔记
1.JavaScrip 通常出现在标签及标签间。example: blah blah blah alert("better, stronger, faster");// end the hiding comment -->2.当首次用一变量时,应以“var”申明.尽管以var 作为变量申明严格说并不必要,但这是一个好习惯。document.w
2008-11-16 23:32:00
1849
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人