在路上...

The development of life
我们一直都在努力,有您的支持,将走得更远...

站内搜索: Google

  :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2009年11月20日

摘要: gdb-6.6使用了autoconf/automake,因此通过设置configure脚本的--target,--host,--prefix参数就可以方便的移植到别的平台。--target指定编译后的文件针对的是什么目标板,一般设置为交叉编译器的前缀,比如--target=arm-linux, --target=mips-linux,--target=armv5-linux-uclibc, --t... 阅读全文
posted @ 2009-11-20 14:51 palam 阅读(1297) 评论(0) 推荐(0) 编辑

摘要: 使用gdbserver远程调试 1.默认crosstool交叉编译器没有自带gdbserver,需要自行编译 到GNU官方FTP下载,目前最新版的是gdb-6.7.1下载地址:http://ftp.gnu.org/gnu/gdb/ 注:若已有gdbserver,可以直接跳到步骤4 2.编译gdbserver编译GDB源码时只需要编译出gdbserver就可以了,交叉编译器自带arm-linux... 阅读全文
posted @ 2009-11-20 14:20 palam 阅读(6360) 评论(0) 推荐(0) 编辑

摘要: 使用gdbserver是在arm环境中调试程序的有效手段。经过单步调试可以更好的了解程序的执行。 需要的环境。 gdbserver:运行于arm平台。 armv4l-unknown-linux-gdb:运行于host平台,也就是开发环境(PC)。 使用步骤。 在arm上执行 gdbserver 10.191.2.152:5000 a.out // 输入 Process a.out created;... 阅读全文
posted @ 2009-11-20 14:17 palam 阅读(608) 评论(0) 推荐(0) 编辑

2009年11月19日

摘要: 1. 安装标准的C开发环境,由于Linux安装默认是不安装的,所以需要先安装一下(如果已   经安装好的话,就可以免去这一步了):  #sudo apt-get install gcc g++ libgcc1 libg++ make gdb2. 下载arm-linux-gcc-3.4.1.tar.bz2到任意的目录下,我把它下载到了我的个人文件夹   里 /home/wrq  arm-linux-... 阅读全文
posted @ 2009-11-19 16:45 palam 阅读(3004) 评论(0) 推荐(0) 编辑

摘要: undefined reference to '__ctype_b' 阅读全文
posted @ 2009-11-19 15:36 palam 阅读(2365) 评论(0) 推荐(0) 编辑

2009年9月17日

摘要: wait是Object类的方法,sleep与yield都是Thread类的方法。wait调用的时候需要注意的是该方法是释放锁标志的,而sleep在调用的时候是紧紧抱着锁标志的,也就是等他完全执行完成了才可以让其他线程来访问的sleep 方法使当前运行中的线程睡眼一段时间,进入不可运行状态,这段时间的长短是由程序设定的,yield 方法使当前线程让出 CPU 占有权,但让出的时间是不可设定的。实际上... 阅读全文
posted @ 2009-09-17 16:44 palam 阅读(568) 评论(0) 推荐(0) 编辑

摘要: 多线程中,线程需要暂停的原因多种多样,基本分为两大类,1是等待数据,2是系统资源紧张,停止计算以把资源让给其他线程.一般初学者会使用的方法就是使用SuspendThread和ResumeThread这两个API或者他们的包装函数进行操作,许多教材上都是这么说的,但这么作会带来及其严重的问题。 阅读全文
posted @ 2009-09-17 16:42 palam 阅读(2084) 评论(0) 推荐(0) 编辑

2009年9月6日

摘要: 名称:sscanf() - 从一个字符串中读进与指定格式相符的数据. 函数原型:Int sscanf( string str, string fmt, mixed var1, mixed var2 ... );int scanf( const char *format [,argument]... ); 说明:sscanf与scanf类似,都是用于输入的,只是后者以屏幕(stdin)为输入源,前者... 阅读全文
posted @ 2009-09-06 23:33 palam 阅读(267) 评论(0) 推荐(0) 编辑

摘要: //led.c#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <sys/ioctl.h>int main(int argc, char **argv){int on;int led_no;int fd;/* 检查led控制的两个参数,如果没有参数输入则退出。*/if (... 阅读全文
posted @ 2009-09-06 23:32 palam 阅读(386) 评论(0) 推荐(0) 编辑

摘要: 这两个功能的实现都是通过设置启动脚本来实现的。启动脚本的一般存放路径是 /etc/init.d/rcS (rcS即脚本文件),自启动应用程序一般放置于 /etc/rc.d/init.d 目录下。 我们需要用vi命令对rcS进行编辑,当然也可以通过其他方式对其进行覆盖。 在脚本中自启动应用程序示例:#各种服务程序/etc/rc.d/init.d/netd start #telnet/ftp 服务/e... 阅读全文
posted @ 2009-09-06 23:30 palam 阅读(3197) 评论(0) 推荐(0) 编辑

摘要: 最近在做一个移植UCOS-II的任务,遇到了semihosting的问题,现在把这个问题的解决办法总结一下。 Step 1 : 用#pragma import(__use_no_semihosting_swi)保证用户程序不调用semihostSWI; 此后,link时会有 Error :L6200E:Symbol __semihosting_swi_guard multiply defined ... 阅读全文
posted @ 2009-09-06 23:29 palam 阅读(1004) 评论(0) 推荐(0) 编辑

摘要: 与传统的4/8位单片机相比,ARM的性能和处理能力当然是遥遥领先的,但与之相应,ARM的系统设计复杂度和难度,较之传统的设计方法也大大提升了。本文旨在通过讨论系统程序设计中的几个基本方面,来说明基于ARM的嵌入式系统程序开发的一些特点,并提出和解决了一些常见的问题。  本文分成几个相对独立的专题陆续刊载。  (一) 嵌入式程序开发基本概念  (二) 系统的初始化过程  (三) 如何满足嵌入式系统的... 阅读全文
posted @ 2009-09-06 23:28 palam 阅读(731) 评论(0) 推荐(0) 编辑

摘要: Devfs,也叫设备文件系统(Device Filesystem),设计它的唯一目的就是提供一个新的(更理性的)方式管理通常位于 /dev 的所有块设备和字符设备。您也许知道,典型的 /dev 树包含数百个块特殊文件和字符特殊文件,它们全都在根文件系统上。每个特殊文件都可以让用户空间进程轻松地与内核设备实现交互。举例来说,通过对这些特殊文件执行操作,您的 X 服务器就能够访问视频硬件, fsck 可以执行文件系统检验, lpd 可以通过并行端口向打印机发送数据。 阅读全文
posted @ 2009-09-06 23:28 palam 阅读(332) 评论(0) 推荐(0) 编辑

摘要: //4led.c#include <linux/config.h>#include <linux/module.h>#include <linux/kernel.h>#include <linux/init.h>#include <linux/miscdevice.h>#include <linux/sched.h>#incl... 阅读全文
posted @ 2009-09-06 23:27 palam 阅读(267) 评论(0) 推荐(0) 编辑

摘要: 2.4内核引入优点:设备初始化时在/dev下创建设备文件,卸载时候删除可以指定设备名,所有者,权位,可以不需要分配主设备号static devfs_handle_t devfs_handle;static int __init xxx_init(void){int ret;int i;ret = register_chrdev(XXX_MAJOR,DEVICE_NAME, &xxx_fop... 阅读全文
posted @ 2009-09-06 23:25 palam 阅读(374) 评论(0) 推荐(0) 编辑