___2017

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
受不了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 命令时将停止编译并输出用户自定义的错误消息。

1
2
语法:
#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接口通常用于数据传输,最常见的应用为网卡接口。

posted on 2020-06-13 16:36  yin'xiang  阅读(166)  评论(0编辑  收藏  举报