嵌入式软件开发
文章平均质量分 86
雪域迷影
专业:计算机
爱好:服务端和客户端开发,桌面开发,全栈开发
兴趣:象棋、乒乓球、游泳、听音乐。
展开
-
shell脚本执行错误 $‘\r‘:command not found
在linux上执行脚本时出现$’\r’:command not found,然而仔细检查脚本,对应行位置只是一个空行,并没有问题,那么linux为什么会将一个回车的空行报错?原因是这样的:脚本是在window下编辑完成后上传到linux上执行的,win下的换行是回车符+换行符,也就是\r\n,而unix下是换行符\n。linux下不识别\r为回车符,所以导致每行的配置都多了个\r,因此是脚本编码的问题。在linux上执行 dos2unix 脚本名,再次执行脚本,报错消失。如果没有安装dos2unix这个转载 2020-10-15 10:39:39 · 528 阅读 · 0 评论 -
Beyond Linux® From Scratch (System V Edition)
@[TOC](Beyond Linux® From Scratch (System V Edition) - Version 2020-10-13)http://www.linuxfromscratch.org/blfs/view/svn/longindex.htmlhttp://www.linuxfromscratch.org/blfs/view/svn/index.html原创 2020-10-14 17:28:37 · 246 阅读 · 0 评论 -
CentOS7下编译安装libmodbus库
CentOS7下编译安装libmodbus库下载libdmodbus源代码编译安装lidmodbus测试参考资料下载libdmodbus源代码libmodbus官网下载页面如下图所示:可以从如下链接下载libmodbus源代码libmodbus-3.1.6.tar.gzlibmodbus-3.0.8.tar.gz当然也可以直接从github上面克隆源代码到本地git clone https://github.com/stephane/libmodbus.git下载后的源代码目录如下原创 2020-09-20 17:22:35 · 1682 阅读 · 0 评论 -
source insight中文注释乱码问题的解决方案
最近使用source insight查看一些开源代码,显示中文就乱码,据说是因为source insight不支持utf-8编码,默认编码方式为ANSCII码。所以需要将utf-8等非ANSCII码的文件转换成source insight默认支持的ANSCII码格式才能显示中文不乱码。 解决方案如下:一、单个文件转换对于单个文件,好说,只要将非ANSCII码格式的文件转换成ANSC原创 2013-05-29 09:34:58 · 103251 阅读 · 6 评论 -
C语言程序判断计算机的CPU大小端
如何判断一台计算机的CPU是大端还是小字端对齐呢? 那么首先得了解何为大端,何为小端,明确一下概念。 所谓大端模式,是指字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中。 小端格式:与大端存储格式相反,在小端存储格式中,低地址中存放的是字数据的低字节,高地址存放的是字数据的高字节。 那么如何使用C语言程序判断CPU是大端还是小端对齐呢? 有原创 2012-07-22 13:15:03 · 5356 阅读 · 2 评论 -
volatile在嵌入式系统中的用法
今天参加一家公司的嵌入式C语言笔试,其中有道主观题谈到在嵌入式系统中volatile变量的用法。平时学习C语言没怎么用到,只用到过static和extern的变量,很惭愧没答上来。嵌入式C语言笔试经常会出现的题目有: 1、区分指针常量与常量数组 2、char *p = "hello"与char a[]="hello"的区别。 3、大小端问题 4、字节转载 2013-10-31 21:46:25 · 4397 阅读 · 0 评论 -
Ubuntu12.04下使用doxygen生成API文档
前段时间公司里做项目要求遵循doxygen文档规范,并且在Windows XP下安装了Doxygen 1.8.4版本,使用起来能查看头文件是否遵循doxygen规范和一些简单的错误,另外还可以根据C或者C++源代码生成对应的API文档,尤其是生成html格式的话就更方便了。 比如说想查找dbus、glib等源代码的相关API文档,可以使用doxygen工具将下载的开源软件的源代码生成对应原创 2013-06-14 22:52:15 · 2897 阅读 · 0 评论 -
科大讯飞和Tizen-TTS语音合成引擎
最近在做一个文本转语音TTS(Text to Speech)的第三方软件封装,使用的是国内语音技术龙头安徽科大讯飞公司提供的离线引擎AiSound5.0,主要用于汽车导航用途。科大讯飞还提供了AiTalk用于语音识别,AiWrite用于手写识别服务等。另外还有针对6种平台的SDK和开发示例。 其中AiSound5.0只提供TTS接口(即将文本字符串合成PCM格式的音频数据),不提供播音原创 2013-06-23 23:10:16 · 29761 阅读 · 3 评论 -
pkg-config工具的使用
一、 pkg-config简介1、关于pkg-config工具下面这篇博客有个简单的介绍,链接如下:理解 pkg-config 工具2、pkg-config软件官网:http://www.freedesktop.org/wiki/Software/pkg-config/ 二、最近在看glib、dbus、gtk的一些例子程序,在编译程序时经常找不到头文件和库文件路径。并且使用原创 2013-06-06 22:21:55 · 15108 阅读 · 0 评论 -
在Ubuntu终端中使用安装命令Sudo apt-get install xxx时时出现E: 无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用)的错误解决方案
在Ubuntu终端中使用安装命令Sudo apt-get install xxx时,也许会出现如下错误:输入: apt-get install vim出现如下:E: 无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用)E: 无法锁定管理目录(/var/lib/dpkg/),是否有其他进程正占用它?参考了ubuntu社区的一篇原创 2013-03-13 23:25:39 · 22062 阅读 · 2 评论 -
rpm打包学习
最近工作中需要针对freescale的iMX5和iMX6平台做一些arm平台下的系统核心软件包的集成,比如将glib、dbus、pkg-config、libxml2、pixman、gdb、libpng、gcc、gstreamer、ffmpeg、bluez等软件源代码针对arm平台打包成二进制的rpm包以及二进制源代码包.src.rpm。 一、为什么要将源代码打包成rpm格式的二进制包原创 2013-05-17 23:12:50 · 5899 阅读 · 0 评论 -
CentOS6.4下使用默认的文档查看器打开PDF文档乱码的解决方案
最近在CentOS6.4下使用其默认的文档查看器打开PDF文档时出现乱码的方块,有两种方法可以解决。 方法一:修改/etc/fonts/conf.d/49-sansserif.conf文件,如下:<!-- If the font still has no generic name, add sans-serif --> sans-serif原创 2013-05-08 22:38:59 · 5374 阅读 · 2 评论 -
理解堆和栈的区别
堆和栈的区别 一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵转载 2013-06-05 10:28:39 · 1512 阅读 · 0 评论 -
makefile-rpm编译软件,输出依赖软件包的编译顺序
最近在iMX6x开发板下制作Linux根文件系统,前期需要自己整理与平台无关的Core软件包的依赖关系、修改软件包对应的Spec文件、将下载的.tar.gz等源代码包打包成rpm包,然后使用rpmbuild编译打包成rpm包,最后rpm安装。很头痛的一个问题就是整理软件包的依赖关系、确定它们的编译顺序。 可以从http://www.linuxfromscratch.org/blfs/vie原创 2013-04-28 22:58:52 · 3673 阅读 · 2 评论 -
嵌入式C编程小结
最近在看公司嵌入式开发的文档和C语言代码,真佩服那些设计的人员,从需求分析说明书、时序图、概要设计、详细设计、到Code阶段,都做得很细致。而且纯粹是C语言开发,软件设计人员必须对硬件有很深的了解才行,我看了一下里面的Code,足足有几百多个.h和.c文件,各个模块写得很细致。项目都快接近尾声了,我什么都不懂,刚做嵌入式开发,对我这个纯粹软件专业出身的来说还是比较有挑战性的,硬件理解的障碍、文档中原创 2012-12-14 22:06:05 · 1617 阅读 · 0 评论 -
进程与线程的区别
一、操作系统中线程和进程的概念现在的操作系统是多任务操作系统。多线程是实现多任务的一种方式。 进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以启动多个线程。比如在Windows系统中,一个运行的exe就是一个进程。线程是指进程中的一个执行流程,一个进程中可以运行多个线程。比如java.exe进程中可以运行很多线程。线程总是属于某个进程,进原创 2010-09-25 21:41:00 · 998 阅读 · 0 评论 -
嵌入式编程中的基本概念
嵌入式编程中的基本概念主要有:(1)体系结构(2)端序(3)字长(4)边界对齐(字节对齐)(5)处理器单元(6)编程模型(7)指令集(8)堆栈一、体系结构 按照指令和数据是否统一编址,可以将计算机分成冯·诺伊曼体系结构和哈弗结构、(1)冯·诺伊曼体系结构中,程序指令和数据连续存储,也就是指令和数据统一编址,这样程序指令和数据不能同时和原创 2012-09-12 23:42:11 · 2300 阅读 · 0 评论