自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 资源 (1)
  • 收藏
  • 关注

原创 建表与数组法

表驱动法,实现不同状态调用不同函数typedef struct _EVENT_DRIVE { MODE_TYPE mod;//消息的发送模块 EVENT_TYPE event;//消息类型 STATUS_TYPE status;//自身状态 EVENT_FUN eventfun;//此状态下的处理函数指针 }EVENT_DRIVE; ...

2020-04-27 00:38:45 183

原创 统计在一个输入字符串中各个不同字符出现的频度

void freq(string& s, char A[], int C[]){int len = s.length();for (int m = 0; m < len; ++m) { C[m] = 0; } for (int i = 0; i < len; ++i) { int k = 0; ...

2020-04-10 15:16:31 2373

转载 usb更新文件

一.内核配置,配置使其支持u盘make menu_config    Device Drivers --->        [*]USB support -->               USB Mass Storage supportu盘底层依赖scsi,所以scsi的配置也要配置好二.设计更新代码我是这么设计的:写个应用程序存放在文件系统的/bin目录下,取名up

2016-03-02 11:18:19 767

转载 ./configure,make,make install

这些都是典型的使用GNU的AUTOCONF和AUTOMAKE产生的程序的安装步骤。./configure是用来检测你的安装平台的目标特征的。比如它会检测你是不是有CC或GCC,并不是需要CC或GCC,它是个shell脚本。make是用来编译的,它从Makefile中读取指令,然后编译。make install是用来安装的,它也从Makefile中读取指令,安装到指定的位置。

2016-02-23 11:32:11 233

转载 connect

建立socket后默认connect()函数为阻塞连接状态,在大多数实现中,connect的超时时间在75s至几分钟之间,想要缩短超时时间,可解决问题的两种方法:方法一、将socket句柄设置为非阻塞状态,方法二、采用信号处理函数设置阻塞超时控制。在一个TCP套接口被设置为非阻塞之后调用connect,connect会立即返回EINPROGRESS错误,表示连接操作正在进行中,但是仍未完成

2016-01-26 18:03:30 352

转载 process,pthread

嵌入式Linux中文站,关于多进程和多线程,教科书上最经典的一句话是“进程是资源分配的最小单位,线程是CPU调度的最小单位”。这句话应付考试基本上够了,但如果在工作中遇到类似的选择问题,那就没有那么简单了,选的不好,会让你深受其害。经常在网络上看到有XDJM问“多进程好还是多线程好?”、"Linux下用多进程还是多线程?"等等期望一劳永逸的问题,只能说:没有最好,只有更好,根据实际情况来判

2016-01-13 11:10:30 297

转载 关于linux线程

关于linux线程在许多经典的操作系统教科书中, 总是把进程定义为程序的执行实例, 它并不执行什么, 只是维护应用程序所需的各种资源. 而线程则是真正的执行实体. 为了让进程完成一定的工作, 进程必须至少包含一个线程. 如图1.进程所维护的是程序所包含的资源(静态资源), 如: 地址空间, 打开的文件句柄集, 文件系统状态, 信号处理handler, 等;线程所维护的运行相

2016-01-13 10:57:31 249

转载 C程序调用shell脚本共有三种方法

C程序调用shell脚本共有三种方法C程序调用shell脚本共有三种法子 :system()、popen()、exec系列函数call_exec1.c ,内容为:system() 不用你自己去产生进程,它已经封装了,直接加入自己的命令exec 需要你自己 fork 进程,然后exec 自己的命令popen() 也可以实现执行你的命令,比system 开销小1

2016-01-05 18:54:38 296

转载 .bash_profile和.bashrc的区别

.bash_profile和.bashrc的区别(如何设置生效)/etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/etc/profile.d目录的配置文件中搜集shell的设置./etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.~/.bash_profile

2015-12-17 11:24:10 238

转载 tty

我们经常说的控制台,就是指控制台终端(/dev/ttyn, console,在UNIX系统中计算机显示器就叫做控制台终端)。通常pc,显示器和键盘构成控制台。并且控制台终端与一些设备特殊文件关联:tty0、tty1、tty2。。。ttyn通常情况下/dev/console与tty0关联。 ttyn:ttyn是虚拟终端。有tty1-tty6,通过CTRL+AL

2015-12-02 10:56:00 373

转载 linux编程获取ip地址

#include  #include #include  #include #include  #include  #include #include  #include  #include        #define ETH_NAME        "eth0"              int main()   

2015-11-02 14:45:56 240

转载 uboot

Printenv打印环境变量。Uboot> printenvbaudrate=115200ipaddr=192.168.1.1ethaddr=12:34:56:78:9A:BCserverip=192.168.1.5Environment size: 80/8188 bytesSetenv设置新的变量Uboot> setenv myboardAT91RM

2015-10-28 15:19:10 248

转载 三态门构成总线

一个高一个低,然后还有一个高阻(挂起)。总线只允许同时只有一个使用者。通常在数据总线上接有多个器件,每个器件通过OE/CE之类的信号选通。如器件没有选通的话它就处于高阻态,相当于没有接在总线上,不影响其它器件的工作。如果你的设备端口要挂在一个总线上, 必须通过三态缓冲器. 因为在一个总线上同时只能有一个端口作输出, 这时其他端口必须在高阻态, 同时可以输入这个输出端口的数据. 所以你还

2015-10-27 17:52:07 3817

转载 -l参数和-L参数

2. -l参数和-L参数-l参数就是用来指定程序要链接的库,-l参数紧接着就是库名,那么库名跟真正的库文件名有什么关系呢?就拿数学库来说,他的库名是m,他的库文件名是libm.so,很容易看出,把库文件名的头lib和尾.so去掉就是库名了。好了现在我们知道怎么得到库名了,比如我们自已要用到一个第三方提供的库名字叫libtest.so,那么我们只要把libtest.so拷贝到/usr/lib里,

2015-10-15 10:35:31 6084 1

原创 Linux 网络配置

临时更改主机IP地址: 1.动态获取:sudo dhclient 2.静态指定:sudo ifconfig eht0 192.168.1.10永久配置主机: 1.vi /etc/network/interfaces a.动态获取:iface eth0 inet dhcp b.静态指定:iface eth0 inet static address 192.168.1.10

2015-09-16 18:40:37 235

转载 头文件库文件

头文件中有函数的申明,库文件实现函数的定义。比如,printf函数。使用时应包括stdio.h,打开stdio.h你只能看到,printf这个函数的申明,却看不到printf具体是怎么实现的,而函数的实现在相应的C库中。而库文件一般是以二进制形式而不是C源文件形式提供给用户使用的。程序中包括了stdio.h这个头文件。链接器就能根据头件中的信息找到printf这个函数的实现并链

2015-09-02 16:45:57 302

转载 liunx使用第三方库

举例,头文件名 abc.h 函数名为 abc_test(); 第三方库头文件目录为/abc/include/ 链接库目录为/abc/lib/1、头文件和源文件:这是最好的情况,引用头文件和相关函数即可。如:#include "abc.h"abc_test();//直接调用即可编译时,Makefile中加入编译选项 -I/abc/include 为了能将库的头文件引进来。而且你的程序运行时

2015-09-02 10:55:36 321

转载 U-Boot常用命令

U-Boot常用命令?:得到所有命令列表或者列出某个命令的帮助。用法:? [command ...]说明:列出命令的帮助信息,当不带参数时,列出所有命令及简要说明。help:同?printenv:打印环境变量。用法:printenv [name]说明:name一般是Hiboot环境变量的名字,也可以是用户自定义的变量;当value为空时,删除变量

2015-05-28 01:03:28 274

转载 volatile

与关键字const一样,关键字volatile也是一个类型修饰符(type specifier)。   关于volatile的作用:       例如程序清单:   volatile int m=10;                                 int k,n=m;                                  . 

2015-04-07 15:24:38 353 1

转载 nandflash,norflash,sdram,emmc,rom,ram

nandflash,norflash,sdram,emmc,rom,ram 我们不谈这些名次的由来,只说明他们是做什么的,能用来干什么,在哪里我们用到过三部分说明1、Nandflash是flash非易失性闪存,即一种快速存储的芯片。是用来存储数据的,类似于SD卡是用于我们手机内存等,但手机内存一般是flash和DDR合起来的芯片 2、Norf

2015-04-06 21:20:04 1155

转载 #define SREG (*(volatile unsigned CHAR *)0x5F)

终于理解了#define SREG (*(volatile unsigned CHAR *)0x5F) 以前看到#define SREG     (*(volatile unsigned CHAR *)0x5F) 这样的定义,总是感觉很奇怪,不知道为什么,今天终于有了一点点心得,请大虾们多多批砖~~~    嵌入式系统编程,要求程序员能够利用C语言访问固定的内存地址。既然是个地址,那么按照

2015-03-29 23:02:25 443

转载 ARM异常返回修正值

ARM异常返回修正值因异常类型不同而不同,这主要取决于两个方面:a、  异常处理完后,返回的地址是异常产生时执行指令的地址还是执行指令下一条指令的地址;b、  处理异常时,PC值是否已更新 1、  Reset异常复位异常不需要返回,所以在这不讨论 2、  SWI、未定义指令异常a、  SWI、未定义指令异常是由执行该指令时产生的异常,所以,当异常发生时PC值并未更新

2015-03-28 21:25:38 624

转载 三大总线

发现三大总线是最常用的。所以全面了解下。A:RS-232。B:ISP。C:I2CA:RS-232一,电气约定1,RXD,TXD为数据信号    +3~+15V代表逻辑0, -3~-15V代表逻辑1。2,CTS,RTS,DSR,DTR,DCD为控制信号  +3~+15V代表信号有效(接通,ON状态), -3~-15V代表信号无效(断开,OFF状态)。如何EIA-R

2015-03-20 13:25:38 2477

转载 vi三种工作模式

Vi有三种基本的工作模式:指令行模式、文本输入模式、行末模式。他们的相互关系如所示。指令模式(Command Mode) 下输入 a、i、o进入文本输入模式(Input Mode)文本输入模式(Input Mode) 下按ESC进入指令模式(Command Mode)指令模式(Command Mode)下输入:进入末行模式(Last line Mode)末行模式(Last line M

2015-01-28 22:41:04 2563

转载 Linux 标准目录结构

Linux 标准目录结构初学Linux,首先需要弄清Linux 标准目录结构/root --- 启动Linux时使用的一些核心文件。如操作系统内核、引导程序Grub等。home --- 存储普通用户的个人文件 ftp --- 用户所有服务httpdsambauser1user2bin --- 系统启动时需要的执行文件(二进制)sbin --- 可执行

2015-01-28 09:03:16 285

转载 五大内存分区

在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。 栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。 堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回

2015-01-25 20:03:24 337

转载 地址总线字长内存容量寻址范围之间的计算

地址总线,字长,内存容量,寻址范围 之间的计算     处理机字长是指处理机能同时处理(或运算)的位数,即同时处理多少位(bit)数据。比如Intel Pentium 4处理器字长为32位,它能同时处理32位的数据,也即它的数据总线为32位。以前的处理器比如8086,则为16位处理器,现在新兴的64位处理器,它的数据吞吐能力更强,即能同时对64位数据进行运算。处理器的字长越大,说明它的运算

2015-01-25 12:43:03 3551

libcurl详解

libcurl是一个跨平台的网络协议库,支持http, https, ftp, gopher, telnet, dict, file, 和ldap 协议。libcurl同样支持HTTPS证书授权,HTTP POST, HTTP PUT, FTP 上传, HTTP基本表单上传,代理,cookies,和用户认证。

2015-12-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除