- 博客(40)
- 资源 (6)
- 收藏
- 关注
转载 位置无关代码(PIC)的思考
经过编译、汇编和链接后才变成可执行文件,在链接时,要对所有目标文件进行重定位(relocation),建立符号引用规则,同时为变量、函数等分配运行地址。当程序执行时,系统必须把代码加载到链接时所指定的地址空间,以保证程序在执行过程中对变量、函数等符号的正确引用,使程序正常运行。在具有操作系统的系统中,重定位过程由操作系统自动完成。 在设计Bootloader程序时,必须在裸机环境中进行,这时Bo
2014-08-26 16:53:07 640
转载 float和int相互转换
直接强制将float强制转换成int;最后一位丢失精度则 +0.5处理转:http://blog.csdn.net/slshelly/article/details/7260284串行通讯是以字节为单位进行传送的,对于浮点数和整型数都需要进行转换字节数组才能进行通讯。MCU和PC的浮点数都是基于IEEE754格式的。有4字节(float)、8字节(d
2014-08-23 20:01:14 12361 1
转载 什么是重定位?
【zuiha】6.1 存储器的基本概念 主存储器管理仍然是今天操作系统十分重要的内容;能否合理而有效的使用主存,在很大成度上反映了操作系统的性能,并直接影响到整个计算机系统作用的发挥。6.1.1 存储器的层次 目前在许多计算机系统中,采用三级存储器结构,即高速缓冲存储器、主存储器和外部存储器。三级存储器的比较 从高速缓存到外存,其容
2014-08-21 16:22:33 1301
转载 指令STMFD和LDMFD分析
可以指向不同的位置。栈指针指向栈顶元素(即最后一个入栈的数据元素)时称为FULL栈;栈指针指向与栈顶元素相邻的一个可用书局单元时称为EMPTY栈。数据栈的增长方向也可以不同。当数据栈向内存地址减小的方向增长时,称为Descending栈;当数据栈向内存地址增加的方向增长时,称为 Ascending栈综合上面两点,可以存在以下四种数据栈:FD - Full DescendingED
2014-08-18 10:50:19 963
转载 关于韦东山书上的裸机程序在mini2440上的运行
近来又开始学习韦东山书上的裸机驱动,在运行SDRAM中的代码的时候发现不能正确运行,当初下载的方法是通过mini2440自带的supervivi的d命令烧写程序。现在想想真是犯了很多错误。在韦东山的书上不止一次强调这些裸机程序要下载到nandflash上运行,但我都是通过supervivi的d命令来下载到SDRAM中运行,呵呵,能正常运行才怪。现在稍微总结下: 1.这些裸机程序是需
2014-08-17 23:14:21 1903 1
转载 S3C2440存储器扩展研究——剖析nWE, nWBE, nBE间关系
S3C2440存储器扩展研究——剖析nWE, nWBE, nBE间关系(2009-06-17 20:51:05)转载▼标签:s3c2440nwe 存储器扩展彻底研究——剖析nWE, nWBE, nBE三者之间的关系1.存储器扩展地址、数据线的连接方法重点参见2440手册,主要涉及地址对齐问题,较容易理解,此处不作论述。
2014-08-17 11:57:17 1095
转载 ARM的FP寄存器
分类: LINUX原文地址:ARM的FP寄存器 作者:chenxibing008ARM的FP寄存器说明。FP实际上就是R11寄存器,在APCS调用规则中,使用R11作为帧指针寄存器。C程序在编译过程中,通常将所有函数的局部变量都分配到一个连续的存储区中,而这个存储区存放于堆栈中,被称为函数的“存储帧”,通过一个指针访问,这个指针就是帧指针寄存器。
2014-08-16 16:43:10 867
转载 程序运行地址和加载地址-为什么使用位置无关指令
在嵌入式编程中,我们经常讲程序保存在 nand flash中。但是我们知道,nand flash的接口设计和 RAM 的接口设计是不一样的。他的 数据线通常都是复用的,所以通常存取都是以块为单位(nor flash带有RAM接口,有足够的地址线来寻址,所以可以访问内存中每一个字节) 这导致了,nand flash不可以片内执行程序(nor flash可以,因为他能存取内存每一个字节)
2014-08-15 15:12:27 692
转载 程序从片内地址0开始,但为什么链接地址又设0x30000000,那不就从0x30000000开始了,反汇编可以看到不是从0开始的
分类: 嵌入式硬件--裸机 2012-04-11 10:37 1592人阅读 评论(1)收藏举报汇编存储flash谢谢韦老大和独孤君韦老大回答:1. 裸板程序烧在FLASH上 一上电,肯定从0地址运行2. 但是,0地址要么对应NOR FLASH,要么对应只有4K的片内内存3. 程序要读写数据,或是程序大于4K,怎么办?4. 程序就要复制到
2014-08-15 12:11:46 2465
转载 如何两台电脑互联?
可以通过网线连两台电脑。设置两台电脑为同一个IP段,我也是好久以前试的。现在都用交换机或集线器了,但我想既然原理差不多,应该没问题。你试一下,不行的话站内联系
2014-08-15 08:07:27 2648
原创 单片机位段占用的字节
struct { volatile unsigned TR:1; //起停标志,0-停止运行,1-开始运行 volatile unsigned TF:1; //溢出标志,0-未溢出,1-溢出 volatile unsigned TV:14; //14位定时值}Timer; // 外存快被用完了,只能用内部的寄存器了
2014-08-14 18:14:32 1126
转载 利用一个硬件定时器实现多个虚拟定时器的两种方法
第一种方法比较适合单片机,第二种方法在 PC 上很有优势。1.固定周期法 使用一个硬件定时器进行固定周期(比如 1m s)定时,用一个结构体数组作为软定时器描 述表, 数组的结构体数就是最大虚拟定时器的数量, 每个结构体的成员都包括虚拟定时器状 态(空闲、激活、运行、超时触发、周期触发)、定时值(换算成定时周期数,例如 1m s 的硬 件定时周期, 现进行 125m s
2014-08-14 18:06:41 4625 1
转载 8位单片机中unsigned int的长度是多少
用C写程序,和单片机本身是几位单片机没有任何关系的。你定义了一个int 数据,内存就分配给它两个字节。所以int数据都是16位的。unsigned int 数据是无符号整形,最高位不表示符号,所以从0000,0000,0000,0000B------1111,1111,1111,1111B.即从0x0000----0xffff。如果化成10进制就是0---65535。如果单单是int 型数据,则最
2014-08-14 18:05:45 10163 3
转载 自己写的STM32 内存管理 实现了malloc,free,remalloc等函数
详细参考:http://www.openedv.com/posts/list/954.htm#这两天写的一个STM32上的内存管理函数,实现了malloc和free以及remalloc几个函数.还实现了一个内存使用率查询的函数.思路如下:将内存分块管理.内存池等分为固定大小的内存块.建立一个内存状态表,对应每个块,有多少个块,状态表就有多少个元素,一一对应.通过状态表的
2014-08-14 17:26:18 4883 1
转载 Source Insight建工程之Kernel
不管你是从事于Linux内核工作还是出于兴趣爱好,Linux内核源码都是非常好的学习资源。意味着就要经常的和内核源码大交道,那么软件工具就是少不了的。在Windows系统上确实有着许多好用的软件,这点还是可以肯定的。对于像内核这种复杂庞大的源码树,Source Insight工具便是非常适合且好用的了。那么怎样去管理Linux内核源码树呢?很明显Linux操作系统支持不同的体系结构的CPU,在/A
2014-08-14 14:58:31 516
转载 XP/WIN7电脑如何设置固定IP,图解说明
在使用网络版软件时,通常服务器建议设置为固定IP,通常小型的路由器或者交换机网络中,我们都是由路由器(交换机)动态分配IP地址,所以我们可以稍作修改,把电脑设置为固定IP。本说明文件按XP和Win7两种操作系统进行图示说明,注意,操作前,最好先看看当前网络的IP地址是如何分配的。1,如何查看当前电脑使用的IP地址进入命令行提示符,如下图,输入ipconfig命令
2014-08-14 11:55:51 1468
转载 vmware中的虚拟机和本地主机如何设置在同一网段
vmware中的虚拟机和本地主机如何设置在同一网段2014-04-02 15:27 匿名| 分类:操作系统/系统故障| 浏览102次就是能够相互ping通分享到:2014-04-02 16:44网友采纳把虚拟机的网络配置模式设置为“桥接”,再把虚拟机的 IP 地址设置成和主机同一网段的地址,如果防火墙有规则阻止
2014-08-14 10:46:13 6348
转载 实例讲解虚拟机3种网络模式(桥接、nat、Host-only)
前言很多人安装虚拟机的时候,经常遇到不能上网的问题,而vmware有三种网络模式,对初学者来说也比较眼花聊乱,今天我就来基于虚拟机3种网络模式,帮大家普及下虚拟机上网的背景知识。(博文原创自http://www.cnblogs.com/ggjucheng/archive/2012/08/19/2646007.html)虚拟机网络模式无论是vmware,virtual box
2014-08-14 10:22:42 563
转载 人生就是不断的选择
分类: 个人日志 2011-09-20 10:29 496人阅读 评论(0)收藏举报生活工作ibm微软面试创业 我们每天做的最多的事情,其实是选择,因此在谈职业生涯的时候不得不提到这个话题。 我始终认为,在很大的范围内,我们究竟会成为一个什么样的人,决定权在我们自己,每天我们都在做各种各样的选择,我可以不去写这篇文章,去别人的帖子拍拍砖头,也
2014-08-13 17:34:29 530
转载 Source Insight建工程之Uboot
Source Insight建工程之Uboot 分类: 好的工具 2011-09-04 20:07 4028人阅读 评论(0) 收藏 举报 includetree2010makefilefile 对于嵌入式学习经常就要和Uboot和内核打交道,Source Insight便是我认为非常好的源码查看工具。对于Uboot和内核源码的查看,它有着非常好的索引方式,且拥有非常方便的快捷键操作方式。对于庞大
2014-08-13 17:30:43 734
转载 nandflash下通过supervivi命令行实现挂载root_qtopia的NFS挂载
nandflash下通过supervivi命令行实现挂载root_qtopia的NFS挂载2013-03-31 22:57 304人阅读 评论(0)收藏举报 在嵌入式开发过程中经常涉及到qt图形界面的显示问题,如果每次都通过编译内核下载根文件系统就显得有点不方便,所以一个简单的方法就是使用NFS挂载root_qtopia文件系统。 第
2014-08-13 16:29:37 554
转载 adr和ldr的区别
同学们在学习ARM指令时,多数都会对adr和ldr这两个命令产生疑惑,那他们究竟有什么区别呢?其实这两个都是伪指令:adr是小范围的地址读取伪指令,ldr是大范围的读取地址伪指令。可实际上adr是将基于PC相对偏移的地址值或基于寄存器相对地址值读取的为指令,而ldr用于加载32为立即数或一个地址到指定的寄存器中。到这儿就会看到其中的区别了。如果在程序中想加载某个函数或者某个在联接时候指定的地址
2014-08-13 10:03:12 501
转载 SRAM与SDRAM的区别
SDRAM(Synchronous Dynamic Random Access Memory)同步动态随机存取存储器,同步是指Memory工作需要步时钟,内部的命令的发送与数据的传输都以它为基准;动态是指存储阵列需要不断的刷新来保证数据不丢失;随机是指数据不是线性依次存储,而是由指定地址进行数据读写。目前的168线64bit带宽内存基本上都采用SDRAM芯片,工作电压3.3V电压,存取速度高达7.
2014-08-13 08:38:46 470
转载 交叉编译详解
版本:v1.2Crifan Li摘要本文主要介绍了什么是交叉编译,为何要有交叉编译;解释了什么是工具链,什么是交叉工具链;详解解释了交叉编译器的名字的命名规则,以及如何获得交叉编译器,制作交叉编译器的各种工具,使用已有的交叉编译器和自己手动编译交叉编译器之间的对比;最后总结了交叉编译方面的心得和注意事项。本文提供多种格
2014-08-12 15:17:25 2860
转载 Linux 静态库与动态库搜索路径设置详解
1. 连接和运行时库文件搜索路径的设置 库文件在连接(静态库和共享库)和运行(仅限于使用共享库的程序)时被使用,其搜索路径是在系统中进行设置的。一般 Linux 系统把 /lib 和 /usr/lib 两个目录作为默认的库搜索路径,所以使用这两个目录中的库时不需要进行设置搜索路径即可直接使用。对于处于默认库搜索路径之外的库,需要将库的位置添加到库的搜索路径之中。设置库文件
2014-08-12 14:53:01 452
转载 error: field `list' has incomplete type的解决!:) [复制链接] 00
【yud】本贴的目的是帮比我还菜的小鸟遇到这个问题好解决些,写完这个我想在google或者baidu上搜partitions.h:61: error: field `list' has incomplete type这样的关键字,应该能找到这贴了吧.我今天在编译linux2.6.14.2的内核的时候,遇到了这个问题,但是在google和baidu上找,都是提
2014-08-10 21:08:44 9900
转载 关于编译报错“dereferencing pointer to incomplete type...
发表于2年前(2012-07-20 17:02) 阅读(7828) | 评论(3) 0人收藏此文章, 我要收藏赞0今天同事问了我一个问题,他make的时候报错,“第201行:dereferencing pointer to incomplete type”,我随即查阅了很多资料,也没看出个所以然。最后问题得到了解决,也懂得了原理,遂记录一下。他的问题具体是这
2014-08-10 21:01:49 1027
转载 2.1.2 System.map文件
《Linux系统架构与目录解析》第2章不同启动模式的目录,本章讲述操作系统或系统的应用方式不同,启动的模式可能都会不同,尤其现在Linux被应用的范围很广,已经没有人敢说某一个操作系统一定是通过硬盘启动,有可能是用一个硬盘、U盘或网络就可以进入Linux,而其中的差异就会牵涉到使用不同的Linux目录。本节为大家介绍System.map文件。AD:
2014-08-07 07:48:01 606
转载 System.map详解
system.map内容格式为:线性地址 类型 符号具体内容如下: 00100000 A phys_startup_32c0100000 T startup_32c0100000 A _text 注:表示内核代码第一个字节的地址c01000c6 t checkCPUtypec0100147 t is486c0100
2014-08-07 07:43:40 498
转载 Keil C51 uv2中sprintf打印char的问题
Keil C51 uv2中sprintf打印char的问题分类: 单片机 c语言 2012-04-24 11:07 2166人阅读 评论(3)收藏举报cbuffer测试在Keil C51 uv2中使用运行时库函数sprintf打印char类型变量时,使用%x或%d进行格式化时并没有出现希望的数字,而是多打印了一个字节。详细的问题描述和解决办法都在注释
2014-08-06 20:44:18 1693
转载 keil51下使用sprintf问题
测试环境:keil c51 + STC89C52说明:1.keil的不定参数只有15个字节也就是说sizeof(...) 加起来总共不能超过15字节,否则会出错 2.当不定参数中有常数时,你也会得不到你想要的结果,字符串除外 例: unsigned char count_sec=2, count_min=3, count_hour=4; xdata char buf[1
2014-08-06 11:22:24 12034 3
转载 51单片机实现scanf和printf函数
[置顶]分类: 单片机驱动程序2014-02-27 16:22 475人阅读 评论(0) 收藏 举报51单片机printfscanf源码高级应用最开始学习C语言时,使用printf和scanf进行格式化输入输出十分方便。学习单片机有很长时间了,之前要再屏幕上显示一个变量或者通过串口传出一些变量值观测的话,需要进行一系列的取余取整运算,很是麻烦。最近又研究了一
2014-08-05 20:26:13 3059 1
原创 国外推荐:计算机专业人士必读
国外大牛推荐:计算机专业人士必读好书(30本经典)分类:程序人生2014-04-11 23:17175人阅读评论(0)收藏举报计算机书籍1. 《代码大全》史蒂夫·迈克康奈尔 推荐数:1684 “优秀的编程实践的百科全书,《代码大全》注重个人技术,其中所有东西加起来,就是我们本能所说的“编写整洁的代码”。这本书有 50
2014-08-03 22:30:12 74731 4
转载 前辈大公司的面试,重点是他推荐我们应该看得那些书
前辈大公司的面试,重点是他推荐我们应该看得那些书分类: Farsight 笔试面试 C/C++ Linux2011-11-19 10:59 1172人阅读 评论(1) 收藏 举报面试数据结构算法linux编程linux内核应届生上泡了两年,一直都是下资料,下笔试题,面试题。一直都在感谢那些默默付出的人。写这个帖子花了我两个夜晚的时间,不是为了炫耀,只是为了能给那些“
2014-08-03 21:50:08 2266
转载 和时间拼命
分类: 人生哲理2011-01-16 11:56 163人阅读 评论(0) 收藏 举报体育matlab情感图形生活编程 我们常说:没吃过猪肉还没见过猪跑吗,没坐过飞机还没见过飞机飞吗! 还真有和这背道而驰的,你没有在清华园睡过觉吧?但是那里的草和广西的没多大差别,但是清华学子,那就真的不一样,人是怎么被逼出来的?我曾经说过,要是知道清华学子是怎么学习的,我肯定会惭愧得要死,看
2014-08-02 17:00:42 468
转载 毕业5年决定你的一生
分类: 人生哲理2011-01-16 00:37 346人阅读 评论(2) 收藏 举报工作生活任务创业转来这篇文章给大伙儿分享分享,写的挺实在的,希望大家2011有更多的收获。 有人工作, 有人继续上学,大家千万不要错过这篇文章,能看到这篇文章也是一种幸运,真的受益匪浅,对我有很大启迪,这篇文章将会改变我的一生,真的太好了,希望与有 缘人分享,也希望对有缘人有所帮
2014-08-02 16:59:15 497
转载 面对不断升级的内核,如何学习linux设备驱动
2013-02-28 10:39:06| 分类: 默认分类|举报|字号 订阅面对不断升级的linux内核、GNU开发工具、linux环境下的各种图形库,很多linux应用程序开发人员和linux设备驱动开发人员即兴奋,又烦躁。兴奋的是新的软件软件、工具给我提供了更强大的功能,烦躁的是适应新软件的特性、搭建新环境是一项非常繁琐的事情。本文想从以下3个方面探讨一下
2014-08-02 16:51:40 799 1
转载 RTC 学习
2013-01-22 11:53:04| 分类: 默认分类|举报|字号 订阅linux 2.6驱动采用了分层的设计思想。核心层实现了RTC设备的共同操作,而针对不同设备特定的操作放到下层来实现。针对linux-kernel-2.6.25.8内核版本,ARM-s3c2440。/drivers/rtcclass.c rtc-dev.c
2014-08-02 16:42:13 505
转载 关于ioremap,request_mem_region
分类: linux内核移植/驱动2009-10-21 10:06 8469人阅读 评论(13) 收藏 举报allocationstruct嵌入式io文章内容来自:http://blog.csdn.net/fudan_abc/archive/2007/10/04/1811451.aspx 以我们家 Intel 为代表的 i386 系列处理器中 , 内存和外部
2014-08-02 15:31:33 498
安全帽检测的完整代码
2023-11-17
TA创建的收藏夹 TA关注的收藏夹
TA关注的人