汇编程序覆盖测试中不可达指令检测算法
1、引言一般而言,汇编语言程序的执行表现为一系列逻辑路径的动态组合,测试时尽量覆盖所有可能的路径是软件测试的目标之一,有关的工作叫做覆盖测试。目前大多数测试工具是针对C/C++等高级语言的,针对汇编语言的测试工具相...
基于QT/Embedded的可变情报板应用程序开发
1 操作系统选择本文主要讨论的是一个可变情报板控制器的图形界面系统。该系统需要用串口和以太网口两路来和主控PC和LED情报板通讯,所以,硬件上选择的是一款采用SAMSUNGS 3C2440A高性能处理器的开发板。并带有外部存储...
嵌入式处理器的家庭蓝牙网关的实现
信息家电(IA,Information Appliances)是融合了计算机和通信技术的新型消费电子产品,随着信息家电进一步数字化、网络化、智能化和自动化的发展趋势,出现了家庭网络。而由于蓝牙技术低成本、低功耗、低复杂性、高效率、高可...
嵌入式CPU卡在医用便携式监护仪中的应用
设计医用便携式监护仪时,除了使用体积更小,质量更轻且满足支持液晶显示器的CPU卡,救护车的颠簸,手提飞奔时的震动是设计工程师必须考虑的问题。本文将探讨利用嵌入式CPU卡设计医用便携式监护仪的具体方案。软件平台:DOS操...
嵌入式设计30年,聚焦汇聚式处理器
如果将上世纪70年代末单片机的出现作为嵌入式系统技术发展的起点的话,其发展历程几乎与中国社会改革开放同步,已经走过30年的历程。与Windows操作系统和Intel处理器占垄断地位的计算机平台不同的是,嵌入式系统的技术发展...
一种支持I/O的核外中断执行算法
ARTs-OS是一个基于微内核的嵌入式实时操作系统。ARTs-OS中的中断管理应该提供的基本功能包括:管理中断处理设备、中断服务例程的管理、中断嵌套的管理、中断栈的维护、线程/进程切换时的现场保护和恢复等。但是ARTs-OS...
耦合实时元素在物联网:一个要求达到工业4.0
介绍如果互联网功能的设备使用一个完善的通信标准很容易沟通,如果该标准是工业4.0的先驱和物联网(IOT),我们为什么不能扎1物联网设备到另一台,而无需通过路由有人专有的云计算解决方案?虽然我们可以在任何基于蓝牙技术的鼠...
10个调试和排错的小建议
几乎没有哪个程序员能够写出一个bug都没有的代码,但是解决方法总是比困难多得多。多实践和坚毅的决心是成功的关键,这样才能够写出清洁代码,保证软件系统的可靠性。下面一起来看看这些可以镇压bug的工具箱。1. 输出语句...
ARM Linux系统开机自动运行特定应用的设置方法
系统服务的命令保存在开发板根文件系统的/usr/etc/rc.local文件中。有的开发板开机后自动运行图形界面程序,需要按住ctrl+c让开发板进入到linux的SHELL提示符界面。其实可通过注释掉rc.local文件中调用图形界面的命令,...
C++输入cin详解
#1:#include using namespace std;int main(){char str[8];cin.getline(str, 5);cout<<str<<endl;cin.getline(str, 5);cout<<str<<endl;return 0;}测试:abcdefgh (回车)abcd (输出)(输出-换行)【分析】之所以第一次输...
你可能不知道的,定义,声明,初始化
声明定义虽然无处不在,但是真正的想区分它们,却不是表面上那么简单。首先,从广义的角度来讲声明中包含着定义:定义又可以称之为,“声明性定义”;而狭义的声明,有可称之为“引用性声明”。下面,我们就来讨...
挺进嵌入式----来自多年嵌入式开发工程师的经验之谈
现在很多同学也意识到了学校培养模式和社会需求脱节问题,有一部分同学也先行行动起来,开始注重培养自己的实际动手能力,培养自己实际分析问题,解决问题的问题,培养自己在嵌入式专业实际编程,和调试程序的能力。但是嵌入式专...
BF609 ADSP-BF609开发调试过程中的问题解答案例
问题一:BF609采用HPUSB调试过程中,4块单板有三块在进行调试时发现报错,在对HPUSB的ICE测试时,发现第4和5项测试通,提示JTAG频率不正常!经各种尝试发现BF609的JTAG电路部分损坏,重新将609换下来后ok! BF609是不是有BUG!解答:仿...
Linux内核中读写文件数据的方法
1. 打开文件filp_open()在kernel中可以打开文件,其原形如下:strcut file* filp_open(const char* filename, int open_mode, int mode);该函数返回strcut file*结构指针,供后继函数操作使用,该返回值用IS_ERR()来检验其有...
C语言编写linux下的守护进程
在main函数中执行init_daemon();//初始化为Daemon就可以把进程变成守护进程#include#include#include#include#includevoid init_daemon(void){int pid;int i;if(pid=fork())exit(0);//是父进程,结束父进程else if(pid...
C语言实现小时候经常做的智力测试题
1、5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果A选手说:B第一,我第三。B选手说:我第二,E第四。C选手说:我第一,D第二。D选手说:C最后,我第三。E选手说:我第四,A第一。比赛结束后,每位选手都说对了一半,请编程确定比赛的...
C语言对数组的各种操作
#include#include//初始化数组void init(int arr[], int length){int i = 0;printf("初始化数组->:\n ");for (i = 0; i<length; i++){scanf_s("%d", &arr[i]);}}//数组反向输出void reverse(int arr[], in...
c语言:算数转换举例
算数转换程序1:#includeint main(){char c1 = 128;char c2 = 1;char c3 = c1+c2;//0111 1111//0000 0001//1000 0000,表示-127printf("%d\n",c3);return 0;}结果:-127请按任意键继续. . .程序2:#include<stdi...
c语言:实现一个函数判断year是不是润年
实现一个函数判断year是不是润年。程序:#includeint leap_year(int year)//leap year 闰年{if ((year % 4 == 0 && year / 100 != 0) || (year % 400 == 0)){return 1;}else{return 0;}}int main(){int year;...
C结构体实现一个通讯录
题目:实现一个通讯录,通讯录可以用来存储1000个人的信息,每个人的信息包括:姓名,性别,年龄,电话,住址。提供方法:1.添加联系人信息 2.删除指定联系人的信息 3.查找指定联系人的信息 4.修改指定联系人的信息 5.显示所有联系人...
读取配置文件的shell脚本实现
例如,我们要从文件Config.ini(位于当前用户的etc目录下)中获取各个配置项的值,并将之写入到NetworkInfo.txt文件中。其中,Config.ini文件的内容如下:[network]; ip of databaseip=10.10.10.10; port of databaseport=9999...
常使Linux快捷键提高工作效率
下述所有命令在Linux/unix的shell下有效,这里以bash为主。如有出入,以你自己的服务器为准。本文所指的Linux主要指RHEL/CentOS,unix指的是FreeBSD,这也是服务器中用得最多的版本。Ctrl + a 切换到命令行开始这个操作跟Hom...
Linux内存管理进程所涉及到的五个数据段
进程(执行的程序)会占用一定数量的内存,它或是用来存放从磁盘载入的程序代码,或是存放取自用户输入的数据等等。不过进程对这些内存的管理方式因内存用途不一而不尽相同,有些内存是事先静态分配和统一回收的,而有些却是按需...
专家教您如何在C语言中巧用正则表达式
标准的C和C++都不支持正则表达式,但有一些函数库可以辅助C/C++程序员完成这一功能,其中最著名的当数Philip Hazel的Perl-Compatible Regular Expression库,许多Linux发行版本都带有这个函数库。编译正则表达式为了提高效...
ADSP-BF609在CCES下SPI驱动调试问题解决方案
BF609 CCES下的SPI驱动调试在CCES环境下,ADI 自带了驱动接口函数,为驱动调试省下很多精力;但是这为人熟知的SPI,在调试过程中还是遇到了挫折;最大的问题:死机。实际的SPI驱动接口是全双工功能的,所以传输完成后,接口函数的返...
建立针对arm-linux的交叉编译环境
交叉编译环境介绍交叉编译是嵌入式开发过程中的一项重要技术,它的主要特征是某机器中执行的程序代码不是在本机编译生成,而是由另一台机器编译生成,一般把前者称为目标机,后者称为主机。采用交叉编译的主要原因在于,...
32位嵌入式处理器与8位处理器应用开发的三大不同点
ARM处理器在全球范围的流行,32位的RISC嵌入式处理器已经成为嵌入式应用和设计的主流。与国内大量应用的8位单片机相比,32位的嵌入式CPU有着非常大的优势,它为嵌入式设计带来丰富的硬件功能和额外的性能,使得整个嵌入式系...
Linux下两种删除过期文件的方法详述
一、概述在实际的C软件开发项目中,不同的软件会在不同的目录中生成文件,由于磁盘的存储空间有限,开发人员不得不考虑对目录下的过期文件进行删除。一般说来,有两种删除过期文件的方法,一种是在C程序中实现,一种是利用cronta...
关于哈夫曼树代码实现
一、简介哈夫曼树又称为最优树。1、路径和路径长度在一棵树中,从一个结点往下可以达到的孩子或子孙结点之间的通路,称为路径。通路中分支的数目称为路径长度。若规定根结点的层数为1,则从根结点到第L层结点的路径长度为L...
嵌入式软件的基本测试方法
搞好开发前的原型设计原型开发目前在开放流程中受到了更多的重视,同样嵌入式软件也是非常需要的。比如说一个录音机版面的设计,可以定义好版面上面的按键以及每个按键的功能。然后画出状态转化图,写清楚每个按键何时可以...
Linux内核线程编程方法
Linux内核线程编程方法内核经常需要在后台执行一些操作,这种任务就可以通过内核线程(kernle thread)完成--独立运行在内核空间的标准进程。内核线程和普通的进程间的区别在于内核线程没有独立的地址空间,mm指针被设置为NU...
linux消息队列
系统建立IPC通讯(如消息队列、共享内存时)必须指定一个ID值。通常情况下,该id值通过ftok函数得到。ftok原型如下:key_t ftok( char * fname, int id )fname就时你指定的文件名,id是子序号。在一般的UNIX实现中,是将文件的索...
linux内核空间与用户空间信息交互方法
内核空间(kernel-space) VS用户空间(user-space)作为一个Linux开发者,首先应该清楚内核空间和用户空间的区别。关于这个话题,已经有很多相关资料,我们在这里简单描述如下:现代的计算机体系结构中存储管理通常都包含保护机...
内核空间和用户空间的保护
LINUX建立进程的时候建立了两套段描述符,在文件Segment.h有说明.#ifndef _ASM_SEGMENT_H#define _ASM_SEGMENT_H#define __KERNEL_CS 0x10#define __KERNEL_DS 0x18#define __USER_CS 0x23#define __USER_DS 0x2B#end...
Linux内核延时研究与函数代码分析
有时驱动程序需要非常短的延迟来与硬件同步。此时,使用jiffies值无法达到目的。这时就要用内核函数udelay和mdelay。u表示希腊字母“mu”(m),它代表“微”。它们的原型如下:#include void udelay(unsi...
linux建立ssh信任关系
建立SSH信任将A主机做为客户端(发起SSH请求 ip:192.168.200.170)将B主机作为服务器端(接收ssh请求 ip:192.168.200.149)以上以主动发起SSH登录请求的主机和接收请求的主机进行分类A主机生成公,私钥证书 [root@buddyt...
Linux find 命令使用小技巧一则
今天需要清理一下原来每日构建产生的一些用来存放包的目录,这些目录名字是按照一定规则存放,比如:/dailybuild/[module_name]/[yyyy]-[MM]-[dd]/xxx这里考虑仅需要保存最近5天的dailybuild,对于早于5天的目录执行删除操作...
linux 控制sshd的远程访问
测试环境:linuxcentos6.51、hosts.allow文件配置:修改/etc/hosts.allow文件## hosts.allow This file describes the names of the hosts which are# allowed to use the local INET services, as decided# by the &lsq...
linux下chown的用法
linux下,chown用来更改文件的所属主和所属组的。一、更改文件的所属主chown user1 1.txt 即更改1.txt的所属主为user1二、更改文件的所属组chown :group1 1.txt h或者chown .group 1.txt 即更改1.txt的所属组为group1....
Linux常见紧急情况处理方法
在个人计算机使用 Linux系统时,通常都是Linux和MS Windows 9x或MS Windows NT并存的。由于重新安装其他的操作系统,经常会导致原有的Linux不能启动。这主要是因为,这些操作系统默认为计算机中没有其他的操作系统,因而改写...
linux静态库和动态库分析
1.什么是库在windows平台和linux平台下都大量存在着库。本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。由于windows和linux的本质不同,因此二者库的二进制是不兼容的。本文仅限于介绍linux下...
Linux下发生段错误时如何产生core文件
使用ulimit -a可以查看系统core文件的大小限制;使用ulimit -c [kbytes]可以设置系统允许生成的core文件大小,例如ulimit -c 0 不产生core文件ulimit -c 100 设置core文件最大为100kulimit -c unlimited 不限制core文件...
保障Linux的临时文件安全
在一个典型的Linux系统中,至少有两个目录或分区保持着临时文件。其中之一是/tmp目录,再者是/var/tmp。在更新的Linux内核的系统中,还可能有/dev/shm,它是用tmpfs文件系统装载的。存储临时文件的目录存在着一个问题,即这些...
修改Linux系统下22端口的两种方法
第一种:01假如要改SSH的默认端口(22),那么你只要修改:/etc/ssh/sshd_config中Port 22,这里把22改成自己要设的端口就行了,不过千万别设和现已有的端口相同哦,以防造成未知后果。02假如要限制SSH登陆的IP,那么可以如下做:先:修改/...
如何优化Linux服务器硬盘性能实用技巧
清理磁盘 在Windows系统中,磁盘碎片是一个常见的问题,如果不注意,系统性能可能被侵蚀。Linux使用第二扩展文件系统(ext2),它以一种完全不同的方式处理文件存储。Linux没有Windows系统中发现的那种问题,这使得许多人认为磁...
Linux的安全漏洞与防范措施
在LINUX的Internet安全中,主要包括的就是FTP安全、电子邮件安全、Telnet安全、Web服务器安全和安全Web协议。FTP安全对LINUX网络来说能实现传输文件十分重要,因此最常用的工具和协议是文件传输协议(FTP)。在这里简单介...
安全基础 Linux必学的系统安全命令
passwd1.作用passwd命令原来修改账户的登陆密码,使用权限是所有用户。2.格式passwd [选项] 账户名称3.主要参数-l:锁定已经命名的账户名称,只有具备超级用户权限的使用者方可使用。-u:解开账户锁定状态,只有具备超级用户权...
Linux系统计算机死机的故障原因
一、硬件问题可以考虑分析以下几点:1、不要超频CPU,如果已经超频的先回复到原来的频率虽然平时运行没有问题,但可能在高负载的使用中就会出现不可预料的故障了。特别是linux系统在某些应用上,是可以把硬件的性能发挥到极...
检测Linux系统是否被黑的技巧
俗称“脚本小鬼”的家伙 是属于那种很糟糕的黑客,因为基本上他们中的许多和大多数人都是如此的没有技巧。可以这样说,如果你安装了所有正确的补丁,拥有经过测试的防火墙,并且在多个级别都激活了先进的入侵检测...
C语言字节对齐问题详解
一、什么是对齐,以及为什么要对齐:1. 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型数据...
linux超级终端minicom设置
一、安装minicom:确认一下系统是否已经安装minicom,如果没有请自行安装。[root@web Server]# rpm -q minicomminicom-2.1-3二、配置(需要root用户)执行minicom –s后出现配置界面==========================[configu...
如何监控和保护Linux下进程安全
经典的信息保密性安全模型Bell-LaPadula模型指出,进程是整个计算机系统的一个主体,它需要通过一定的安全等级来对客体发生作用。进程在一定条件下可以对诸如文件、数据库等客体进行操作。如果进程用作其他不法用途,将给...
什么是module 以及如何写一个module(转)
module 翻译成中文就是模块,不过,事实上去翻译这个字一点都没意义。在讲模块之前,我先举一个例子。相信很多人都用过 RedHat。在 RedHat 里,我们可以执行 sndconfig,它可以帮我们 config 声卡。config 完之后如果捉得到你...
Linux 运行级init详解
对于那些在DOS/Win9x/NT 平台下的高级用户而言,Linux 似乎是一个怪物。没有config.sys ,没有autoexec.bat,具有个人特色的机器配置不知道从何开始。需要说明的是,很多人认为Linux 是Unix 的一个克隆,但是,这种说法对于Linux...
硬盘加密的几种方法介绍
一、修改硬盘分区表信息硬盘分区表信息对硬盘的启动至关重要,如果找不到有效的分区表,将不能从硬盘启动或即使从软盘启动也找不到硬盘。通常,第一个分区表项的第0子节为80H,表示C盘为活动DOS分区,硬盘能否自举就依*它。若...
Linux文件查找命令find,xargs详述
前言:关于find命令 由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只你具有相应的权限。在运行一个非常消耗...
Shell程序设计的流程控制
1.测试命令test命令用于检查某个条件是否成立,它可以进行数值、字符和文件3个方面的测试,其测试符和相应的功能分别如下。(1)数值测试:-eq 等于则为真。-ne 不等于则为真。-gt 大于则为真。-ge 大于等于则为真。-lt 小于则...
Linux截图与考屏方法总结
1.Gimp,linux 下最强大的图形处理软件,带截屏功能2.KDE 下的 ksnapshot3.gnome-screenshot以及gnome-panel-screenshot。区别在于后者可以抓取提示信息sleep 5;gnome-panel-screenshot趁5妙时间未到,赶紧摆好pose吧... -...
各类UNIX和Linux密码丢失后的解决方法
一:solarisROOT密码遗忘的处理方法:1,如果还能用普通用户登陆的话,%df /etc,确定包含/etc目录分区的设备名%df /etc/ /dev/dsk/c0t0d0s0...此例中是c0t0d0s0,如果你的根目录分区设备不一样的话,替换一下就可以啦2,把...
Linux/Unix环境下的make命令详解
无论是在Linux还是在Unix环境中,make都是一个非常重要的编译命令。不管是自己进行项目开发还是安装应用软件,我们都经常要用到make或 make install。利用make工具,我们可以将大型的开发项目分解成为多个更易于管理的模块...
在Linux中如何配置DNS
----DNS的功用是把计算机的名称转换为 IP地址。DNS的使用简化了系统管理员及客户对主机文件的操作和维护。Intranet服务器的系统配置----硬件配置:Pentium 133 CPU,32MB内存,2.1G硬盘,16倍速IDE光驱。----操作系统:Red Hat...
Linux 关机重启流程分析
1. 概述 在 Linux 下的关机和重启可能由两种行为引发,一是通过用户编程,一是系统自己产生的消息。用户和系统进行交互的方式也有两个,一个是系统调用:sys_reboot,另一个就是apm或则acpi的设备文件,通过对其操作也可以使系统...
Linux操作系统网络驱动程序编写
Linux操作系统网络驱动程序编写一.Linux系统设备驱动程序概述1.1 Linux设备驱动程序分类1.2 编写驱动程序的一些基本概念二.Linux系统网络设备驱动程序2.1 网络驱动程序的结构2.2 网络驱动程序的基本方法2.3 网络驱动...
在Linux环境下运行DOS命令
Linux系统提供了一组称为mtools的可移植工具,可以让用户轻松地从标准的DOS软盘上读、写文件和目录。它们对DOS和Linux环境之间交换文件非常有用。它们是不具备共同的文件系统格式的系统之间交换文件的有力手段。对于一...
Linux磁盘存储区管理原理与技巧
原理篇1. 交换空间是什么Linux 中的 交换空间(Swap space) 在物理内存(RAM)被充满时被使用。如果系统需要更多的内存资源,而物理内存已经充满,内存中不活跃的页就会被移到交换空间去。虽然交换空间可以为带有少量内存的机器...
在Linux系统中批量建立用户的shell
以下是整个shell的源码及注释,此代码在Redhat 7.2及Turbo Linux 7.0上调试通过,在其他版本的Linux中使用可能需要做适当的修改。其中“@”部分是代码注释,“()”部分是笔者对于编程思路的解释。@!/bin...
在Linux 系统中紧急情况处理六招
1.使用急救盘组进行维护急救盘组(也称为boot/root盘组),是系统管理员必不可少的工具。用它可以独立地启动和运行一个完整的Linux系统。实际上,急救盘组中的第2张盘上就有一个完整的Linux系统,包括root文件系 统;而第1张盘...
小批量 项目的一些心得与体会
关于技术;1,慎用看门狗,看门狗是很好用的一个功能,使用它可以增加程序在实际情况中的稳定性,但要注意一些地方:a,看门狗一旦启动,只能重新烧写修改而不能在软件里修改,特别是在bootloader里面做看门的时候,你在App里面也有做...
在c中嵌入汇编语言报错(问题解决)
问题如下:小弟在ccs的c541 device simulator环境下编了一个串口输出的小程序,编译没报错,但是run起来功能没实现,单步调的时候发现:用*st1=0x0000;的语句赋值给st1时,该寄存器的INTM(全局中断使能)位没有变,依然为复位时的1,看了...
老驱动模块在高版本内核编译下错误解决
错误一:scripts/Makefile.build:49: *** CFLAGS was changed in "/home/zjn/workdir/mytest/kermod/dma_i2c/Makefile". Fix it to use EXTRA_CFLAGS. Stop.将Makefile中CFLAGS 全部改成 EXTRA_CFLAGS错误二:/home/zj...
SQUASHFS error问题解决
SQUASHFS error: sb_bread failed reading block 0x2082SQUASHFS error: Unable to read metadata cache entry [820b4a]SQUASHFS error: Unable to read inode [820b4a:13a4]List of all partitions:1f00 192 mtdblo...
PID典型处理c程序
#include #include /*=====================================================================================PID FunctionThe PID (比例、积分、微分) function is used in mainlycontrol applicati...
步进电机速度控制源码
#definecs_dirPTA_PTA1//车速表1-反转0-正转#definecs_sigPTA_PTA0//车速表0->1驱动sys_data_type_motor_flags0;#definecs_dir_flag_motor_flags0.Bit.BIT0//正反转方向标志位unsignedcharcs_fcan;//CAN_WKD2.Byte//...
在程序定义变量的几种方法
一、匈牙利命名法:广泛应用于象MicrosoftWindows这样的环境中。Windows编程中用到的变量(还包括宏)的命名规则匈牙利命名法,这种命名技术是由一位能干的Microsoft程序员查尔斯·西蒙尼(CharlesSimonyi)提出的。匈牙...
Linux环境变量设置总结
1、引言在 linux系统 下,如果你下载并安装了应用程序,很有可能在键入它的名称时出现“ command not found ”的提示内容。如果每次都到安装目标文件夹内,找到可执行文件来进行操作就太繁琐了。这涉及到环境变...
LCD 菜单程序的思路跟源码
LCD 菜单程序的思路:定义一个变量,记录菜单的级别序号,另一个变量记录某一级别下的菜单项序号。这样你可以用一个数组保存你的菜单结构,比如叫 menu_table[NUMS_LEVEL][NUMS_ITEM_PER_LEVEL];然后你在按键处理里面根据按...
PIC单片机编程风格和格式
首先我们来看一段程序:Tittle ‘Input.asm’ ;标题;这是一个简单的输入实验includeCOUNT EQU 20H ;定义20H寄存器名为COUNTORG 0 ;程序区将从0000H开始装载GOTO STARTORG 4 ;中断入口GOTO INTEN ;中断发生时跳转到...
详谈C51的编程规范
作为一门工具,最终的目的就是实现功能。在满足这个前提条件下,我们希望我们的程序能很容易地被别人读懂,或者能够很容易地读懂别人的程序,在团体合作开发中就能起到事半功倍之效。在网上请求帮助时,如能以规范的写法贴出程...
Linux 用户的 3 个命令行小技巧
1. 如何在不使用Cron的情况调度Linux下的任务在 Linux 下,调度一个任务/命令称之为 Cron。当我们需要调度一个任务时,我们会使用Cron,但你知道我们在不使用Cron的情况也可以调度一个在将来时间运行的任务吗?你可以按照如...
C语言有符号数和无符号数运算
看个题:#includeint main(){unsigned int a=6;int b=-20;printf("%d\n",a+b);(a+b)>6? puts(">6"):puts("6意想不到吧?为什么结果这样呢?原来有符号数和无符号数进行比较运算时(==,,=),有符号数隐式转换成...
ARM寻址方式——堆栈寻址
从内存管理的角度看,堆栈时一块用于保存数据的连续内存,也就是一种按特定顺序进行数据存取的存储区,这种特定的顺序可归纳为“后进先出”或“先进后出”。指向堆栈的地址寄存器成为堆栈指针,堆栈的访...
ucos-II在44b0上的移植(解决不断重启问题)
在时钟节拍中断中进行任务切换时,需要用到一个零时存储单元 SAVED_LR 来存储返回地址 lr 。 而 SAVED_LR 原来在 OS_CPU_A.S 中是这样定义的 SAVED_LR DCD 0, 注意没有任何指明 SAVED_LR 在存储空间中的位置的相关代码...
【讨论】c++智能指针
zero 坐在餐桌前,机械的重复“夹菜 -> 咀嚼 -> 吞咽”的动作序列,脸上用无形的大字写着:我心不在焉。在他的对面坐着 Solmyr ,慢条斯理的吃着他那份午餐,维持着他一贯很有修养的形象 ——— 或者...
VC下关于debug和release的不同的讨论
1. 变量。大家都知道,debug跟release在初始化变量时所做的操作是不同的,debug是将每个字节位都赋成0xcc(注1),而release的赋值近似于随机(我想是直接从内存中分配的,没有初始化过)。这样就明确了,如果你的程序中的某个变量...
C/C++语言void及void指针深层探索
1.概述许多初学者对C/C++语言中的void及void指针类型不甚理解,因此在使用上出现了一些错误。本文将对void关键字的深刻含义进行解说,并详述void及void指针类型的使用方法与技巧。2.void的含义void的字面意思是“无...
只有高手才会的C语言高效编程方法
第1 招:以空间换时间计算机程序中最大的矛盾是空间和时间的矛盾,那么,从这个角度出发逆向思维来考虑程序的效率问题,我们就有了解决问题的第1 招--以空间换时间。例如:字符串的赋值。方法A,通常的办法:#define LEN 32char st...
Linux硬件信息命令大全
硬件信息在linux系统中,有很多命令可以用于查询主机的硬件信息,有些命令仅仅针对于特定的硬件部件,比如cpu,内存等,而有些命令可以查询很多的硬件信息。这篇文章简单地带大家了解一下最常用的查询各种硬件信息的命令,其中包...
对嵌入式操作系统的一些个人看法
随着嵌入式处理器尤其是ARM处理器的广泛使用,嵌入式操作系统也曾爆发之势。对于初学者来讲以哪种系统作为学习对象成为一个问题。之所以说初学者,因为对老鸟来讲从一个系统转换到另外一个系统并不是一个费力的过程。但...
SylixOS下的系统时间设置
/**************命令行下的系统时间设置******************/SylixOS中的时钟分为系统时钟和硬件时钟,在其对应的shell命令也是两个不同的命令date和hwclock。Sylixos设备的控制台中输入help date命令,会得到该命令的使...
高手讲解系列!闲谈嵌入式编程的复杂性
能从PC机器编程去看嵌入式问题,那是第一步;学会用嵌入式编程思想,那是第二步;用PC的思想和嵌入式的思想结合在一起,应用于实际的项目,那是第三步。很多朋友都是从PC编程转向嵌入式编程的。在中国,嵌入式编程的朋友很少是正...
少走弯路!从裸机编程到嵌入式Linux编程思想的转变
笔者因此写上自己的学习心得,希望能给和我一样转变做嵌入式Linux这块的朋友一点帮助,早点入门,于愿足矣。让我们一起回顾一下51形式的编程方法,以一个简单的LED例子:通过串口向其发送一串指令,让LED灯闪烁,闪烁频率由串口发...
关于J-LINK升级最新固件后无法连上的一点分析
昨天升级了最新的 Keil MDK 4.53,怕它老是提示 J-Link 要升级,就去 SEGGER 的网站下了个最新版的 J-Link 软件包(4.46F 版的),装好后运行 J-Link Commander 提示要升级固件。以前一直是刷的,没有问题,这次竟然升级后连不上仿...
一个限长度字符串替换的应对方法
有时候我们要修改/替换某些脚本系统里面的字符串,而这些字符串与指令都是以穿插的形式存放在脚本编译后生成的二进制文件的内部。如果修改的长度小于等于原来的长度,那就可以直接在上面修改了,不足的用空白字符什么的补...
SylixOS下Zlib的移植和使用
在SylixOS网站的百科页面有“Zlib移植指南”根据指南的说明,可以方便的进行zlib库的移植和安装。除上述方法外,还能够在RealCoder下编译zlib库,从网站http://www.zlib.net/ 下载zlib source code,这里使用的是t...
如何学习嵌入式!--分享给新手
学习嵌入式,该学习什么基本的知识呢?首先C语言,这个是毋庸置疑的,不管是做嵌入式软件还是硬件开发的人员,对C语言的掌握这个是必需的,特别是对于以后致力于嵌入式软件开发的人,现在绝大部分都是用C语言,你说不掌握它可以吗?至...
如何写出高效优美的单片机C语言代码?
程序能跑起来并不见得你的代码就是很好的c代码了,衡量代码的好坏应该从以下几个方面来看1,代码稳定,没有隐患。2,执行效率高。3,可读性高。4,便于移植。下面发一些我在网上看到的技巧和自己的一些经验来和大家分享;1、如果...
D锁存器VHDL描述
LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; ENTITY latch1 ISPORT (d:IN STD_LOGIC;ena:IN STD_LOGIC;q:OUT STD_LOGIC);END latch1;ARCHITECTURE example4 OF latch1 ISSIGNAL sig_save:STD_LOGIC;BEGIN P...
linux下配置DHCP服务实战
我们知道dhcp 就是动态ip 地址分配服务拉!在一个网络中,如果电脑不是很多的情况下,我们一般都是手动给每个电脑分配ip地址等一些网络的设定。如果一个网络中有上百台电脑,我们也要一台台跑去设定他们的ip 地址 ,那样我想人...
Linux中sed如何处理文本
sed处理文本的方法sed在处理文本时,会先读取第一个输入行,将编辑命令应用于输入行,然后读取下一个输入行,并应用编辑命令。sed总是处理最新版本的行,因此sed中有多个编辑命令时,编辑命令的顺序对结果会有影响,下一个编辑命令...
Linux下tftp、nfs和dhcp的安装和配置
本文基于redhat6.0,默认系统已经配置好了yum源,不清楚的可以参照我的关于yum配置的博文。以下都是基于root用户。1、tftp服务的安装和配置安装xinetd服务即可管理tftp服务,安装指令如下:yum install tftp配置tftp:vim /etc...