- 浏览: 128798 次
- 性别:
- 来自: 北京
-
最新评论
-
yangtaoxf126.com:
public class SimpleJDBC {
publ ...
oracle的sys用户怎么通过jdbc连接
文章列表
第一部分 Linux下ARM汇编语法尽管在Linux下使用C或C++编写程序很方便,但汇编源程序用于系统最基本的初始化,如初始化堆栈指针、设置页表、操作 ARM的协处理器等。初始化完成后就可以跳转到C代码执行。需要注意的是,GNU的汇编器遵循AT&T的汇编语法,可以从GNU的站点(www.gnu.org)上下载有关规范。
一. Linux汇编行结构
任何汇编行都是如下结构:
[:] [} @ comment
[:] [} @ 注释
Linux ARM 汇编中,任何以冒号结尾的标识符都被认为是一个标号,而不一定非要在一行的开始。
【例1】定义一个"add"的函数,返回 ...
arm-linux-gcc -wall -O2 -c -o $@ $<
-o 只激活预处理,编译,和汇编,也就是他只把程序做成obj文件
-Wall 指定产生全部的警告信息
-O2 编译器对程序提供的编译优化选项,在编译的时候使用该选项,可以使生成的执行文件的执行效率提高
-c 表示只要求编译器进行编译,而不要进行链接,生成以源文件的文件名命名但把其后缀由 .c 或 .cc 变成 .o 的目标文件
-S 只激活预处理和编译,就是指把文件编译成为汇编代码
arm-linux-ld
直接指定代码段,数据段,BSS段的起始地址
-Ttes ...
如果用一句话讲清楚arm-linux-gcc和arm-elf-gcc的区别的话,如何来说呢?
arm-linux-gcc是针对arm + linux的开发环境的,kernel使用的是linux,不是uclinux,arm是有硬件MMU的。
而arm-elf-gcc是针对no MMU arm + uclinux的开发环境,kernel使用的是uclinux,硬件是廉价的无MMU的arm芯片。
arm-linux-gcc倒是有点类似X86 PC环境下的linux开发。
lf:executable and linkable format,bin就是binary,elf是一个可执行文件,但是里面的地址需要进行重定向,在基于arm的嵌入式系统中“可能”没有地址重定位的功能,地址必须是事先定位好了的,因此需要从elf文件中生产一个bin文件,这个bin文件中的地址就是固定的了
,不需要再进行重定位,虽说在bin文件中,对一些地址进行了填0,但是毕竟没有重定位的符号,可能回避elf文件小写,而且肯定比用于调试的elf文件小,在用bootloader将bin文件拷贝到内存后,便从某一个地址开始运行,没有地址重定位的说法了。
那么在用trace32仿真器时,要下载一个e ...
一位大师级的人物写的,不看要后悔的哟!!
LINUX启动过程
首先,porting linux的时候要规划内存影像,如小弟的系统有64m SDRAM,
地址从0x 0800 0000 -0x0bff ffff,32m flash,地址从0x0c00 0000-0x0dff ffff.
规划如下:bootloader, linux kernel, rootdisk放在flash里。
具体从 0x0c00 0000开始的第一个1M放bootloader,
0x0c10 0000开始的2m放linux kernel,从 0x0c3 ...
[size=large][/size] USB协议简介 收藏
http://blog.csdn.net/menuconfig/archive/2008/07/29/2729278.aspx
USB协议简介
USB是一种协议总线,即主机与设备之间的通信需要遵循一系列约定。协议内容较多,这里仅作一些简单介绍,深入学习,可参看USB规范(WWW.usb.org)。
为了理解协议中的名称,先看图10.32。该图突出了主机上的客户软件和USB逻辑设备(编程涉及的设备)之间的通信流(Communication Flow),该通信流跨越了USB驱动程序USBD、主控制器驱动程序UHCD ...
luckygirl 发表于 2009-7-11 23:43:00
http://blog.csdn.net/menuconfig/archive/2008/10/24/3130403.aspx
USB 基本知识(转)
USB的重要关键字:
1、端点:位于USB设备或主机上的一个数据缓冲区,用来存放和发送USB的各种数据,每一个端点都有惟一的确定地 ...
#define 并不是定义变量, 只是用来做文本替换
例如:
#define PI 3.1415926
float angel;
angel=30*PI/180;
那么,当程序进行编译的时候,编译器会首先将 “#define PI 3.1415926”以后的,所有代码中的“Pi”全部换成 “3.1415926”
然后再进行编译。
我查到一个讲const与#define的差别的帖子,里面谈到const与#define最大的差别在于:前者在堆栈分配了空间,而后者只是把具体数值直接传递到目标变量罢了。或者说,const的常量是一个Run-Time的概念,他在程序中确确实实的存在并可以被调用 ...
二.单项选择题:
1. 下面的网络协议中,面向连接的的协议是: A 。
A 传输控制协议 B 用户数据报协议 C 网际协议 D 网际控制报文协议
2. 在/etc/fstab文件中指定的文件系统加载参数中, D 参数一般用于CD-ROM等移动设备。
A defaults B s ...
linux面试题参考答案 一.填空题:
1. 在Linux系统中,以 文件 方式访问设备 。
2. Linux内核引导时,从文件 /etc/fstab 中读取要加载的文件系统。
3. Linux文件系统中每个文件用 i节点 来标识。
4. 全部磁盘块由四个部分组成,分别为引 ...
检查一下主机的NFS服务是否正常工作,可以重启一下nfs服务:sudo /etc/init.d/portmap restart
要是还不行的话,重新安装一遍nfs服务试试
在移植cs89x0后,就一直碰到如下这个问题:
nfs: server 192.168.10.1 not responding
nfs: server 192.168.10.1 not responding
nfs: server 192.168.10.1 OK
……
嵌入式系统要经过很多次很长时间的尝试才能挂上。初步怀疑是NFS配置的问题,后来猜测可能是由于cs8900a丢包严重造成的。
在nfs fa ...
http://blog.sina.com.cn/s/blog_45ef163d0100dx83.html###
远程调试环境由宿主机GDB和目标机调试stub共同构成,两者通过串口或TCP连接。使用 GDB标准程串行协议协同工作,实现对目标机上的系统内核和上层应用的监控和调试功能。调试stub是嵌入式系统中的一段代码,作为宿主机GDB和目标机调试程序间的一个媒介而存在。
就目前而言,嵌入式Linux系统中,主要有三种远程调试方法,分别适用于不同场合的调试工作:用ROM Monitor调试目标机程序、用KGDB调试系统内核和用gdbserver调试用户空间程序。这三种调试方法的区别主要在于,目 ...
原文地址:http://hi.chibaole.com/blog/2009/12/16/%E5%9C%A8ubuntu%E4%B8%8B%E5%AE%89%E8%A3%85git/
#安装git核心
sudo apt-get install git-core
#安装git gui
sudo apt-get install git-gui
#安装git doc
sudo apt-get install git-doc
#安装git-svn
sudo apt-get install git-svn
#安装git-cvs
sudo apt-get install git-cvs
#安装gitweb
...
今日根据《Mini2440_Linux移植开发实战指南》一文进行nandflash驱动
的移植出现了不少问题。不知道是我操作失误还是该文编写出现错漏导致的。
首先按照步骤修改相关信息之后执行make zImage出现了不少错误:
其中有代表性的错误如下:
arch/arm/mach-s3c2440/mach-mini2440.c:189: error: array type has incomplete element type
arch/arm/mach-s3c2440/mach-mini2440.c:190: error: array index in non-array i ...
gdb+gdbserver总体介绍
远程调试环境由宿主机GDB和目标机调试stub共同构成,两者通过串口或TCP连接。使用 GDB标准程串行协议协同工作,实现对目标机上的系统内核和上层应用的监控和调试功能。调试stub是嵌入式系统中的一段代码,作为宿主机GDB和目标机调试程序间的一个媒介而存在。
就目前而言,嵌入式Linux系统中,主要有三种远程调试方法,分别适用于不同场合的调试工作:用ROM Monitor调试目标机程序、用KGDB调试系统内核和用gdbserver调试用户空间程序。这三种调试方法的区别主要在于,目标机远程调试stub 的存在形式的不同,而其设计思路和实现方法则是大致相同的。
...