转: http://blog.ednchina.com/cheungman/34818/message.aspx  
   这个项目是我在S3C44B0上跑裸机(就是说不加操作系统,把S3C44B0当成超级单片机使用),通过驱动DS18B20采集温度数据并通过超级终端把温度显示出来。本人是把单片机下DS18B20驱动程序移植到S3C44B0来的,所以要特别注意时序问题,主要是注意S3C44B0的主频设置问题,我在程序设置了S3C44B0的主频为20MHz。

    这个项目的成功,是我学习ARM以来的一个伟大飞跃,我在QQ空间上写了一个日记,标榜为历史性的一天,可见其意义,此次成功,学习ARM我有了极大兴趣跟动力,算得上是踏进嵌入式的门槛,这也为我后来在uClinux下编写DS1820的驱动打下了基础。
点击在新窗口中浏览此图片
下载:DownLoad
后记:学习ARM,需要良好的单片机基础,这是一定的。






s3c2410的ds18b20驱动(基于linux-2.6.24.4内核)
http://blog.chinaunix.net/u1/57747/showart_1077782.html

ds18b20温度控制器
http://linrongwu.teeta.com/blog/data/131137.html

基于ARM的DS18B20的驱动程序
http://hi.baidu.com/%CA%F7%B4%FC%D0%DC%B5%C4%B4%F3%E8%F1%CA%F7/blog/item/df2d1709dee2ac84d1581bdc.html
   一妇女拿假钞去买早点,小贩恼了:“大姐,你给假钞也就算了,那起码是张印的,你这张钞票居然是画的!退一万步说,画的也就算了,你给画一张十块的、五块的行,你还给画张七块的!七块就七块吧,最起码也得画彩色的啊,居然用铅笔,算了,黑白就黑白的好了,可不能用手纸画啊!手感太差了,就算是手纸你也得用剪子把边剪齐了啊,这个用手撕的,毛边太夸张了,行,毛边我也忍了,可你也撕个长方型啊,这个三角型就太说不过去了;

这就是当时的假钞,哈哈:
点击在新窗口中浏览此图片

make search name=wget
找到wget的port目录,cd到那个目录:
# make install clean;rehash

tip:
第一次装时贪心都选了,结果被告知:
===> wget-1.11.2 GNUTLS and OPENSSL are mutually exclusive, enable at most one of them.
*** Error code 1

两者只能选其一,这时可以删除配置文件再重新安装就可以更改选项了:
# make rmconfig

# make&make install
或者:make install clean;rehash
// end

testsina# whereis wget
wget: /usr/local/bin/wget /usr/local/man/man1/wget.1.gz /usr/ports/ftp/wget
说明安装成功,su 到普通用户wget即可!一般来说已经添加到PATH变量了,如没有将/usr/local/bin/添加到环境变量PATH中即可!
后来发现更简单快捷的查找ports的方法:whereis wget
反安装:
===>   wget-1.11.2_1 is already installed
      You may wish to ``make deinstall'' and install this port again
      by ``make reinstall'' to upgrade it properly.
      If you really wish to overwrite the old port of ftp/wget
      without deleting it first, set the variable "FORCE_PKG_REGISTER"
      in your environment or the "make install" command line.



在 Redhat/Fedora 是预设安装好 wget,而 FreeBSD 则预设没有安装,要在文本模式下载文件很不便。在 FreeBSD 要安装 wget 很容易,只要使用 ports 就行了,方法如下:

cd /usr/ports/ftp/wget
make install clean

那么系统就会自动替你完成安装了。

或者使用命令

pkg_add -r wget就可以把wget安装上去了
ajax的基础实例,用于从数据库中检测动态检测用户名是否已经存在(php+mysql,其他只要在test.php程序上改成相应的语言就可以了!)阅读全文
http://www.souzz.net/html/svg/4/34019.html
http://www.souzz.net/html/svg/4/34019.html
http://okone96.itpub.net/post/9033/226326
http://bbs.xml.org.cn/dispbbs.asp?boardID=21&ID=65234
错误:
file_get_contents()   failed to open stream: Connection timed out in /data1/www/htdocs/app.space.sina.com.cn/fface/libs/feedsender.class.php

建议加上timeout,而不是让用户无限等待。
<?php

$ctx = stream_context_create(array(
    'http' => array(
        'timeout' => 1
        )
    )
);

file_get_contents("http://example.com/", 0, $ctx);

?>


当我们遇到文本文件体积很大时,比如超过几十M甚至几百M几G的大文件,用记事本或者其它编辑器打开往往不能成功,因为他们都需要把文件内容全部放到内存里面,这时就会发生内存溢出而打开错误,遇到这种情况我们可以使用PHP的文件读取函数file_get_contents()进行分段读取。
函数说明
string file_get_contents ( string $filename [, bool $use_include_path [, resource $context [, int $offset [, int $maxlen ]]]] )
和 file() 一样,只除了 file_get_contents() 把文件读入一个字符串。将在参数 offset 所指定的位置开始读取长度为 maxlen 的内容。如果失败,file_get_contents() 将返回 FALSE。
file_get_contents() 函数是用来将文件的内容读入到一个字符串中的首选方法。如果操作系统支持还会使用内存映射技术来增强性能。



如果针对较小文件只是希望分段读取并以此读完可以使用fread()函数



以上就是如何使用file_get_contents函数读取大文件的方法,超级简单。
堆(heap)和栈(stack)有什么区别??

简单的可以理解为:
heap:是由malloc之类函数分配的空间所在地。地址是由低向高增长的。
stack:是自动分配变量,以及函数调用的时候所使用的一些空间。地址是由高向低减少的。

预备知识—程序的内存分配阅读全文
#vi /root/sunwaylove.sh
ps -ax | grep -v grep | grep XXXXXX | cut -c1-6 |\
awk '{print $2}' |
if read pid;
then
   echo ${pid}
else
   XXXXXX > /dev/null 2>&1
fi


#crontab -e
1-59    *       *       *       *       /root/sunwaylove.sh

XXXXX 为你需要守护的进程名称,改脚本最好配合cron来执行,比如每1分钟判断一下进程是否存在不存则自动启动。该方法对僵尸进程不起作用。

僵尸进程:
http://www.bsdlover.cn/html/54/n-1054.html
在c语言中实现数组的动态增长
原理:在c语言中数组下标访问可以看成指针偏移访问
1、对表进行检查,看看它是否真的已满
2、如果表确实已满,使用realloc()函数扩展表的长度,
并进行检查,确保realloc()操作成功进行。
3、在表中增加所需要的项目。
代码如下:

int current_element=0;
int total_element=128;
char *dynamic=malloc(total_element);
char *ptr;

void add_element(char c)
{
if(current_element==total_element-1)
{
  total_element *=2;
  ptr=(char*)realloc(dynamic,total_element);
  if(ptr==NULL)
  {
   printf("can't expand the table!\n");
   return -1;
  }
  else
   dynamic=ptr;  
}
current_element++;
dynamic[current_element]=c;
}
注:在实践中,不要把realloc()函数的返回值直接赋给字符指针,
如果realloc()函数失败,它会使该指针的值变成NULL,这样就无法
对现有的表进行访问。
在 ITPub 论坛上,最近有朋友发起了一个"请列出你在从事DBA生涯中,最难以忘怀的一次误操作"话题讨论,如果有足够的耐心看下去的话,会发现很多误操作都是类似的,最上镜的就是这个操作系统级别的 "rm -f" / "rm -rf" 了。阅读全文
./server: error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory
解决办法:

ln -s /usr/local/lib/libevent-1.4.so.2 /usr/lib/libevent-1.4.so.2
或者安装libevent时指定目录 --prefix=/usr/lib
动态链接库是一种通用的软件组件技术,是多种操作系统中提供基本服务的方式。比如Win32内核就是3个DLL文件构成。这种技术在Linux操作系统下也有对应的实现,就是Linux标准对象Standard Ojbect,对应的文件扩展名为.so。阅读全文
路径在哪儿:
rpm -ql mysql-server-5.0.45-7.el5
阅读全文
结构体的定义:


typedef struct
{  
     char ip[30];    
     char usb[30];
}xiaoshou_cmd;



结构体的初始化:
    

xiaoshou_cmd *conf,tem;  
strcpy(tem.ip,"xiaoshou");    
printf("ip= %s\n",tem.ip);     strcpy(tem.usb,"xiaoshou");    
printf("ip= %s\n",tem.usb);
阅读全文
    守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待
    处理某些发生的事件。守护进程是一种很有用的进程。
    Linux的大多数服务器就是用守护进程实现的。比如,Internet服务器inetd,Web服务器httpd等。
    同时,守护进程完成许多系统任务。比如,作业规划进程crond,打印进程lpd等。

  守护进程的编程本身并不复杂,复杂的是各种版本的Unix的实现机制不尽相同,
    造成不同 Unix环境下守护进程的编程规则并不一致。
    需要注意,照搬某些书上的规则(特别是BSD4.3和低版本的System V)到Linux会出现错误的。
    下面结合一些前辈的文档和自己的例子说说守护进程的编程。阅读全文
作为Linux下的程序开发人员,大家一定都遇到过Makefile,用make命令来编译自己写的程序确实是很方便。一般情况下,大家都是手工写一个简单Makefile,如果要想写出一个符合自由软件惯例的Makefile就不那么容易了。

  在本文中,将给大家介绍如何使用autoconf和automake两个工具来帮助我们自动地生成符合自由软件惯例的Makefile,这样就可以象常见的GNU程序一样,只要使用“./configure”,“make”,“make instal”就可以把程序安装到Linux系统中去了。这将特别适合想做开放源代码软件的程序开发人员,又或如果你只是自己写些小的Toy程序,那么这个文章对你也会有很大的帮助。

  一、Makefile介绍

  Makefile是用于自动编译和链接的,一个工程有很多文件组成,每一个文件的改变都会导致工程的重新链接,但是不是所有的文件都需要重新编译,Makefile中纪录有文件的信息,在make时会决定在链接的时候需要重新编译哪些文件。

  Makefile的宗旨就是:让编译器知道要编译一个文件需要依赖其他的哪些文件。当那些依赖文件有了改变,编译器会自动的发现最终的生成文件已经过时,而重新编译相应的模块。

  Makefile的基本结构不是很复杂,但当一个程序开发人员开始写Makefile时,经常会怀疑自己写的是否符合惯例,而且自己写的 Makefile经常和自己的开发环境相关联,当系统环境变量或路径发生了变化后,Makefile可能还要跟着修改。这样就造成了手工书写 Makefile的诸多问题,automake恰好能很好地帮助我们解决这些问题。

  使用automake,程序开发人员只需要写一些简单的含有预定义宏的文件,由autoconf根据一个宏文件生成configure,由 automake根据另一个宏文件生成Makefile.in,再使用configure依据Makefile.in来生成一个符合惯例的 Makefile。下面我们将详细介绍Makefile的automake生成方法。阅读全文
面试结束前,若能够提出漂亮的关键问题,说不定,对方会因此而录用你!
  在面试结束前,大多数的主考官都会丢问题给求职者,最常见的就是:你有没有什么问题或疑问,想要提出来的?无论求职者是否有提出问题,其实,这个问题背后的真正含意,通常是主考官用来测试你对这份工作有多大的企图心、决心和热情。


  因此,如果你害怕发问不妥当,或是不知道该从何问起,甚至回答没有问题时,都很可能会让主考官认为,你想要这份工作的企图心、决心还不够强。阅读全文
分页: 261/339 第一页 上页 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 下页 最后页 [ 显示模式: 摘要 | 列表 ]