受不了xxxx恶心人的行为,遂搬迁至博客园。 始发:2014-05-05 15:17:14
此为作者学习工作中的笔记,多有网搜资料;故,若侵权,请告知,第一时间删除。
DATE:1.2
USB设备分为HOST(主设备)和SLAVE(从设备),只有当一台HOST与一台SLAVE连接时才能实现数据的传输。
简单的说,如果一个数码设备支持USB HOST,那么它就可以从另外一个USB设备中取得数据。
J-Link V8是为支持仿真ARM内核芯片推出的JTAG仿真器。配合IAR EWARM,ADS,WINARM,RealView MDK等集成开发环境支持所有ARM7、ARM9、Cortex-M3内核芯片的仿真。
DATE:1.6
程序员需要完成的工作,是把最核心的启动程序放在Nand Flash的前4K 中,也就是说你需要编写一个长度小于4K的引导程序,作用是将主程序拷贝到SDRAM中运行。由于NandFlash 控制器从Nand Flash中搬移到内部RAM的代码是有限的,所以在启动代码的前4K里,我们必须完成S3C2440 的核心配置以及把启动代码(U-BOOT)剩余部分搬到RAM中运行。
至于将2440当做单片机玩裸跑程序的时候,就不要做这样的事情,当代码小于4K 的时候,只要下到nand flash中就会被搬运到内部RAM 中执行了。不管是从NOR FLASH启动还是从NAND FLASH启动,ARM都是从0x0000 0000地址开始执行。
DATE:1.9
三星MCU的一种启动方式,s3c2440的MMU有一种“steppingstone”技术,它是协助MCU从无法执行程序的NAND FLASH执行启动程序的一种方法。
启动流程:
1、系统上电后,首先自动判断是否是autoboot模式,如果使用的 s3c2410是带有nand flash的,并且被设置成autoboot,从nandflash开始启动。
2、在判断是autoboot模式后,mcu内置的nand flash控制器自动将nand flash的最前面的4k区域(这4k区域存放着bootloader的最前面4k代码)拷贝到samsung所谓的"steppingstone"里面(steppingstone是在S3C2440 中,实际上是一块4k大小的SRAM)。
3、在拷贝完前4k代码后,nand flash控制器自动将"steppingstone"映射到arm地址空间0x00000000开始的前4k区域。
4、在映射过程完成后,nand flash控制器将pc指针直接指向arm地址空间的0x00000000位置,准备开始执行"steppingstone"上的代码。
5、而"steppingstone"上从nand flash拷贝过来的4k代码,是程序员写的bootloader的前4k代码。这个 bootloader在之前写好,并已经被烧写到nand flash的0x00000000开始的最前面区域,而这"steppingstone"上的 4k代码就是bootloader的前4k代码。
6、在pc指向arm地址空间的0x00000000后,系统就开始执行指令代码。这4k代码的任务是:初始化硬件,设置中断向量表,设置堆栈,然后一个很重要的任务是,将nand flash的最前面区域的bootloader(包含4k启动代码)拷贝到SDRAM中去,bootloader代码的大小是写好bootloader就确定的。然后只需要确定bootloader想映射到SDRAM的起始位置就ok。
7、在完成对nandflash上的bootloader搬移后,找到4k代码的搬移代码最后一个指令的下一个指令在SDRAM的bootloader的地址。然后跳转到该位置。继续执行bootloader的剩余代码(引导系统)。
DATE:1.10
#error 命令是C/C++语言的预处理命令之一,当预处理器预处理到 #error 命令时将停止编译并输出用户自定义的错误消息。
语法: #error[用户自定义的错误消息]
注:上述语法成份中的方括号“[]”代表用户自定义的错误消息可以省略不写。
DATE:2.12
脚本语言,是为了缩短传统的编写-编译-链接-运行(edit-compile-link-run)过程而创建的计算机编程语言。一个脚本通常是解释运行而非编译,很多脚本语言实际上已经超过简单的用户命令序列的指令,还可以编写更复杂的程序。
DATE:2.13
/etc/init.d/* :启动脚本放置处,系统上几乎所有的服务启动脚本都放置在这里。
/etc/init.d/rcS: 遍历/etc/init.d/目录下的服务启动脚本并运行之。
/etc/xinetd.conf, /etc/xinetd.d/* :super daemon(service)配置文件.
虚拟内存(virtual memory)的基本思想是程序,数据,堆栈的总的大小可以超过物理存储器的大小,操作系统把当前使用的部分保留在内存中,而把其他未被使用的部分保存在磁盘上。比如对一个16MB的程序和一个内存只有4MB的机器,OS通过选择,可以决定各个时刻将哪4M的内容保留在内存中,并在需要时在内存和磁盘间交换程序片段,这样就可以把这个16M的程序运行在一个只具有4M内存机器上了。
在使用了虚拟内存的情况下,虚拟地址不是被直接送到内存地址总线上,而是送到内存管理单元——MMU。MMU由一个或一组芯片组成,一般存在于协处理器中,其功能是把虚拟地址映射为物理地址。
DATE:2.19
现代的操作系统一般由进程管理、内存管理、文件系统、驱动程序、网络等组成。
DATE:2.26
ISA-BUS:工业标准结构(ISA)总线,使用最广且最成功的I/O总线,也称为AT总线。
ISA总线是以8MHz速度工作的16位总线, 由于为ISA总线设计和销售了如此多的适配卡、设备和应用程序,所以ISA总线继续流行。不需要更快吞吐能力的外设,例如调制解调器,可以使用ISA。
RJ45接口通常用于数据传输,最常见的应用为网卡接口。