
嵌入式软硬件
文章平均质量分 61
嵌入式软硬件
stuyou
嵌入式、微波光子领域
展开
-
Linux和Windows下使用printf的差别
【1.LINUX系统下】一般而言,大家都知道printf是带有行缓冲的函数,printf把打印的消息先输出到行缓冲区,在以下几种情况下:1.程序结束时调用exit(0)/return;2.遇到回车\n,3.调用fflush函数;4.缓冲区满。会自动刷新缓冲区,缓冲区的内容显示到标准输出上。比如在LINUX系统下,执行如下程序: #includ...原创 2018-05-24 21:47:43 · 189 阅读 · 0 评论 -
Glibc辅助运行库 (C RunTime Library)
crt1.o, crti.o, crtbegin.o, crtend.o, crtn.o 等目标文件和daemon.o(由我们自己的C程序文件产生)链接成一个执行文件。前面这5个目标文件的作用分别是启动、初始化、构造、析构和结束,它们通常会被自动链接到应用程序中。例如,应用程序的main()函数就是通过这些文件来调用的。如果不进行标准的链接的话(编译选项-nostdlib),我...原创 2017-06-10 16:08:42 · 262 阅读 · 0 评论 -
LINUX编程下GCC的宏
有些时候我们再编写代码或者阅读开源项目时经常会遇到一些陌生的宏定义,在找遍所有源代码都没发现其在哪里被定义过,这时,这些宏很可能是系统编译器自己定义的。 比如:在OneNet平台(http://open.iot.10086.cn/)提供的EDP协议C语言版的SDK中,common.h头文件中有这样的定义 #if defined(_LIN...原创 2017-05-19 23:38:43 · 258 阅读 · 0 评论 -
嵌入式LINUX驱动程序中的头文件问题
在编写嵌入式LINUX驱动程序时(S3C6410+嵌入式LINUX系统),需要添加很多头文件,这些头文件均位于嵌入式LINUX源码中,因此编译驱动前,应先安装嵌入式LINUX源码,并至少对嵌入式LINUX内核编译一次。这些头文件根据所处的位置不同,可以分为四种类型: #include <linux/miscdevice.h>...原创 2016-12-03 20:10:12 · 204 阅读 · 0 评论 -
fedora9和ubuntu10.04下安装git
UBUNTU10.04安装git 1.下载git源码:地址:http://down1.chinaunix.net/distfiles/git-1.7.8.tar.gz2.切换到root:sudo -i3.安装zlib库:apt-get install zlib1g-dev4.解压git:tar xzvfgit-1.7.8.tar.gz5.切换git...原创 2016-11-28 10:10:20 · 184 阅读 · 0 评论 -
ESP8266透传模式下发送数据长度的问题
ESP8266是一个串口WIFI模块,使用简单的AT指令,即可配置为透传模式。透传模式下,往串口发送的数据会“透明”得转发到网络服务器(一般常用TCP服务器)。编写串口程序,使用ESP8266透传模式发送数据时,发现一个问题,在串口发送数据函数中,如果发送的数据长度比较小(大概100个字节左右),TCP服务器可以正常接收,但是当发送数据太长时(超过100个字节),TCP服务器...原创 2016-11-15 16:09:55 · 2934 阅读 · 0 评论 -
Libmodbus关于从站地址的问题
在嵌入式LINUX开发板上,基于libmodbus第三方库编程实现土壤水分及温度的读取,传感器采用大连祺峰科技有限公司的土壤水分温度传感器(型号:SMTS-II-485)。在程序运行过程中,遇到了一些问题,记录如下:查看土壤水分温度传感器手册,若要读取水分温度,则需要发送如下RTU帧:FE 03 00 00 00 02 D004,这里FE是传感器modbus站地址,这是传...原创 2016-08-31 13:30:12 · 573 阅读 · 0 评论 -
使用libmodbus读传感器流程
【1.项目描述】 手上有一个温湿度传感器,基于modbus RTU协议,采用RS485串口和Tiny6410通信,把采集到的温湿度显示在Tiny6410的界面程序上。这里简要给出使用libmodbus第三方工具读取温湿度的程序流程。关于libmodbus在嵌入式LINUX上的使用方法,参考上一篇博客:http://blog.chinaunix.net/uid-11829...原创 2016-08-27 22:32:10 · 222 阅读 · 0 评论 -
基于QT4.7的嵌入式libmodbus开发环境
modbus协议在工业中应用广泛,libmodbus(http://libmodbus.org/download/)是LINUX平台下的一个第三方modbus工具。手头上有一个支持modbus RTU协议的温湿度传感器,在嵌入式LINUX开发板上编写一个基于QT4.7的界面程序,用来读取并显示传感器的温湿度,选择使用libmodbus来进行modbus RTU协议的解析。1....原创 2016-08-27 16:30:53 · 430 阅读 · 0 评论 -
LINUX下默认搜索头文件及库文件的路径
一、头文件 如果从纯粹的text文件来说,#include的作用就是搜索它后面指示的文件,并把这个文件的内容加到当前的文件中。一般我们编程时,都是包含一些与.h为后缀的头文件,但是它可以包含任何后缀的任何形式的text文件的,而不仅仅是.h为后缀的头文件。 #include有两种形式,例如如下: #include #include "userh...原创 2016-08-27 14:56:39 · 404 阅读 · 0 评论 -
ThinkStation P310在ubuntu14.04(64bit)LTS下安装网卡驱动(Intel I219LM)
联想服务器ThinkStation P310,在安装完ubuntu14.04(64bit)LTS后,不能上网。这是由于网卡驱动没有安装成功,需要自己安装网卡驱动。ThinkStation P310的主板类型是skylake,网卡型号是Intel Ethernet ConnectionI219LM。在Intel官网并没有找到I219LM for Linux的驱动。不过看到一个帖子...原创 2016-07-25 09:03:26 · 707 阅读 · 0 评论 -
virtualbox+WIN7+Fedora9文件夹共享的问题。
主机安装WINDOWS7 64bit,采用virtualbox虚拟机安装Fedora9,设置文件夹共享的时候发生如下问题:1.安装增强工具时,提示如下错误:Building the main GuestAdditions module [失败]解决方法:执行指令yum install kernel-devel然后再安装增强功能...原创 2016-07-01 18:41:55 · 180 阅读 · 0 评论 -
U盘安装UBUNTU出现Input/Output error分析解决
昨天用UltraISO将U盘做成启动盘后,安装Ubuntu,发生[error 5]Input/Output error错误。搜索资料,发现说的千篇一律,都是复制粘贴的,这无所谓,但关键是根本解决不了我们的问题。废话不长,我们直接来说出错的原因:u盘里的文件错误导致。[error 5]Input/Output error这个错误说的没有错,导致文件出错的原因是,下载后的Ubun...原创 2015-10-15 22:41:47 · 1178 阅读 · 1 评论 -
LINUX字符设备驱动程序实例(scull)
【1.系统环境】该驱动程序在UBUNTU10.04LTS编译通过,系统内核为linux-2.6.32-24(可使用uname -r 命令来查看当前内核的版本号)由于安装UBUNTU10.04LTS时,没有安装LINUX内核源码,因此需要在www.kernel.org下载LINUX源码,下载linux-2.6.32.22.tar.bz2(与系统运行的LINUX内核版本尽量保持一...原创 2010-09-27 22:33:40 · 183 阅读 · 0 评论 -
嵌入式linux内核编译
Edukit-III实验箱的开发环境是cygwin,因此想在纯Linux系统下,对内核进行编译。主机环境:虚拟机安装的ubuntu10.04LTS,交叉工具链为arm-linux-gcc2.95.3,安装目录为/usr/local/arm/2.95.3/【1.安装Linux源码】把Linux源码压缩包(linux-2.4.18-rmk7-pxa1-mz5.tar...原创 2010-09-28 16:25:04 · 253 阅读 · 0 评论 -
Edukit-III实验箱s3c2410子板led驱动程序编译运行
开发板:EDUKIT-III实验箱,S3C2410+LINUX2.4.18,实验箱随箱光盘提供的Zimage,nor flash启动。主机:ubnutn10.4LTS,arm-linux-gcc 2.95.3,linux内核为随箱提供的内核源码和补丁文件,内核版本号为2.4.18[1.系统环境配置]参考http://blog.chinaunix.net/u3/1...原创 2010-09-30 15:21:50 · 223 阅读 · 0 评论 -
cramfs文件系统
制作的文件系统不能超过1152Kbyte,因为该文件系统要烧到开发板的NOR FLASH中,烧写区域为从第18扇区到第35扇区,每扇区64K,所以一共用于文件系统的NOR FLASH大小为18*64K=1152K,因此制作的cramfs文件系统不能超过1152K,如果想用尺寸比较大的文件系统,可使用在NAND FLASH启动LINUX,NAND FLASH比NOR FLASH容量大。...原创 2010-10-16 21:02:35 · 116 阅读 · 0 评论 -
基于S3C2410的VIVI移植
主机:UBUNTU10.04LTS,交叉工具链为:arm-linux-gcc 2.95,安装目录:/usr/local/arm/2.95.3/bin目标板:Edukit-III,S3c2410子板问题描述:由于英蓓特公司的Edukit-III实验箱自带的LINUX为2.4版本,鉴于现在LINUX2.6的内核比较流行,因此想在Edukit-III上面移植LINUX2.6.18,...原创 2010-10-23 21:03:15 · 101 阅读 · 0 评论 -
Wind River Workbench
Wind River Workbench1. 嵌入式系统开发所面临的问题 嵌入式软件开发有别于桌面软件系统开发的一个显著的特点,是它一般需要一个交叉编译和调试环境,即编辑和编译软件在主机上进行(如在PC机的 Windows操作系统下),编译好的软件需要下载到目标机上运行(如在一个PPC的目标机上的VxWorks操作系统下),主机和目标机建立起通讯连 接,并...原创 2010-11-23 18:03:53 · 497 阅读 · 0 评论 -
LINUX常用命令(1)
Author: yoyoba(stuyou@126.com)Date: 2011-4-23一直在用LINUX,但是却没有对LINUX命令系统学习过,正好利用这段还算比较清闲的时间,学习一下LINUX常用的命令,是《LINUX命令速查手册》的读书笔记,这本书是Scott Granneman著,成保栋翻译,人民邮电出版社出版,200...原创 2011-05-04 09:52:39 · 167 阅读 · 0 评论 -
LINUX常用命令(2)
Author: yoyoba(stuyou@126.com)Date:2011-4-23一直在用LINUX,但是却没有对LINUX命令系统学习过,正好利用这段还算比较清闲的时间,学习一下LINUX常用的命令,是《LINUX命令速查手册》的读书笔记,这本书是Scott Granneman著,成保栋翻译,人民邮电出版社出版,2009....原创 2011-05-04 09:55:05 · 207 阅读 · 0 评论 -
关于头文件的问题
在LINUX程序设计当中,经常会遇到头文件包含的问题,那么这些头文件到底在哪个路径下?具体的头文件路径依赖于程序性质(应用程序还是和内核相关的程序)和编译器,下面分别叙述。 机器环境如下:UBUNTU10.04LTS,自己另外安装的LINUX内核源码目录为/usr/src/kernel,交叉链接器arm-linux-gcc安装目录为/usr/lcoal/arm/2.95.3/ ...原创 2011-05-06 16:49:08 · 123 阅读 · 0 评论 -
S3C2410子板LED灯点亮程序
主机环境:WindowsXP+EmbestIED(深圳英蓓特公司提供)开发板环境:EdukitIII实验箱+s3c2410子板问题描述:在没有LINUX操作系统的情况下,编写程序点亮实验箱上的LED灯,点亮顺序如下:先把4个LED灯全部熄灭,然后依次点亮4个LED灯,最后把4个LED灯全部点亮,用ARM汇编和C程序两种方式实现【1.硬件原理】 ...原创 2011-05-07 17:52:36 · 1905 阅读 · 0 评论 -
S3C2410存储控制器
主机环境:UBUNTU10.04LTS+arm-linux-gcc 2.95.3开发板环境:EdukitIII实验箱+s3c2410子板问题描述:程序首先烧写到NAND FLASH中,启动CPU时,CPU会通过内部的硬件把NAND FLASH开始的4KB数据复制到成为“Steppingstone”的4KB的内部RAM中(起始地址为0),然后跳到地址0开始执行。本程序先使用汇编...原创 2011-05-08 18:29:30 · 521 阅读 · 0 评论 -
超强的指针
超强的指针 *一辈子都找不到的牛B贴[转]C语言所有复杂的指针声明,都是由各种声明嵌套构成的。如何解读复杂指针声明呢?右左法则是一个既著名又常用的方法。不过,右左法则其实并不是C标准里面的内容,它是从C标准的声明规定中归纳出来的方法。C标准的声明规则,是用来解决如何创建声明的,而右左法则是用来解决如何辩识一个声明的,两者...原创 2011-05-08 21:53:12 · 96 阅读 · 0 评论 -
字节对齐详解
一.什么是字节对齐,为什么要对齐? 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定...原创 2011-05-08 21:54:08 · 139 阅读 · 0 评论 -
bootloader与linux中位置无关代码(PIC)的分析理解
bootloader与linux中位置无关代码(PIC)的分析理解--Figo 2008.11.9首先,需要理解加载域与运行域的概念。加载域是代码存放的地址,运行域是代码运行时的地址。为什么会产生这2个概念?这2个概念的实质意义又是什么呢?在一些场合,一些代码并不在储存这部分代码的地址上执行地址,比如说,放在norflash中的代码可能最终是放在RAM中运行,那么中norflash中...原创 2011-05-11 18:26:56 · 102 阅读 · 0 评论 -
我的VIM配置文件
UBUNTU10.04的VIM配置文件为.vimrc,放在$(HOME)目录下,我的.vimrc内容如下: set nocompatibleset ls=2set tabstop=4set shiftwidth=4set showcmdset hlsearchset numberset autoindentset smar...原创 2011-05-12 13:58:19 · 103 阅读 · 0 评论 -
隐藏位置菜单的最近的文档列表
UBUNTU10.04,打开位置菜单,可以看到一个最近被打开的文件列表,如果想隐藏,可以执行如下命令:rm ~/.recently-used.xbeltouch ~/.recently-used.xbelsudo chattr +i ~/.recently-used.xbel ...原创 2011-05-21 17:03:38 · 104 阅读 · 0 评论 -
S3C2410系统时钟和定时器
主机环境:UBUNTU10.04LTS+arm-linux-gcc 2.95.3开发板环境:EdukitIII实验箱+s3c2410子板问题描述:首先初始化S3C2410系统时钟,然后通过定时器中断来控制LED的点亮、熄灭情况【1.系统时钟硬件原理】EdukitIII实验箱上一共有两个时钟,都是通过外接晶振实现,一个是实时时钟RTC,主要为系统计时使用,其晶振X1...原创 2011-05-26 08:59:42 · 1430 阅读 · 0 评论 -
Firefox常用插件
Firefox已经升级到4.0版本了,下面是我常用的一些插件Video Downloadhelper,可以分析网页视频的下载地址Easy DragToGo,支持超级拖拽Tab Mix Plus,支持双击关闭标签等功能Live Margin,在线娱乐NoSquint 2.1,放大页面和字体。安装NoSquint后,通过View-->Zoom-->Zoom Settings(...原创 2011-05-29 16:55:14 · 135 阅读 · 0 评论 -
xubuntu8.04下tcl8.4包离线安装
实验室的机器配置较低,运行UBUNTU速度有点慢,因此采用wubi安装XUBUNTU8.04,然后安装build-essential(离线安装办法参考上篇博文),编译嵌入式LINUX内核,执行make xconfig时,提示wish命令没有找到,这是由于XUBUNTU8.04没有安装tcl8.4库造成的。实验室的机器没有联网,在不联网的情况下,安装tcl8.4库的方法如下:1.到下面...原创 2011-06-02 10:30:39 · 376 阅读 · 0 评论 -
\n和\r\n的区别
编写LINUX串口程序,串口终端采用Windows超级终端,会遇到换行的问题,到底该采用\n还是\r\n?谭浩强的C程序设计中是这样解释的:\r,回车,将当前位置移动到本行开头\n,换行,将当前位置移到下一行开头计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好...原创 2011-06-06 17:30:25 · 180 阅读 · 0 评论 -
ubuntu升级后删除旧内核
1.查看当前使用内核版本:uname -a2.查看所有内核版本:dpkg --get-selections|grep linux,在列出出来的文件中,带image的就是内核文件3.删除旧内核:sudo apt-get remove linux-image-XXXX-generic,其中XXXX是要删除的内核版本号4.重启:sudo reboot ...原创 2011-06-07 07:37:21 · 151 阅读 · 0 评论 -
UBUNTU历史版本下载地址
http://releases.ubuntu.com/releases/原创 2011-06-13 13:27:02 · 165 阅读 · 0 评论 -
Linus又骂人stupid
最近, 有位用户向 bugzilla.redhat.com 报告他用 Fedora Linux 上网听 MP3 音乐时, 会播放出奇怪的声音. Linux 之父 Linus Torvalds 参与了讨论, 并最终找出原因, 竟然是 glibc 升级了 memcpy() 函数, 导致浏览器的 Abobe Flash Player 插件出现问题.这真是太强大了, 竟然能从上网听音乐追...原创 2011-06-16 17:02:13 · 233 阅读 · 0 评论 -
UBUNTU+VirtualBox+WinXP集成摄像头和USB的使用
Thinkpad E40 0578m68笔记本电脑硬盘安装UBUNTU10.04,虚拟机VirtualBox下安装XP,在虚拟XP上使用集成摄像头和USB的方法如下:1.http://www.virtualbox.org/wiki/Downloads下载VirtualBox 4.0.8 Oracle VM VirtualBox Extension Pack,安装2.virtualbo...原创 2011-06-19 15:12:46 · 132 阅读 · 0 评论 -
ubuntu10.04关闭笔记本触摸板
Thinkpa E40 0578m68笔记本电脑,硬盘安装UBUNTU10.04,打字的时候,如果不小心碰到触摸板,鼠标一下子不知道飞到哪里去了,用起来很不爽,可以用以下方法解决1.xinput --list,查看toucpad的ID Virtual core pointer id=2[master pointer (3)]...原创 2011-06-23 22:24:20 · 180 阅读 · 0 评论 -
ubuntu 10.04更改最大化最小化关闭按钮位置到窗口右边
1.打开配置编辑器。( Alt + F2 ,运行 gconf-editor)2. 在左侧目录树中,找到 /apps/metacity/general/3. 在右侧找到键: button_layout , 原值为:close,minimize,maximize:修改值为 menu:minimize,maximize,close ...原创 2011-06-25 10:05:19 · 103 阅读 · 0 评论 -
修改UBUNTU10.04LTS用户密码
在当前用户登录时,想要修改该用户到密码,执行如下步骤:1.先切换到root,sudo -i2.在root下修改用户密码,passwd user,其中user是用户名,然后连续输入两次新密码即可。 ...原创 2011-07-28 11:24:57 · 239 阅读 · 0 评论