嵌入式
thinkandchange
这个作者很懒,什么都没留下…
展开
-
pthread_exit函数
pthread_exit函数 原型:void pthread_exit(void *retval) 用法:#include 功能:使用函数pthread_exit退出线程,这是线程的主动行为;由于一个进程中的多个线程是共享数据段的,因此通常在线程退出之后,退出线程所占用的资源并不会随着线程的终止而得到释放,但是可以用pthread_join()函数转载 2013-10-27 22:53:02 · 1617 阅读 · 0 评论 -
tiny6410裸机实验第5章--------------DDR(代码重定位)
【说明】 前面我们说过,NAND启动的时候,6410会把NAND中前4页每页2KB(而不是前8KB,这里很多人理解错)复制到片内内存中,从物理地址0开始运行,那我们就有个问题了,如果我们的程序超过8KB怎么办?显然超过8KB的部分不会复制进片内内存,那超过8KB的部分在哪运行呢?这就是这节的要介绍的,代码重定位。【DDR】转载 2014-05-11 16:58:14 · 893 阅读 · 0 评论 -
tiny6410裸机实验第5章--------------DDR(初始化原理)
【说明】 前面我们介绍了地址相关的一些概念以及地址无关码的概念,我们知道了,当程序超过了8KB的时候,我们得把程序复制到DDR中运行,但是,DDR要使用是要先初始化的。6410带有DRAM控制器,它在初始化之后可以让我们对DDR的访问变得十分方便。。。这里我们要初始化2个东西,也就是DRAM控制器,以及DDR本身。在这之前,大家如果对于DDR参数不太熟悉,可以转载 2014-05-11 17:17:17 · 2266 阅读 · 0 评论 -
tiny6410裸机实验第5章--------------DDR初始化等(代码)
【说明】 根据上一节介绍的原理,很容易写出DDR的初始化代码,这节附上代码,包括代码重定位,以及初始化DDR。 【初始化DDR】 common.h...包含了一些通用宏定义 [cpp] view plaincopy#ifnd转载 2014-05-11 17:19:12 · 1144 阅读 · 0 评论 -
tiny6410裸机实验第5章--------------DDR(物理地址,链接地址,虚拟地址,地址无关码)
【说明】 在后面的学习中,我们将遇到链接地址概念以及一种称为链接脚本的文本文件,那么什么是链接地址呢,他和我们的物理地址又有什么关系呢。 其实链接的技术细节十分复杂,我的另一系列博文中有关于链接的学习笔记,大家可以看看,那是对《程序员的自我修养》这本书的笔记,也推荐大家看这本书。 【物理地址】转载 2014-05-11 16:31:24 · 836 阅读 · 0 评论 -
DDR(链接脚本),lds文件浅析
【说明】 前面我们对链接的过程没有进行控制,我们在makefile中直接指定链接地址从0开始,这是因为6410如果是nand启动会把nand 前4页,每页2KB复制到片内内存中,片内内存地址从0开始,这里0指的是物理地址,所以我们的链接地址就会等于物理地址,程序就可以在片内内存正常运行,这一节我们学习一下利用所谓的链接脚本对链接进行控制,其实即使是默认的链接过程也是转载 2014-05-11 16:41:01 · 869 阅读 · 0 评论 -
《micro2440开发》第七章:micro2440从NAND FLASH启动原理分析
=====================================================================================接上:《micro2440开发》第一章:S3C2440A地址空间ARM是不能直接从NAND FLASH启动的,这包括两层意思: 其一、ARM刚启动时不能直接获得NAND FLASH上存储的程序;因为对NA转载 2014-05-12 11:47:59 · 629 阅读 · 0 评论 -
第十一章:S3C6410地址空间
====================================================================================================================================一、S3C6410地址空间整体说明 S3C6410基于32位的ARM11内核(ARM是按字节(每一个字节都有地址)寻址转载 2014-05-12 14:11:49 · 1171 阅读 · 0 评论 -
tiny6410裸机实验第6章--------------NAND(初始化原理)
【说明】 在地5章我们初始化了DDR并且进行了代码的重定位,但是注意!我们前面的重定位其实是假的,我们只过是把代码从片内内存复制到DDR中!因为我们的NAND 还没有初始化,而完整的程序在NAND FLASH中,所以我们当时没办法将完整程序复制到内存中,之所以进行了重定位是为了理解重定位的过程而已!这一章我们就来初始化NAND FLASH并且真正的实现从NAND F转载 2014-05-12 11:21:37 · 715 阅读 · 0 评论 -
S3C6410启动模式介绍
目前的ARM处理器都支持多种启动模式,S3C6410和以前的Samsung的ARM处理器一样,通过外部管脚OM[4:0]的拉高拉低来决定是从哪个存储设备上启动。我认为S3C6410的User Manual并没有说的很清楚,所以我在最开始使用的时候,也对其启动模式有一些误解,下面就我个人的理解,介绍一下S3C6410的启动。 先读一下S3C6410 User Manual的第3章 Syste转载 2014-05-12 14:00:33 · 716 阅读 · 0 评论 -
《tiny6410裸机程序》第六章:myled通过usb下载至nandflash不能运行
====================================================================================================================================一、前期准备1.开发板必须在SD卡启动模式!2.安装usb下载驱动,安装rs232 to usb驱动。3转载 2014-05-12 14:20:08 · 852 阅读 · 0 评论 -
Ubuntu 下使用Eclipse编译、调试嵌入式程序的方法(下)
/************************************************转载请注明出处:风之书:http://xubing.cnblogs.com************************************************/这篇文章将分成3部分:第一步:安装arm-linux-gcc第二步:安装、配置Ec转载 2014-04-07 23:05:09 · 729 阅读 · 0 评论 -
DNW使用和常见问题
在使用2410开发板进行开发过程中,DNW是一个经常使用到的工具,这个工具可以实现上传下载文件,烧写文件,运行映像等功能。用户在第一次使用时往往因为不熟悉一些操作的细节,从而出现一些问题。下面把这些问题归纳一下:DNW可以通过USB口把文件下载到板子上,但是第一次使用时,必须在PC机上安装和2410 USB HOST进行通讯的USB驱动,该驱动文件位于光盘的“USB驱动”文件夹内,驱动文件名为se转载 2014-04-07 22:24:26 · 651 阅读 · 0 评论 -
Linux下arm裸机开发环境搭建与实例
折腾了很长时间,总算是弄明白怎么在linux编译运行arm裸机程序了。编译运行arm裸机程序可以考虑用arm工具链搭建编译环境,由minicom和dnw来下载程序,至于调试,还没有去耐心研究,着急来这里先备份一下,免得时间久了,忘记怎么回事。首先是arm工具链,arm工具链的编译我就不写了,一方面很麻烦,另一方面是这方面的资料网上已经有很多了,我就不在这里多言浪费大家时间了。我这里有自己编转载 2014-04-07 20:38:55 · 823 阅读 · 0 评论 -
【裸机开发笔记】6410的系统时钟设置(下)---几个常用函数的C源码。
//common.h转载 2014-05-06 21:43:41 · 680 阅读 · 0 评论 -
【裸机开发笔记】6410的系统时钟设置(上)---6410时钟控制逻辑框架分
本文主要介绍6410内核和AHB、APB总线的时钟设置。 6410的时钟逻辑结构还是比较清晰的,配置起来并不难(曾让笔者极度抓狂的是Freescale Kinetis系列的片子,系统时钟配置起来很麻烦,有好多种时钟模式)。下面先来看一下6410的时钟构成。这里可以看到,6410的时钟控制逻辑主要产生三个重要的CLK,分别是ARMCLK(内核用),HCLK(A转载 2014-05-06 21:39:19 · 661 阅读 · 0 评论 -
【裸机开发笔记】6410的系统时钟设置(中)---相关寄存器介绍
上篇中已经详细分析了6410时钟系统的结构,现在就介绍下几个与时钟设置相关的寄存器。 1.APLL_LOCK、MPLL_LOCK、EPLL_LOCK 这三个寄存器的低十六位分别表示APLL、MPLL、EPLL这三个锁相环"锁相"所需的时间(周期数),当锁相环的输入或设置改变后,只有经历这么多个周期数后,才让锁相环有输出,这里一般保转载 2014-05-06 21:41:04 · 586 阅读 · 0 评论 -
用vi在linux下查看16进制文件的方法
在vi的命令状态下 ::%!xxd ——将当前文本转换为16进制格式。:%!od ——将当前文本转换为16进制格式。:%!xxd -c 12——将当前文本转换为16进制格式,并每行显示12个字节。:%!xxd -r ——将当前文件转换回文本格式。xxd工具: xxd creates a hex dump of a given file or转载 2014-04-06 16:48:12 · 1007 阅读 · 0 评论 -
unix域套接字
管道由于只能实现具有亲缘进程的进程间通信,使用受到了很大的限制,命名管道解决了这一问题。但是,无论是管道还是命名管道,都只能实现单向通信(在只创建一个管道的情况下)。使用套接字除了可以实现网络间不同主机间的通信外,还可以实现同一主机的不同进程间的通信,且建立的通信是双向的通信。这里所指的使用套接字实现进程间通信,是由将通信域指定为PF_UNIX来实现的。该函数的形式如下:int socke转载 2014-04-06 20:29:53 · 538 阅读 · 0 评论 -
(转)Linux网络编程之sockaddr与sockaddr_in,sockaddr_un结构体详细讲解
sockaddrstruct sockaddr {unsigned short sa_family; /* address family, AF_xxx */char sa_data[14]; /* 14 bytes of protocol address */};sa_family是地址家族,一般都是“AF_xxx”的转载 2014-04-06 10:16:33 · 622 阅读 · 0 评论 -
Unix domain socket 的一些小结
1. unix域的数据报服务是否可靠 man unix 手册即可看到,unix domain socket 的数据报既不会丢失也不会乱序 (据我所知,在linux下的确是这样)。不过最新版本的内核,仍然又提供了一个保证次序的类型 “ kernel 2.6.4 SOCK_SEQPACKET ”。2. STREAM 和 DGRAM 的主要区别转载 2014-04-06 11:06:55 · 1022 阅读 · 0 评论 -
BIOS、BootLoader、uboot对比
BIOS、BootLoader、uboot对比biosBIOS是英文"Basic Input Output System"的缩略语,直译过来后中文名称就是"基本输入输出系统"。其实,它是一组固化到计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、系统设置信息、开机后自检程序和系统自启动程序。 其主要功能是为计算机提供最底层的、最直接的硬转载 2014-04-07 22:11:53 · 808 阅读 · 0 评论 -
Ubuntu 下使用Eclipse编译、调试嵌入式程序的方法(中)
/************************************************转载请注明出处:风之书:http://xubing.cnblogs.com************************************************/这篇文章将分成3部分:第一步:安装arm-linux-gcc第二步:安装、配置Ec转载 2014-04-07 23:02:59 · 985 阅读 · 0 评论 -
Arm 2440——Nand flash启动模式详解(LED程序为例)
Arm 2440——Nand flash启动模式详解(LED程序为例)断断续续的研究arm也有2个月了,现在才感觉理解了arm在Nand flash模式下的启动过程,现在来这里记录下来以表达我无比喜悦的心情。闲话少说,趁着还没有忘记学习过程中的感受,直接进入正题。大家都知道,arm在Nand flash启动模式下启动时系统会将Nand flash中的前4KB代码拷贝到S转载 2014-04-07 21:35:19 · 792 阅读 · 0 评论 -
Ubuntu下使用Eclipse编译、调试嵌入式程序的方法(上)
/************************************************转载请注明出处:风之书:http://xubing.cnblogs.com************************************************/这篇文章将分成3部分:第一步:安装arm-linux-gcc第二步:安装、配置Ec转载 2014-04-07 23:01:00 · 1173 阅读 · 0 评论 -
Linux网络编程经典参考书
首先要说讲述计算机网络和TCP/IP的书很多。 先要学习网络知识才谈得上编程讲述计算机网络的最经典的当属Andrew S.Tanenbaum的《计算机网络》第五版,这本书难易适中。《计算机网络(第5版)》是国内外使用最广泛、最权威的计算机网络经典教材。目前已经是第五版,本书作者80年代就开发出MINIX,是一个用于操作系统教学的类UNIX(的小型操作系统。而转载 2014-05-21 14:14:10 · 1080 阅读 · 0 评论