摘要: b MAIN 和 ldr pc,=MAIN 的区别(谈到代码位置无关性)看bootloader的时候经常看到这两种写法,不太明白区别,网上查了查。其实看了之后还是一头雾水?其中,2和3 似乎是一个东西,但结果是相反的。晕。//===============================================有几种说法:第一种,说寻址范围不同。(http://bulo.mcuol.com/GaoKefang/view.htm?topicID=126)LDR指令可以全地址范围内跳转,而B指令只能在前后32MB范围内跳转;第二种,(http://www.onlyblog.com/blog 阅读全文
posted @ 2014-02-22 13:17 LOSER Z 阅读(949) 评论(0) 推荐(0) 编辑
摘要: S3C2440中有三种时钟,分别是FCLK,HCLK和PCLK。这三种时钟的功能各不相同,其中FCLK主要是为ARM920T的内核提供工作频率,如图: HCLK主要是为S3C2440 AHB总线(Advanced High performance Bus)上挂接硬件提供工作频率,AHB总线主要挂接有内存,NAND,LCD控制器等硬件,如图: PCLK主要是为APB总线提供频率,APB总线上主要挂载UART、WatchDog等硬件控制器,如图: S3C2440上的时钟源是12MHz,如果想让CPU工作在更高频率上,就需要通过PLL(锁相环)来提高主频。S3C2440上的PLL有两种,一... 阅读全文
posted @ 2014-02-22 10:31 LOSER Z 阅读(2125) 评论(0) 推荐(1) 编辑
摘要: JZ2440的启动方式有两种,一种是从NOR FLASH中启动,还有一种就是从NAND FLASH中启动。 如果从NOR FLASH启动,CPU会访问NOR FLASH的0地址,而0地址位于BANK0。 如果从NAND FLASH启动,由于NAND FLASH地址和数据共用总线,因此BANK0失效,此时0地址访问片内的SRAM,CPU会把NAND的前4K完全拷贝到片内SRAM,然后从0地址运行。 当2440上电时,NAND的前4K程序拷贝到SRAM中的0地址处,程序首先关闭看门狗,然后初始化存储管理器,最后将SRAM中的程序拷贝到SDRAM中,继续执行。如果NAND中的程序大于4... 阅读全文
posted @ 2014-02-21 17:22 LOSER Z 阅读(936) 评论(0) 推荐(0) 编辑
摘要: 存储控制器与CPU及其它外设的关系 我们看到cpu上集成了一个存储管理器,外围的存储设备都接在这个存储管理器上。cpu负责发出命令,其它的一切工作都交给了存储管理器。那么存储管理器是如何来管理这些外设的呢? 首先地址空间被分为8个bank(bank0-bank7),每个bank对应128m空间。每个bank都对应一个选通位(nGCS0-nGCS7),选通位为低电平是表示该bank选通。这样的话,虽然地址线只有27条,但是总的地址空间可以达到了1G。s3c2440的地址空间组织如下图所示: 我们看到地址空间是0-0x40000000,果然是1G。那么s3c2440的cpu是32位的... 阅读全文
posted @ 2014-02-21 16:30 LOSER Z 阅读(783) 评论(0) 推荐(0) 编辑
摘要: 在JZ2440中,点亮LED就是给LED的控制位设置为输出,数据位设置为低电平,而通过按键点亮LED,就需要将按键对应的控制位设置为输出。 下面是JZ2440的3个LED电路图: 下面是JZ2440的3个按键的电路图 通过查找nLED_1,nLED_2,nLED_4对应的引脚,发现它们分别对应GPF4,GPF5,GPF6,如图: 通过查找EINT0,EINT2,EINT11对应的引脚,发现它们分别对应GPF0,GPF2,GPG3,如图: 由此,我们再去看2440的Datasheet,查看它们的控制位和数据位的信息,首先是GPF4,GPF5,GPF6的控制位信息,如图: 我们发现... 阅读全文
posted @ 2014-02-21 15:01 LOSER Z 阅读(2653) 评论(0) 推荐(0) 编辑
摘要: 1. 配置静态ip地址$sudo vim /etc/network/interfaces原有内容只有如下两行:auto loiface lo inet loopback向末尾追加以下内容:auto eth0iface eth0 inet staticaddress 192.168.1.33gateway 192.168.1.1netmask 255.255.255.0network 192.168.1.0broadcast 192.168..255然后保存退出;2. 手动配置 dns(这个文件为动态的DNS重启后会恢复默认)$sudo vim /etc/resolv.conf想末尾追加如下内容 阅读全文
posted @ 2014-02-21 14:11 LOSER Z 阅读(1206) 评论(0) 推荐(0) 编辑
摘要: 第一步:1.关闭ubuntu的防火墙 ufw disable2.卸载了iptables apt-get remove iptables1.用iptables -F这个命令来关闭防火墙,但是使用这个命令前,千万记得用iptables -L查看一下你的系统中所有链的默认target,iptables -F这个命令只是清除所有规则,只不会真正关闭iptables.想象一下,如果你的链默认target是DROP,本来你有规则来允许一些特定的端口, 但一旦应用iptables -L ,清除了所有规则以后,默认的target就会阻止任何访问,当然包括远程ssh管理服务器的你. 所以我建议的关闭防火墙... 阅读全文
posted @ 2014-02-21 14:07 LOSER Z 阅读(837) 评论(0) 推荐(0) 编辑
摘要: 一、安装配置minicom1、安装minicomlingd@ubuntu:~$sudo apt-get install minicom2、配置minicomlingd@ubuntu:~$sudo minicom -s 出现这样的配置界面: +-----[configuration]------+ | Filenames and paths | | File transfer protocols | | Serial port setup | | Modem and dialing | | Screen and keyboard ... 阅读全文
posted @ 2014-02-19 15:04 LOSER Z 阅读(938) 评论(0) 推荐(0) 编辑
摘要: 1 下载arm-linux-gcc-4.4.3安装包,http://arm9.net/download.asp2 解压arm-linux-gcc-4.4.3-20100728.tar.gz,使用命令tar -zxvf arm-linux-gcc-4.4.3-20100728.tar.gz3 将解压出来的文件夹重命名为arm,然后将arm文件夹拷贝到/usr/local下,#cp -rv arm /usr/local/4 修改环境变量,把交叉编译器的路径加入到PATH。(推荐使用方法一) 方法一:修改/etc/bash.bashrc文件 #vim /etc/bash.bashrc ... 阅读全文
posted @ 2014-02-19 11:27 LOSER Z 阅读(1176) 评论(0) 推荐(0) 编辑
摘要: gcc提供了大量的警告选项,对代码中可能存在的问题提出警 告,通常可以使用-Wall来开启以下警告: -Waddress -Warray-bounds (only with -O2) -Wc++0x-compat -Wchar-subscripts -Wimplicit-int -Wimplicit-function-declaration -Wcomment -Wformat -Wmain (only for C/ObjC and unless -ffreestanding) -Wmissing-braces -Wnonnull -Wparentheses -Wpointer-si... 阅读全文
posted @ 2014-02-17 14:07 LOSER Z 阅读(1562) 评论(0) 推荐(0) 编辑
摘要: 设备管理的一个主要任务就是控制设备和内存(或CPU)之间的数据传送数据传输控制方式 1、程序直接控制方式 优点:工作过程简单,不需要更多的硬件支持 缺点: (1)CPU和外围设备只能串行工作 (2)CPU在一段时间内只能和一台外围设备交换数据信息,不能实现设备之间并行工作 (3)程序直接控制方式只适用于那些CPU执行速度较慢,而且外围设备较少的系统2、中断控制方式 2.1、在I/O中断方式下,数据的输入按如下步骤操作: (1)需要数据的进程通过CPU发出启动外设输入数据的指令,该指令同时置状态寄存器的中断允许位 (2)在进程发出指令启动设备之后,... 阅读全文
posted @ 2014-02-11 16:56 LOSER Z 阅读(3403) 评论(0) 推荐(1) 编辑
摘要: 1、段式管理的基本思想 段式存储管理中以段为单位分配内存,每段分配一个连续的内存区,但各段之间不要求连续,内存的分配和回收类似于动态分区分配,由于段式存储管理系统中作业的地址空间是二维的,因此地址结构包括两个部分:段号和段内位移2、段的中断处理过程算法如下: 算法FOLD(新段x的长度) BEGIN{ if(内存中的空闲区<x){ if(内存中空闲区总和<x){ 按FIFO、LRU等算法淘汰老段; }else{ 合并空间区形成不小于x段的空闲区; } } 为x段分配内存空闲区; 将x段调... 阅读全文
posted @ 2014-02-11 16:40 LOSER Z 阅读(1618) 评论(0) 推荐(0) 编辑
摘要: 虚拟存储管理应解决以下问题1、把哪一部分装入内存2、何时把页面装入3、装入内存什么位置4、当内存没有空间时淘汰哪个页面一、拿来策略 就是缺哪页装哪页二、页面调入时机 主要有两个策略:预调页策略和请求调页策略三、放置策略 只要有空间就放哪 每个虚页号不仅对应一个页架号,还增设一个该页是否在主存的中断位和该页在外存中的副本起始地址 如果内存没有空闲页面,就应该用某种淘汰策略选中内存中的一个页面 如果被淘汰的页已经被修改了,应该把修改后的页重新写回外存,要是没有被修改,因为外存有副本,就不用重新写回外存 因此,需要在页表中加入一项纪录该页是否改变的内容,即增加一项能纪录该页... 阅读全文
posted @ 2014-02-11 16:27 LOSER Z 阅读(454) 评论(0) 推荐(0) 编辑
摘要: 1、什么是作业 作业就是用户要求计算机给以计算(或处理)的一个相对独立的任务2、什么是作业步 一个作业一般可以分为几个逻辑上必须顺序处理的工作单位(或步骤),称为作业步3、通常,程序在计算机上运行要分成三个步骤: 第一步:编译; 第二步:链接; 第三步:运行已经装配好的可执行程序4、 按系统的作业处理方式,作业可分为:脱机作业和联机作业 脱机作业是指用户不能和计算机直接交互,需要通过操作员从中干预的作业 联机作业是用户通过外围设备直接与计算机系统进行交互,从而控制作业的运行,这种作业也叫交互型作业 联机作业多出现在分时系统中,而脱机作业经常出现在批处理系统中5、作业的... 阅读全文
posted @ 2014-02-11 15:56 LOSER Z 阅读(1277) 评论(0) 推荐(0) 编辑
摘要: 线程的实现分为三种:1、用户级线程 2、核心级线程 3、两者结合方法一、用户级线程(ULT) 1、特点 1.1、由应用程序完成所有线程的管理 通过线程库(用户空间) 一组管理线程的过程 1.2、内核不知道线程的存在 1.3、线程切换不需要核心态特权 1.4、调度是应用特定的 2、线程库 2.1、创建、撤销线程 2.2、在线程之间传递消息和数据 2.3、调度线程执行 2.4、保护和恢复线程上下文 3、对用户级线程的核心活动 3.1、核心不知道线程的活动... 阅读全文
posted @ 2014-02-08 14:41 LOSER Z 阅读(523) 评论(0) 推荐(0) 编辑
摘要: 一、进程 1、进程:功能完整的程序在处理机上的执行过程 2、进程引入的目的:使多个程序并发执行,改善资源利用率、提高系统吞吐量 3、进程三个基本状态:就绪态、运行态、等待态 4、进程的静态描述由三部分组成:进程控制块(PCB),有关程序段,数据结构集 5、在PCB中主要包含以下几方面: 5.1、进程描述信息:标识 5.2、进程控制信息:进程当前状态,进程优先级,程序开始地址,各种计时信息,通信信息 5.3、资源信息 5.4、CPU现场保护信息(进程上下文) 6、进程的两个基本属性: 6.1、资源的拥有者:给每个进程分配一虚拟地址空间,保存进程映像,控制... 阅读全文
posted @ 2014-02-08 14:28 LOSER Z 阅读(664) 评论(0) 推荐(0) 编辑
摘要: 1、管程的提出 采用PV同步机制来编写并发程序,对于共享变量及信号量变量的操作将被分散于各个进程2、管程定义 指关于共享资源的数据及在其上操作的一组过程或共享数据结构及其规定的所有操作3、管程的四个组成部分 名字 数据结构说明 对该数据结构进行操作的一组过程/函数 初始化语句4、管程的三个主要的特性 4. 1、模块化,一个管程是一个基本程序单位,可以单独编译 4.2、抽象数据类型,管程是一种特殊的数据类型,其中不仅有数据,而且有对数据进行操作的代码 4.3、信息掩蔽,管程是半透明的,管程中的外部过程(函数)实现了某些功能,管程中的外部过程(函数)实现了某些功能,至于这些功能是... 阅读全文
posted @ 2014-02-08 12:40 LOSER Z 阅读(1472) 评论(0) 推荐(0) 编辑
摘要: 1、进程调度的任务是控制协调进程对CPU的竞争即按一定的调度算法从就绪队列中选中一个进程,把CPU的使用权交给被选中的进程2、确定算法的原则 2.1、具有公平性 2.2、资源利用率高 2.3、在交互式系统情况下要追求响应时间(越短越好) 2.4、在批处理系统情况下要追求系统吞吐量3、各种进程调度算法 3.1、先进先出调度算法(FIFO) 按照进程就绪的先后次序来调度进程 优点:实现简单 缺点:没考虑进程的优先级 3.2、基于优先数的调度(HPF) 优先选择就绪队列中优先级最高的进程投入运行,优先级根据优先数来决定4、确定优先数的方法 4.1、静态优先... 阅读全文
posted @ 2014-02-08 11:54 LOSER Z 阅读(790) 评论(0) 推荐(0) 编辑
摘要: 阐述P,V原语的理论不得不提到的一个人便是赫赫有名的荷兰科学家 E.W.Dijkstra。如果你对这位科学家没有什么印象的话,提起解决图论中最短路径问题的Dijkstra算法应当是我们再熟悉不过的了。P,V原 语的概念以及P,V操作当中需要使用到的信号量的概念都是由他在1965年提出的。信号量是最早出现的用来解决进程同步与互斥问题的机制(也可实现进程通信),包括一个称为信 号量的变量及对它进行的两个原语操作。信号量为一个整数,我们设这个信号量为:sem。很显然,我们规定在sem大于等于零的时候代表可供并发进程使用的 资源实体数,sem小于零的时候,表示正在等待使用临界区的进程的个数。根据这个原 阅读全文
posted @ 2014-02-07 09:51 LOSER Z 阅读(1135) 评论(0) 推荐(0) 编辑
摘要: 计算机串口基本理论1.什么是串口?2,什么是RS-232?3,什么是RS-422?4,什么是RS-485?5,什么是握手?1,什么是串口? 串口是计算机上一种非常通用的设备通信的协议(不要与通用串行总线Universal Serial Bus或者USB混淆)。大多数计算机包含两个基于RS232的串口。串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS-232口。同时,串口通信协议也可以用于获取远程采集设备的数据。 串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简 阅读全文
posted @ 2014-01-28 16:58 LOSER Z 阅读(3875) 评论(0) 推荐(0) 编辑