自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 资源 (2)
  • 收藏
  • 关注

原创 gsoap的几个常用设置选项

1. 服务器端设置地址重用    在soapXXXService.cpp中,在类的构造函数中增加 bind_flags = SO_REUSEADDR;2. 客户端设置连接超时时间    在soapXXXProxy.cpp中,在XXXProxy_init中增加 connect_timerout = x;3. 客户端设置请求超时时间    在soapXXXProxy

2015-01-28 18:32:22 1090

原创 bbb sd6 无e2 修改

1. u-boot修改    board/ti/am335x/board.c    void s_init(void)和static int read_eeprom(void)这两个函数要从e2中读取数据,只需要把原版的bbb的e2中的数据读出来并添充到相应的数据结构里即可。   数据如下:   unsigned char e2_data[80] = {0xaa, 0x55, 0x

2015-01-28 00:08:33 1122

原创 bbb sdk6编译流程

1. 编译用于ftp启动的镜像1) ubootmake ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- O=flash-restore am335x_evm_restore_flash_usbspl生成的u-boot.img在flash-restore目录下,拷贝到ftp目录下,并改名为u-boot-restore.img生成的u-boo

2015-01-27 23:33:59 1874

转载 状态机思路在程序设计中的应用

状态机思路在单片机程序设计中的应用状态机的概念状态机是软件编程中的一个重要概念。比这个概念更重要的是对它的灵活应用。在一个思路清晰而且高效的程序中,必然有状态机的身影浮现。比如说一个按键命令解析程序,就可以被看做状态机:本来在A状态下,触发一个按键后切换到了B状态;再触发另一个键后切换到C状态,或者返回到A状态。这就是最简单的按键状态机例子。实际的按键解析程序会比这更复杂些

2015-01-27 14:40:12 732

转载 outside of class is not definition

有一种可能的情况:You have semicolons (;) at the end of all your function definitions making the compiler think they're declarations. 即在方法定义的后面都误添加上了";",导致编译器认为这仅仅是个声明。

2015-01-27 10:43:33 4729

原创 bbb u-boot 验证 emmc

参考"common/cmd_mmc.c"的查找emmc的代码,在mmc总线初始化函数后,遍历mmc总线,查找emmc并打印emmc信息。在"drivers/mmc/mmc.c"中的mmc_initialize函数的最后面添加我们的遍历函数int mmc_initialize(bd_t *bis){INIT_LIST_HEAD (&mmc_devices);cur_dev_n

2015-01-26 23:37:09 2396

转载 __attribute__ 之weak,alias属性

Weak Alias 跟 Weak Reference 完全没有任何关系,不过是我在看到 Weak Reference 的时候想到的而已。Weak Alias 是 gcc 扩展里的东西,实际上是函数的属性。这个东西在库的实现里面可能会经常用到,比如 glibc 里面就用了不少。抄录一段 gcc 手册里面的话解释下函数属性是干啥的,In GNU C, you declare

2015-01-26 22:39:48 1367

原创 bbb u-boot do_mmcinfo

1. common/cmd_mmc.cstatic int do_mmcinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]){     mmc = find_mmc_device(curr_device);     if (mmc) {          mmc_init(mmc);         

2015-01-26 01:00:52 1220

原创 bbb mmc驱动分析

1. drivers/mmc/host/omap_hsmmc.cstatic int __init omap_hsmmc_init(void){     /* Register the MMC driver */     return platform_driver_probe(&omap_hsmmc_driver, omap_hsmmc_probe);}stati

2015-01-26 00:39:06 1247

原创 bbb u-boot mmc总线初始化分析

1.  arch/arm/lib/ctr0.s.global _main_main:           bl board_init_f2.  arch/arm/lib/spl.cvoid __weak board_init_f(ulong dummy){     board_init_r(NULL, 0);}3. arch/arm/lib/

2015-01-26 00:00:02 2797

转载 linux中 probe函数的何时调用的?

linux中 probe函数何时调用的         所以的驱动教程上都说:只有设备和驱动的名字匹配,BUS就会调用驱动的probe函数,但是有时我们要看看probe函数里面到底做了什么,还有传递给probe函数的参数我们就不知道在哪定义(反正不是我们在驱动里定义的),如果不知道传递进的参数,去看probe函数总是感觉不求甚解的样子(你对系统不求甚解,系统也会对你的要求不求甚解的),心里

2015-01-25 20:49:45 651

转载 linux中probe函数传递参数的寻找(下)

linux中probe函数传递参数的寻找(下)         通过追寻driver的脚步,我们有了努力的方向:只有找到spi_bus_type的填充device即可,下面该从device去打通,当两个连通之日,也是任督二脉打通之时。先从设备定义去查看,在mach-smdk6410.c中定义了硬件设备信息,从这作为突破口。/* for mx25lx*/static void

2015-01-25 20:48:09 898

转载 linux中probe函数中传递的参数来源(上)

linux中probe函数传递参数的寻找(上)        上一篇中,我们追踪了probe函数在何时调用,知道了满足什么条件会调用probe函数,但probe函数中传递的参数我们并不知道在何时定义,到底是谁定义的,反正不是我们在驱动中定义的(当然,驱动中也不会定义设备的详细信息),但也不是在我们设备信息定义时的结构体。这就相当于武林绝学中只打通了任脉,而督脉还没打通,要想成为武林高手还差

2015-01-25 20:47:35 794

原创 bbb mmc_blk_probe 分析

bbb 的 emmc驱动在drivers\mmc\card\block.c,其mmc_dirver结构体如下,根据以往平台总线驱动模型的经验来看的话,内核里应该有mmc_devices结构体,并且其name也为"mmcblk",这样其probe函数将被调用,但是搜索整个内核文件并没有发现mmc_devices。现在我们分析一下mmc_blk_probe什么时候被调用。static

2015-01-25 20:18:04 2255

原创 bbb sdk6 ll_rw_block分析

ll_rw_block是文件系统对下访问实际的块设备驱动的接口,应用程序对实际文件(非设备文件)的操作,最终都是通过文件系统来调用ll_rw_block来操作实际的存储设备的。当然ll_rw_block的实际作用远非一个接口那么简单,他里面对维护了一个读写请求队列,并且对队列里读写请求进行了优化,比如,对机械硬盘来说,使用了电梯算法,对队列里的读写请求进行优化,排序,合并等操作,提高了

2015-01-25 17:41:42 1997

转载 linux中errno使用

当linux中的C api函数发生异常时,一般会将errno变量(需include errno.h)赋一个整数值,不同的值表示不同的含义,可以通过查看该值推测出错的原因,在实际编程中用这一招解决了不少原本看来莫名其妙的问题。但是errno是一个数字,代表的具体含义还要到errno.h中去阅读宏定义,而每次查阅是一件很繁琐的事情。有下面几种方法可以方便的得到错误信息  (1)void perro

2015-01-23 11:33:48 750

转载 信号中断 与 慢系统调用

1. 术语1.1. 慢系统调用(Slow system call)该术语适用于那些可能永远阻塞的系统调用。永远阻塞的系统调用是指调用永远无法返回,多数网络支持函数都属于这一类。如:若没有客户连接到服务器上,那么服务器的accept调用就会一直阻塞。慢系统调用可以被永久阻塞,包括以下几个类别:(1)读写‘慢’设备(包括pipe,终端设备,网络连接等)。读时,数据不存在

2015-01-22 16:25:07 639

转载 socket中的函数遇见EINTR的处理

这几天,写服务器代码过程当中,遇见EINRT信号的问题,我是借鉴 《unp 》,采用continue或者goto again循环解决的。但是感觉这个还是很有必要记录一下。网络上查找到的信息很多。下面是我查找到的和EINTR有关的介绍:1  http://blog.csdn.net/yanook/article/details/7226019  慢系统调用函数如何处理中断信号EINTR2  

2015-01-22 16:13:21 895

转载 移植ssh到arm

1. 下载需要的源码:    mkdir -p ~/arm/fs ;mkdir -p ~/arm/source    下载zlib:  wget -c http://www.zlib.net/zlib-1.2.3.tar.gz    下载ssl:  wget -c http://www.openssl.org/source/openssl-0.9.8d.tar.gz    下载ss

2015-01-18 16:48:00 624

转载 ubuntu开启SSH服务

SSH分客户端openssh-client和openssh-server如果你只是想登陆别的机器的SSH只需要安装openssh-client(ubuntu有默认安装,如果没有则sudo apt-get install openssh-client),如果要使本机开放SSH服务就需要安装openssh-serversudo apt-get install openssh-server

2015-01-18 14:17:55 703

原创 uboot 的i2c_read

int i2c_read(u8 dev,                     //i2c设备地址                   uint addr,                  //读i2c设备的数据起始地址,比如e2                   int alen,                    //e2的地址位数,0为8位,1为16位,2为32位

2015-01-18 00:23:02 2990

转载 Qt UDP的初步使用

为了使用Qt自带的Socket进行网络编程,先必须熟悉Socket编程的原理,另外还需对Qt一些基本类的操作比较熟悉。由于刚接触不久,所以还是以看人家的代码来学习。这次主要是学Qt下UDP的编程,且熟悉一些Qt下代码的编写流程,所以本文参照的是《Qt及Qt Quick开发实战精解》一书中的第5个例子:局域网聊天工具中的UDP聊天部分。     另外http://www.yafeilinux

2015-01-16 16:44:22 1346

原创 qt 初学

1.  qt4中没有setMainWidget函数,直接删除即可2.  找不到QtNetWork头文件,在pro文件中增加   QT += newwork

2015-01-15 18:10:56 713

转载 磁盘的磁道(Track)

写这篇文章,主要是为了解决长久以来的一个困惑。由此也可以看出偶以前确实不太聪明。 哈哈(虽然现在仍然还是)以前见到的很多磁道的示意图都是这样的:注意标线的位置,“指向一条线”,我当时的理解好像是这条线就是磁道。还有的解释是说磁道就是一个“同心圆”的集合那么,我的疑问就是,既然那条线是同心圆,那么两条线之间的那快空白是什么呀? 什么也不是? 空着的? 就是为了分开磁道?晕倒。

2015-01-10 22:32:30 1153

转载 两个有用的minicom命令

minicom执行后,一个屏幕显示的字符有限,如果需要查看之前的串口通讯记录,可以使用Ctrl-A B使用进入串口通讯记录查询模式。如果需要将minicom的串口通讯记录保存到某个文件,可以在minicom刚启动时用Ctrl-A L命令进入串口通讯捕捉模式。

2015-01-10 18:10:05 847

转载 linux中线程的挂起与恢复(进程暂停)

今天在网上查了一下linux中对进程的挂起与恢复的实现,相关资料少的可怜,大部分都是粘贴复制。也没有完整详细的代码。故自己整理了一下程序流程为:主线程创建子线程(当前子线程状态为stop停止状态),5秒后主线程唤醒子线程,10秒后主线程挂起子线程,15秒后主线程再次唤醒子线程,20秒后主线程执行完毕等待子线程退出。代码如下:#include#in

2015-01-08 14:16:46 1007

转载 Linux系统下UDP发送和接收广播消息小例子

// 发送端  #include   #include   #include   #include   #include   #include   #include   #include   #include       using namespace std;    int main()  {      setvbuf(stdout

2015-01-08 11:59:29 964

转载 gsoap使用心得! (win32)

最近换了个工作环境,现在在大望路这边上班,呵,刚上班接到的任务就是熟悉gsoap!废话少说,现在开始gSoap学习!gSOAP是一个夸平台的,用于开发Web Service服务端和客户端的工具,在Windows、Linux、MAC OS和UNIX下使用C和C++语言编码,集合了SSL功能。下载地址:http://sourceforge.net/projects/gsoap2

2015-01-05 13:48:14 1009

转载 Linux下gSOAP的使用 (c++)

1、下载gSOAP 在gSOAP官网中可以找到最新的gSOAP安装包以及相关的文档 gSOAP官网:http://www.cs.fsu.edu/~engelen/soap.html gSOAP下载地址:http://sourceforge.net/projects/gsoap2/files/2、安装gSOAP a、解压zip压缩包 命令:unzip gsoap_2.7.17.zip

2015-01-05 13:42:33 1513

转载 linux下gsoap的初次使用 (c)

这两天,接到一个项目,需要在linux程序中调用远程的web应用,通过soap协议。开始上网查了下资料,发现了gsoap库这个好东东^_^。继续在网上搜索例子代码,发现基本都不可编译通过,于是便一边学习一边写了这个最简单的例子,希望对后来者起到一点帮助。对gsoap的简单介绍,请自己参阅http://gsoap2.sourceforge.net/    下载相应的包,主要有

2015-01-05 13:41:40 1112 1

原创 解决bbb无法加载uImage问题

使用sdk6,emmc的烧写都完成后,uboot启动后,无法加载uImage。修改u-boot  am335x_evm.h的CONFIG_EXTRA_ENV_SETTINGS 环境变量设置将mmcdev=0改为1即可

2015-01-03 22:33:42 919

ucGUI学习笔记 -- 仿真器

ucGUI学习笔记 -- 仿真器 原创

2012-06-14

空空如也

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

TA关注的人

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