【技术分享】C8051F330 Flash访问单元
头文件自己搞吧,不贴了,写Flash时候记得先要擦除。代码如下/*02 ================================================================================03 File Name : Flash.c04 Description : C8051F330 Flash...
【技术分享】arm-linux一移植必杀技
1.uboot传递给linux内核的nfs启动命令行:setenv bootargs mem=64M console=ttyS0,57600 root=/dev/nfs rw nfsroot=192.168.1.6:/home/linucos/newmsg/nfsroot nfsaddrs=192.168.1.8:192.168.1.6:192.168.1.1:255.255....
【技术分享】初学linux移植,记下一些基本命令
linux 下面很多都需要root 权限,因此我们最好在一开始就sudo su 使用root 登陆1、关机 shutdown -f now 但是需要root 权限2、很弱智的,也是最常用的几个ifconfig 查看IP,mkdir 创建文件夹 rm -rf /XXX 删除有文件的目录...
【技术分享】Linux从零到高手的进阶心得
进阶心得之一:积沙成海。还记得刚上大学那会儿学C++编程,学了很久还是云里雾里,每次抱起书本都觉得很多地方因为“没有基础”而不能理解,所以怨天尤人,责怪学校没有按照正常的认知顺序来教学。由此排斥学习C++,也...
嵌入式软件编程的可视化与简单化
代码编制中,一部分问题是程序员自身造成的。比如公司办公室的窗户,晚上下班后常有人忘了关。解决措施一是多加强培训,二是罚款,但人们仍然是容易忘。行政部门在办公室门口的位置,长期摆放一块指示牌,或是活动的,或是贴在门把...
嵌入式的界面处理机制的模板
一、嵌入式的菜单模板之数据结构1:菜单的组织形式第一步就是有个好的结构体。//定义菜单类型typedefenum{//0,1,2,...=parent&title,UISTR_SPACE-topmenuUIMENU_POPUP=-1,/*有下级菜单*/UIMENU_HASVALUE=-2,//此菜单有...
嵌入式系统中守护进程的编写及调试
守护进程编写的主要步骤如下:1.屏蔽一些有关控制终端操作的信号。防止在守护进程没有正常运转起来时,控制终端受到干扰退出或挂起。signal(SIGTTOU,SIG_IGN);signal(SIGTTIN,SIG_IGN);signal(SIGTSTP,SIG_IGN);signal(SI...
嵌入式中fork、exit和exec系统调用编写多进程程序
系统调用的程序在嵌入式系统开发中非常重要,编写相关程序加深对系统进程及其控制的了理解。基本原理和方法:fork后父子进程会同步运行,但父子进程的返回顺序是不确定的。设两个变量global和test来检测父子进程共享资源的...
浅谈Linux在企业服务器中的应用
1、基本命令1.1文件操作(1)新建:touch文件名(例:在tmp目录下建立名字为d的文件,命令:touch/tmp/d).(2)剪切:my旧文件名新文件名(例:将tmp下的文件d剪切到root目录下重命名为e,命令:my/tmp/d/root/e)o(3)复制粘贴:cp-rf文件来源复制目的...
C语言编程改良程序的11技巧
让我们看一些基本的编程技巧:尽量保持方法简短永远永远不要把同一个变量用于多个不同的目的使用自描述的变量名和方法名尽可能的把变量定义在靠近使用它的地方拒绝神秘数字友好的对待你的语言不要逆常规而行警惕过早优...
详述Windows2003SP2入门IDS系统构建过程
预备知识IDS:Intrusion DetectionSystem(入侵检测系统),通过收集网络系统信息来进行入侵检测分析的软件与硬件的智能组合。对IDS进行标准化工作的两个组织:作为国际互联网标准的制定者IETF的Intrusion Detection workingGr...
新手学堂WindowsServer2008开关机技巧
取消登录时要按Ctrl+Alt+Delete组合键登录的方法:点桌面任务栏的“开始-->运行”在弹出的窗口中输入gpedit.msc 。输入gpedit.msc后,点击确定即打开了组策略编辑器。在组策略编辑器的左框内依次序展开(点前面...
初学Linux上手技巧
初用Linux的用户可能有些处处不方便的感觉可是等使用一段时间并掌握了一些技巧后就会感到越来越顺手了以下就是笔者收集整理的一些Linux的使用者自初学以来积累的一些经验与技巧相信对大家会有所帮助的使用虚拟控制台...
Linux中软件安装及技巧
很多Linux初学者都有这样的烦恼好不容易才学会在计算机中安装好Linux配置好硬件并能顺利的进入GUI图形用户界面可是对于如何在Linux平台中安装软件对很多新手来说都是一件十分困难的事情Linux平台中的Linux的软件的格...
Linux高手是怎样“练”成的
什么是Linux?Linux(发音为LIH-nuks)是一种免费发布的开放源代码操作系统。也就是说,每个人都可以获得Linux的源代码,但这个操作系统有些打包的发行版需要付费。Linux几乎可以在所有已知的处理器上运行,并且能做各种应用&...
基于系统芯片ZSU32的SoC芯片设计
本文针对系统芯片ZSU32,以DesignCompiler为综合工具,探索了对SoC芯片进行综合的设计流程和方法,特别对综合过程的时序约束进行了详细讨论,提出了有效的综合约束设置方案。1时序约束原理同步电路是大多数集成电路系统的主...
查找嵌入式C语言程序/软件中的缺陷的多种技术
基于模式的静态代码分析、运行时内存监测、单元测试以及数据流分析等软件验证技术是查找嵌入式C语言程序/软件缺陷行之有效的方法。上述技术中的每一种都能查找出某一类特定的错误。即便如此,如果用户仅采用上述技术中...
用VHDL语言对FPGA 和CPLD器件进行开发时应注意的事项
用VHDL 语言设计电路是利用硬件描述的方法,将系统功能通过目标器件表现出来,而目标器件的资源占用率是设计成功与否的关键。虽然HDL 设计语言与设计平台与具体硬件无关,设计者能最大程度地将自己的才智和创造力集中在系...
Kinetis芯片Reset管脚出现方波的原因及解决办法
先说说为什么会出现这种情况,首先与大多数MCU一样Kinetis的Reset脚也是低电平有效,且正常运行时是上拉输入状态(对外显性即高电平),但是有一点不同的是Kinetis的复位管脚在MCU复位状态时会对外输出一个低电平(有一个输出状...
从嵌入式系统到嵌入式操作系统
嵌入式系统是以嵌入式计算机为技术核心,面向用户、面向产品、面向应用,软硬件可裁减的;适用于对功能、可靠性、成本、体积、功耗等综合性能有严格要求的专用计算机系统。嵌入式系统应具有的特点是:高可靠性;在恶劣的环境或...
计算机总线技术基础问题
微机中总线一般有内部总线、系统总线和外部总线。内部总线是微机内部各外围芯片与处理器之间的总线,用于芯片一级的互连;而系统总线是微机中各插件板与系统板之间的总线,用于插件板一级的互连;外部总线则是微机和外部设...
C++计时的几种方法说明及例程
1.使用clock()函数头文件:clock()函数,返回“自程序启动到调用该函数,CPU时钟的计时单元数(clocktick)”每过1ms,计数值+1精度:1毫秒#include#includeintmain(){clock_tstart,end;//typedeflongclock_tstart=clock...
嵌入式操作系统的解析
嵌入式操作系统都具有一定的实时性,易于裁剪和伸缩,可以适合于从ARM7到Xscale各种ARMCPU和各种档次的应用,嵌入式操作系统可以使用广泛流行的ARM开发工具,如ARM公司的SDT/ADS和RealView等,也可以使用开发软件,如GCC/GDB、KD...
关于Linux,你所不了解的六个事实!
1) Linux到底有多少种版本?显然,很多。据网站DistroWatch.com上的清单,至少有350个版本。该网站倾向于传播范围较窄的版本,本月该网站的读者把Ubuntu评为最受欢迎的版本。Ubuntu最近获得了Sun Microsystems首席执行官Jona...
嵌入式软件架构设计中的分级
嵌入式软件在需求规划、架构设计、变量定义、数据存储、显示界面设计、报警设计时,都可能会有多个同类的内容在系统运行时间的先后、存储空间的占用、显示区域的布局等方面相冲突。一旦冲突起来,比如两个变量的数值显示...
区别Keil、uVision、RealView、MDK、Keil C51
我们要区别的概念:KEIL uVision,KEIL MDK,KEIL For ARM,RealView MDK,KEIL C51,KEIL C166,KEIL C251从接触MCS-51单片机开始,我们就知道有一个叫KEIL的软件。在开发单片机时,使用的是C语言或者汇编语言,我们知道,这两种语言都不...
使keilMDK和C51不冲突
如何让Keil MDK兼容Keil C51?原来用51单片机,使用的是Keil C51 uVision V4.02;最近搞STM32,装了keilMDK uVision V4.23。原来我是先装keilC51,后装keilMDK的,装在不同的目录里,装完之后不管是51工程还是stm32工程默认都会用k...
嵌入式软件设计基础之 --位域--
在编写嵌入式代码时。常用结构体类型,内存分配时需要注意字节对齐、编译器等,最近发现,结构体中还有一种用法叫做--位域--。位域:结构体中的位域允许程序员使用隐藏了必要位操作的更清晰的语法来访问数据。典型格式...
为什么ping时间会越来越长
一个网友遇到的问题,ping设备的时候,时间会越来越长,从几毫秒到几百毫秒,有时候甚至无ping响应。这里的原因在于,他使用了中断的方式接收网卡数据包,在每次中断中只读取网卡的一个数据包。如果一次中断发生,而网卡内事实上可...
基于LabVIEW的通信仿真
美国NI公司推出的Labview语言是一种优秀的面向对象的图形化编程语言,使用图标代替文本代码创建应用程序,拥有大量与其他应用程序通信的VI库。LabVIEW作为目前国际上应用最广的数据采集和控制开发环境之一,在测试与测量、...
开发嵌入式系统的7个技巧
尽管许多嵌入式工程师充满了希望和梦想,但高可靠性的代码不是一蹴而就的。它是一个艰苦的过程,需要开发人员维护和管理系统的每个比特和字节。当一个应用程序被确认为“成功”的那一刻,通常会有一种如释重负的...
keil MDK常见错误、警告的解决方法
工作后从单片机转成ARM,刚开始用ADS1.2编译器,用了一段时间,因为我接手的项目的老程序正是用ADS编译的,部门也大都在用.在学单片机的时候用的是keil c51编译器,ads和这个编译器在易用性上真是无法比较.后来渐渐知道ke...
嵌入式操作系统Linux下vim编辑器的使用小技巧
Vim是Linux操作系统中最常用一个编辑器。如配置文件的更改、环境变量的设置等等基本上都是在这个vim编辑器上完成。所以这是Linux系统管理员最常用的一个工具。不过这个工具虽然小,但是其有很多的实用小技巧。有些系统...
51单片机精确延时程序的编写
51单片机精确延时程序(晶振12MHz,一个机器周期1us.)几个精确延时程序:在精确延时的计算当中,最容易让人忽略的是计算循环外的那部分延时,在对时间要求不高的场合,这部分对程序不会造成影响.一. 500ms延时子程序程序:.(...
简析单片机keil常见问题
一、混合编程1、模块内接口:使用如下标志符:#pragmaasm汇编语句#pragmaendasm注意:如果在c51程序中使用了汇编语言,注意在keil编译器中需要激活Properties中的“GenerateAssemblerSRCFile”和“AssemblerS...
如何在Linux中访问硬盘DOS分区、软盘和光盘
Linux的文件系统当你以root(系统管理员)身份登录进入Linux系统后在系统的#提示符下先用cd/命令退回到系统的根目录用ls-l命令可看到Linux系统的目录结构在Linux系统中用户所见到的文件结构是树状结构与DOS一样也是根...
Java中停止线程执行的方法
一、暂停或停止线程的理论 在Java编程中,要暂停或停止当前正在运行的线程,有几种方法。对于把线程转入睡眠Sleep状态,使用Thread.sleep()是最正确的方式。或许有人会问,为什么不使用等待wait()或通知notify()?要知道,使用...
在KEIL中实现C语言嵌套的汇编语言
操作步骤第一步:在KEIL 中新建工程及文件并复制以下程序并保存为C 文件:/*功能:C 语言里嵌套汇编语言,起到抛砖引玉的作用*/#includedelay(){int i,j;for(i=0;i<1000;i++)for(j=0;j<120;j++); //12M 晶振下延时1MS}main()...
一个字符串,将数字字符和其他字符分开存放的程序
程序1:#include #include using namespace std;int main(){char *ch=new char[];//定义一个动态char数组int *num=new int[];//定义一个动态int数组coutch;//输入字符串cout<<"这串字符串里数字有:"<<endl;...
为什么要对电路进行仿真?
设计流程中的仿真与原型开发为了确保电路设计的成功,消除代价昂贵并且存在潜在危险的设计缺陷,就必须在设计流程的每个阶段进行周密的计划与评价。尽管没有能够替代提供测量并评估最终行为的实际原型的方法,电路仿真给出...
main函数之前与之后
一种解释实际上,在可执行文件被加载之后,控制权立即交给由编译器插入的Start函数,它将对后面这些全局变量进行准备: _osver 操作系统的构件编号 _winmajor操作系统的主版本号 _winminor操作系统的次版本号 _winver操作...
IAR编译 Error[Li006]: duplicate definitions for
今天在进行代码测试编译时出现了重复定义的错误,提示在对象文件led.o和usart.o中出现了上述变量重复定义的问题,可仔细检查了此变量并无多次定义,茫然无头绪,随对代码进行进一步的核查,发现原来是管脚出现了重复定义的问题...
keil一些相关错误、警告的解决方法
1. Warning 280:’i’:unreferenced local variable说明局部变量i 在函数中未作任何的存取操作。解决方法消除函数中i 变量的宣告。2. Warning 206:’Music3’:missing function-prototype说明Musi...
【IAR警告】Warning[Pa082]
经典嵌入式笔试题关键字volatile有什么含意?并给出三个不同的例子。一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次...
Keil软件的串口通讯调试
可以利用KEIL软件模拟单片机的串口,虚拟串口驱动程序(Virtual Serial Ports Driver,VSPD)能够创建数对“虚拟”的串行端口,每对串口虚拟互联,在一般程序看来,这些“虚拟”的串行端口跟实体的串行端口...
嵌套结构体时应注意的问题
结构体的自引用中,如下这种情况是非法的struct s_ref {int a;struct s_ref b;char c;};因为结构体内部又包含自身结构体类型b,这个长度不能确定,只能向下再查找,又包含自身结构体类型b,又再向下查找,如此循环,类似于永无出口...
结构体大小问题
结构体(struct)的sizeof值,并不是简单的将其中各元素所占字节相加,而是要考虑到存储空间的字节对齐问题。先看下面定义的两个结构体.struct{char a;short b;char c;}S1;struct{char a;char b;short c;}S2;分别用程序测...
Java异常小结
我们来看看c语言中的出错判断,这种出错判断完全是程序员自己编写的,一般我们用”return-1”做最后判断的语句,然后可以判断函数的返回值就可以知道函数有没有出错,但是这样有没有问题?就比如说在一个程序体内有...
Linux 系统命令及其使用详解(第一部分)
计算机高手必背之Linux系统命令及其使用详解(大全)名称:cat使用权限:所有使用者使用方式:cat[-AbeEnstTuv][--help][--version]fileName说明:把档案串连接后传到基本输出(萤幕或加>fileName到另一个档案)参数:-n或--number由...
Linux 系统命令及其使用详解(第二部分)
名称:touch使用权限:所有使用者使用方式:touch[-acfm][-rreference-file][--file=reference-file][-tMMDDhhmm[[CC]YY][.ss]][-dtime][--date=time][--time={atime,access,use,mtime,modify}][--no-create][--help][--ve...
调试TMS320C2000系列的常见问题?
1)单步可以运行,连续运行时总回0地址:Watchdog没有关,连续运行复位DSP回到0地址。2)OUT文件不能load到片内flash中:Flash不是RAM,不能用简单的写指令写入,需要专门的程序写入。CCS和CSourceDebugger中的load命令,不能对flash...
Linux 系统命令及其使用详解(第三部分)
名称:chsh使用权限:所有使用者用法:shell>>chsh说明:更改使用者shell设定范例:shell>>chshChangingfihangingshellforuser1Password:[del]Newshell[/bin/tcsh]:###[是目前使用的shell][del]shell>>chsh-l###展示/etc/shell...
Linux 系统命令及其使用详解(第四部分)
名称:renice使用权限:所有使用者使用方式:renicepriority[[-p]pid...][[-g]pgrp...][[-u]user...]说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)说明:-ppid重新指定行程的id为pid的行程...
确认大端模式或小端模式(最直接有效的方法)
预备课:深刻理解大端模式与小端模式的概念。大端模式(Big_endian):字数据的高字节存储在低地址中,而字数据的低字节存放在高地址中。小端模式(Little_endian):字数据的高字节存储在高地址中,而字数据的低字节存放在低地址...
IAR软件应用中的错误提示(1)
1Q:Error[e16]: Segment XDATA_Z (size: 0x19a1 align: 0) is too long for segment definition. At least 0xe4c more bytesneeded. The problem occurred while processing the segment placement command"-Z(XDATA...
IAR的整理出错整理(2)
1Fatal Error[e72]: Segment BANK_RELAYS must be defined in a segment definition option (-Z, -b or -P)使用无线龙的串口互发,发现上述错误,原因是版本太高,具体原因不清,下载一下7.20H就可以了2烧写程序时无法跳入断...
全局变量的声明和定义的问题
全局变量:不管是经典的还是普通的,就是一条规矩:不要在头文件里定义变量,局部变量也不要。如:delay.h中定义的int i;如果delay.c中包含的delay.h,在其他的文件中也包含的delay.h,那么就出现重复定义,解决方法在delay.h中将 e...
ucos堆栈中字节对齐的问题
关于堆栈对齐的问题程序中出现了一个奇怪的问题char g_cpTask2Buffer[200];void Task2(void *arg){...sprintf(g_cpTask2Buffer,"%.3f", ADCInfoArray[0].m_fVolt);...}ADCInfoArray[0].m_fVolt是一个float值。在执...
从NOR向NAND转变的注意事项
应该做的事首先要考虑当增加NAND支持后,总的存储器架构将会发生怎样的改变,尤其要注意可能需要增加PSRAM或SDRAM以执行代码。在某些情况下,总的存储器系统成本(包括执行代码所需的额外RAM)可能根本没有降低,这时就应该考...
IAR中的位操作之一:位清除
例:_DEVICE_RCC.CR &= ~(BIT(1)); // 清除CR的第(1+1)位,相当於 _DEVICE_RCC.CR &= 0xFFFF FFFD(以下内容的编译为IAR5.20) \ 00000000 0748 LDR.N R0,??main_0 ;; 0x40021000 \ 00000002 0168 LDR R1,[R...
嵌入式c语言调试开关
在调试程序时,经常会用到assert和printf之类的函数,我最近做的这个工程里就有几百个assert,在你自认为程序已经没有bug的时候,就要除去这些调试代码,应为系统在正常运行时这些用于调试的信息是无用的,而且会占用时间和空间...
串口调试总结
调试过程中对接口协议有了一定了解,对芯片max232了解还是比较深入的最流行的串口程序,用了特权同学程序,直接用来跑,果断不行啊,然后仔细看了遍程序,发现一些问题,程序计数中算了校验位,却没有对校验位进行传输,上位机上自然还...
keil 使用技巧
1.编译警告信息提示 :**********: warning: #1295-D: Deprecated declaration ********************** - give arg types意思是:弃用的声明,改方法:经检查是函数的参数为空时,没有加void,这是一种老式用法,所以编译器给出了...
处理hardfault问题
1)对于出现这样的问题,一般是内存被破坏了,而对于内存破坏的原因一般是数组越界或者是内存相关的库函数使用不当所致。我的程序中会用一些内存相关的函数,如memcpy(),sprint(),mallo(),free().首先说明memcpy()函数,它是把...
FLASH程序存储器常见的编程方法
这里我们列举了三种方法:(1)传统的并行编程方法;(2)通过串行口进行在线编程ISP(In System Programmability) 对器件或电路甚至整个系统进行现场升级或功能重构;(3)在运行中,应用程序控制下的应用在线编程IAP (In Applocat...
Linux下如何使用USB转串口线
1.检查是否存在设备/dev/ttyUSB0,如果没有就建立一个:mknod/dev/ttyUSB0c1880以下推理未测试:如果有多个USB口,可以类推,建立/dev/ttyUSB[1-n],注意从设备号要累加,如:mknod /dev/ttyUSB[1-n]c188[1-n]2.启动minicom,设...
Linux常用命令之:磁盘及文件系统管理命令
管理文件系统其实是相当复杂的工作,本文将只介绍日常维护需要的一些管理命令,主要内容有:挂装和卸载硬盘分区等.1.dfdf命令可以显示目前磁盘剩余的磁盘空间,常用的参数为-k,如:df–k该语句将显示各分区的磁盘空间...
PLC常用程序设计语言简介
在可编程控制器中有多种程序设计语言,它们是梯形图语言、布尔助记符语言、功能表图语言、功能模块图语言及结构化语句描述语言等。梯形图语言和布尔助记符语言是基本程序设计语言,它通常由一系列指令组成,用这些指令可...
makefile 中赋值符号的区别
我们来做个简单的实验新建一个Makefile,内容为:ifdef DEFINE_VRE VRE = “Hello World!”elseendififeq ($(OPT),define) VRE ?= “Hello World! First!”endififeq ($(OPT),add) VRE += “Ke...
grep命令搜索字符串之技巧
source insight有时候会莫名其妙的无法搜索字符串,可能是工程文件遭到破坏,必须重新创建工程才可以。其实我们也可以用linux下文本搜索工具grep,作者在工作当中使用起来感觉非常方便快捷。格式:grep -rn "待搜索的字符串...
gdbserver远程调试嵌入式linux应用程序方法
1、首先建立nfs文件系统,让PC机ubuntu上的文件系统这里假设路径为:/home/xxx/work/可以挂载到板子上去。方法可以见本博的另一篇文章。其中IP环境是PC机win7的IP为192.168.0.11(这个不重要,只要保证在同一个网段即可)。虚...
android开发心得
1.当出现多个intent需要选择是调用的选择框实际上是frameworks/base/core/java/com/android/internal/app/ResolverActivity.java2.当应用设为laucher时开机有时会卡死,原因是作为laucher的应用没有加上...
嵌入式LINUX的编程操作步骤
做好了NFS环境,步聚是:安装(现在好多linux都默认安装的),确定它能正常工作-->创建共享目录(mkdir/mnt/nfs)-->编辑共享配置文件(/etc/export,打开后,在最后一处加上/home192.168.1.100(ro,sync)-->格式:共享目录能挂载共享目录...
Linux无线驱动程序的开发测试
1 无线协议概述 WiFi技术经过十几年的快速发展,所支持的无线传输速率已从最初的1 Mb/s提升到1 Gb/s以上。WiFi技术主要涉及到网络协议簇的最低两层:物理层和媒体接入层,物理层采用纯硬件的实现形式,而媒体接入层则采用...
Linux Bash严重漏洞紧急修复方案
【漏洞描述】该漏洞源于你调用的bash shell之前创建的特殊的环境变量,这些变量可以包含代码,同时会被bash执行。【漏洞检测方法】漏洞检测命令:$ env x='() { :;}; echo vulnerable' bash -c "echo this is a test"v...
Linux开发环境的建立步骤
1. GNUgcc交叉编译器运行于Linux操作系统下的自由软件GNUgcc编译器,不仅可以编译Linux操作系统下运行的应用程序、编译Linux本身,还可以作交叉编译,编译运行于其它CPU上的程序。可以作交叉编译的CPU(或DSP)涵盖了几乎所有...
什么是嵌入式电源系统
嵌入式电源大多数都是与其它通信产品进行配套。因此它的应用场合是小型化、一体化通信产品,如接入产品、数据产品、交换端局、小型交换机、小型移动基站(包括PHS)等。此外,嵌入式电源还可单独作为一个小的电源系统使用。 ...
Linux与其他操作系统的区别
Linux可以与MS-DOS、OS/2、Windows等其他操作系统共存于同一台机器上。因为它们均为操作系统,具有一些共性,但是互相之间各有特色,有所区别。目前运行在PC机上的操作系统主要有Microsoft的MS-DOS、Windows、WindowsNT、I...
linux下USB驱动移植
一、代码修改在这里把include前面的#给删了,希望有帮助/*addbylfc*/#include#include#include#include/*endadd*//**********************addbylfc*******...
Linux根文件系统简介
什么是根文件根文件系统首先是一种文件系统,但是相对于普通的文件系统,它的特殊之处在于,它是内核启动时所mount的第一个文件系统,内核代码映像文件保存在根文件系统中,而系统引导启动程序会在根文件系统挂载之后从中把一...
学习嵌入式系统的几个重要阶段
1、硬件层,是整个嵌入式系统的根本,如果你们现在单片机及接口这块很熟悉,并且能用C和汇编语言来编程的话,从嵌入式系统的硬件层走起来相对容易,硬件层也是驱动层的基础,一个优秀的驱动工程师是要能够看懂硬件的电路图和自行...
嵌入式内存数据库引擎的设计
1 内存数据库的定义内存数据库的定义不应涉及内存的大小、存取数据所需I/O 的多少、数据何时进入及怎样才能留驻内存等这些具体的实现技术,而只包含数据库常驻内存(而不是磁盘)、事务(不是系统)的数据存取只涉及内存的...
嵌入式SD卡图片解码器设计方案
1 系统硬件设计系统的核心CPU采用LM3S8962,具有丰富的外围接口以及多种片内的硬件接口功能(如UART、SPI、I2C、PWM等)。整个系统的硬件电路包括SD卡电路、TFT液晶显示电路、独立按键电路。1.1 SD卡电路SD卡有两种工作...
高质量C/C++——变量函数命名规则
【规则 1】标识符应当直观且可以拼读,可望文知意,不必进行“解码” 。标识符最好采用英文单词或其组合,便于记忆和阅读。切忌使用汉语拼音来命名。程序中的英文单词一般不会太复杂,用词应当准确。例如不要把 Cu...
嵌入式系统中FFT算法分析及设计方案
首先分析实数FFT算法的推导过程,然后给出一种具体实现FFT算法的C语言程序,可以直接应用于需要FFT运算的单片机或DSP等嵌入式系统中。1 倒位序算法分析按时间抽取(DIT)的FFT算法通常将原始数据倒位序存储,最后按正常顺序输...
Linux网络存储器的设计
1、硬件设计除CPU单元以外,网络存储器的实现主要包括两个部分:I/O接口和存储器接口。下面以CPU为中心,说明这两个接口的主要功能。①I/O接口。这里指CPU与Ethernet的接口(以太网接口)。它采用PCI的方式与以太网相连,是进...
C语言中的头文件可以自己写吗?
一些初学C语言的人,不知道头文件(*.h文件)原来还可以自己写的。只知道调用系统库函数时,要使用#i nclude语句将某些头文件包含进去。其实,头文件跟.C文件一样,是可以自己写的。头文件是一种文本文件,使用文本编辑器将代码编写...
Linux内核同步机制的自旋锁原理
一、自旋锁自旋锁是专为防止多处理器并发而引入的一种锁,它在内核中大量应用于中断处理等部分(对于单处理器来说,防止中断处理中的并发可简单采用关闭中断的方式,即在标志寄存器中关闭/打开中断标志位,不需要自旋锁)。自...
嵌入式Linux开发板上NFS文件系统的使用
在嵌入式linux系统中,编译的环境和运行的环境不一样,所以我们需要交叉编译工具,一般是在PC上面运行交叉编译工具编译好程序,然后再烧写到目标板的flash上,对于应用程序,我们需要频繁的调试,如果每次都需要烧写,那一定是一件很...
Linux文件系统的反删除方法
1.Ext2文件系统结构的简单介绍在Linux所用的Ext2文件系统中,文件是以块为单位存储的,默认情况下每个块的大小是1K,不同的块以块号区分。每个文件还有一个节点,节点中包含有文件所有者,读写权限,文件类型等信息。对于一个小于...
signaltap使用心得-遇到的一些问题
1.有时加入signaltap文件,会出现意想不到的不稳定情况,去掉后不稳定情况就消失了,但有的项目中也不会消失。这种情况,我理解为,加入signaltap对一些信号进行观察,需要消耗一些资源,并重新对工程做编译,这样一来会重新进行布局...
关于仿真时正常工作,程序固化后去不能工作的几种可能
出现这种情况有以下几种可能性:(1).用户板的程序块电路有问题:如PSEN不通或接错。地址线高位浮空等(我没遇到过这样的情况,但有文章有过这样的分析)。使用89C51内部程序,但EA未接高电平等。(2).用户板晶振电路有问题。用户板...
GDB调试精粹及使用实例
一:列文件清单1. List(gdb) list line1,line2二:执行程序要想运行准备调试的程序,可使用run命令,在它后面可以跟随发给该程序的任何参数,包括标准输入和标准输出说明符()和外壳通配符(*、?、[、])在内。如果你使用不带参数的ru...
Linux 下通过脚本实现远程自动备份
1. 设置无需密码的ssh登陆,方法如下:假设A,B两服务器,现在需要在A机上用root登陆B机,而不需要输入密码,那我们可按照下面的步骤来做:1)在A机上生成钥匙对,执行以下命令:ssh-keygen -t rsaGenerating public/private rsa key pa...
linux基础进程通信
数据传输:一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几兆字节之间。共享数据:多个进程想要操作共享数据,一个进程对共享数据的修改,别的进程应该立刻看到。通知事件:一个进程需要向另一个或一组进程...
如何制作嵌入式Linux文件系统
一、什么是文件系统 (Filesystem)文件系统是包括在一个磁盘(包括光盘、软盘、闪盘及其它存储设备)或分区的目录结构;一个可应用的磁盘设备可以包含一个或多个文件系统;如果您想进入一个文件系统,首先您要做的是挂载(moun...
如何在嵌入式LINUX中添加设备驱动程序
驱动程序的使用可以按照两种方式编译,一种是静态编译进内核,另一种是编译成模块以供动态加载。由于uClinux不支持模块动态加载,而且嵌入式LINUX不能够象桌面LINUX那样灵活的使用insmod/rmmod加载卸载设备驱动程序,因而这...
Linux内核结构详解
Linux内核主要由五个子系统组成:进程调度,内存管理,虚拟文件系统,网络接口,进程间通信。 1.进程调度(SCHED):控制进程对CPU的访问。当需要选择下一个进程运行时,由调度程序选择最值得运行的进程。可运行进程实际上是仅等待CPU...
嵌入式Linux操作系统学习规划
ARM+LINUX路线,主攻嵌入式Linux操作系统及其上应用软件开发目标:(1)掌握主流嵌入式微处理器的结构与原理(初步定为arm9)(2)必须掌握一个嵌入式操作系统(初步定为uclinux或linux,版本待定)(3)必须熟悉嵌入式软件开发流程并至少做一...
android笔记之JAVA基础
1、关于main 中的String args[] 或者 String[] argsMain是程序的入口,而string[]args是程序启动时所必须带的参数...,用来获取所输入的信息的。举例说明如下:straul good 和0 1 就是执行Test后输入的参数,后面直接得到返...