摘要: 转自:http://www.ibm.com/developerworks/cn/linux/l-dynlink/index.html一个程序要想在内存中运行,除了编译之外还要经过链接和装入这两个步骤。从程序员的角度来看,引入这两个步骤带来的好处就是可以直接在程序中使用 printf和errno这种有意义的函数名和变量名,而不用明确指明printf和errno在标准C库中的地址。当然,为了将程序员从早期直接使用地址编程的梦魇中解救出来,编译器和汇编器在这当中做出了革命性的贡献。编译器和汇编器的出现使得程序员可以在程序中使用更具意义的符号来为函数和变量命名,这样使得程序在正确性和可读性等方面都得到 阅读全文
posted @ 2010-12-30 15:31 赤子之心 阅读(214) 评论(0) 推荐(1) 编辑
摘要: 最近摆弄2440开发板,想要研究printf的实现。google一下,发现结果不能令人恭维,几乎无一例外的在谈论C语言的可变参数,对其他的关键问题却只字不提。所以我想写这篇文章,记录一下自己的学习经历,也希望能够给其他人带来一些启发。 早在大学二年级学习C语言的时候,在Turbo C下写程序。printf,一个小黑框显示一些数字,诶!感觉很奇妙,但至于更深层的东西,虽然有疑问,但能力有限,因此没有... 阅读全文
posted @ 2010-12-14 16:37 赤子之心 阅读(2080) 评论(0) 推荐(0) 编辑
摘要: 开发环境 * 主 机:VMWare--Fedora 9 * 开发板:Mini2440--64MB Nand, Kernel:2.6.30.4 * 编译器:arm-linux-gcc-4.3.2上接:S3C2440上LCD驱动(FrameBuffer)实例开发详解(一)四、帧缓冲(FrameBuffer)设备驱动实例代码:①、建立驱动文件:my2440_lcd.c,依就是驱动程序的最基本结构:FrameBuffer驱动的初始化和卸载部分及其他,如下:#include #include #include #include #include #include #include #include # 阅读全文
posted @ 2010-12-13 20:23 赤子之心 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 一、开发环境 * 主 机:VMWare--Fedora 9 * 开发板:Mini2440--64MB Nand, Kernel:2.6.30.4 * 编译器:arm-linux-gcc-4.3.2二、背景知识1. LCD工作的硬件需求: 要使一块LCD正常的显示文字或图像,不仅需要LCD驱动器,而且还需要相应的LCD控制器。在通常情况下,生产厂商把LCD驱动器会以COF/COG的形式与LCD玻璃基板制作在一起,而LCD控制器则是由外部的电路来实现,现在很多的MCU内部都集成了LCD控制器,如S3C2410/2440等。通过LCD控制器就可以产生LCD驱动器所需要的控制信号来控制STN/TFT 阅读全文
posted @ 2010-12-13 20:21 赤子之心 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 汇编语言与C语言混合编程技术ARM体系结构支持ARM的汇编语言与C与C++的混合编程。在一个完整的程序设计的中,除了初始化部分用汇编语言完成外,其大部分的编程任务一般都用C或C++完成。汇编程序中访问C程序变量1在汇编的源程序中调用C语言风格的字符串需要使用IMPORT伪操作。IMPORT相当于C语言中的extern关键字,告诉编译器引用的符号不是在本文件中定义的,而是在其他的源文件中定义的。伪操作的格式 :IMPORT symbol [,WEAK]symbol是声明的符号的名称;[,WEAK]指示编译器如果发现symbol在所有的源文件中都没有找到,那么它也不会产生任何的错误信息。示例见下页 阅读全文
posted @ 2010-12-08 17:04 赤子之心 阅读(1056) 评论(0) 推荐(0) 编辑
摘要: 语言位运算符:与、或、异或、取反、左移和右移位运算是指按二进制进行的运算。在系统软件中,常常需要处理二进制位的问题。C语言提供了6个位操作运算符。这些运算符只能用于整型操作数,即只能用于带符号或无符号的char,short,int与long类型。C语言提供的位运算符列表:运算符 含义 描述& 按位与 如果两个相应的二进制位都为1,则该位的结果值为1,否则为0| 按位或 两个相应的二进制位中只要有一个为1,该位的结果值为1^ 按位异或 若参加运算的两个二进制位值相同则为0,否则为1~ 取反 ~是一元运算符,用来对一个二进制数按位取反,即将0变1,将1变0 左移 用来将一个数的各二进制位全部左 阅读全文
posted @ 2010-12-08 10:17 赤子之心 阅读(722) 评论(0) 推荐(0) 编辑
摘要: 在U-Boot源码的start.s中有着如下红色部分语句:.globl _start_start: b start_code ldr pc, _undefined_instruction ldr pc, _software_interrupt ldr pc, _prefetch_abort ldr pc, _data_abort ldr pc, _not_used ldr pc, _irq ldr pc, _fiq_undefined_instruction: .word undefined_instruction_software_interrupt: .word software_inte 阅读全文
posted @ 2010-12-07 09:05 赤子之心 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 实验一:LED_ONled_on.s只有7条指令,它只是简单地点亮发光二极管LED1,本实验的目的时让您对开发流程有几个基本概念。实验步骤:A.进入LED_ON目录,执行make命令生成可执行文件led_on。B.把PC的USB通过USB转串口和开发板的串口链接起来,上电。C.启动UBOOT之后,通过tftp 0x30000000 led_on下载程序到SDRAM中D.使用go 0x30000000命令跳转到led_on处执行,可以看到程序结果程序源代码led_on.s.text.global _start_start: LDR RO,=0x56000010 @R0为GPBCON寄存器,此寄存 阅读全文
posted @ 2010-12-06 10:56 赤子之心 阅读(258) 评论(0) 推荐(1) 编辑
摘要: Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 使用minicom实现PC和开发板传送文件虚拟机—&--FL2440作者:朱志强 嵌入式开发新手群:24186983 题记:很多的电脑都没有超级终端,电脑中安装了那么多东西,一时间重装系统,没有那个必要。单独安装超级终端我也试过,就是不成功,还差点把xp系统给弄坏了。所以我就想换个方式使PC可以和开发板互通并传送文件。在网上找到了,就是lrzsz,它包括了x/y/zmodem。它可以在minicom下实现文件传送。下面是我的一些步骤:Linux下的minic 阅读全文
posted @ 2010-12-06 08:46 赤子之心 阅读(2048) 评论(0) 推荐(1) 编辑
摘要: (摘)Qt之数据库编程 孔令春 posted @ 2009年10月30日 09:33 in Qt 技术with tags QtSql模块 , 1876 阅读 摘自:《C++ Gui Qt4编程》在Qt中,实现与数据库编程相关的模块是QtSql模块,该模块提供了一组与平台以及数据库种类无关的SQL数据库访问接口。此接口通过驱动程序与各种数据库进行通信。Qt桌面版提供的驱动程序如下:驱动程序数据库QDB2IBM DB2 7.1版以及更高版本QOCI甲骨文OracleQODBCODBC(包括微软公司的SQL服务器)QMYSQLMySQLQPSQLPostgreSQL的7.3版以及更高级的版本一、连接 阅读全文
posted @ 2010-12-05 09:43 赤子之心 阅读(164) 评论(0) 推荐(0) 编辑