ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【笔记】2014-01至2014-02

2020-06-13 11:53:03  阅读:304  来源: 互联网

标签:02 01 nandflash 代码 steppingstone 4k DATE 2014 bootloader


受不了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
程序员需要完成的工作,是把最核心的启动程序放在NandFlash的前4K 中,也就是说,你需要编写一个长度小于4K的引导程序,作用是将主程序拷贝到SDRAM中运行。由于NandFlash 控制器从Nand Flash中搬移到内部RAM的代码是有限的,所以在启动代码的前4K里,我们必须完成S3C2440 的核心配置以及把启动代码(U-BOOT)剩余部分搬到RAM中运行。

 

至于将2440当做单片机玩裸跑程序的时候,就不要做这样的事情,当代码小于4K 的时候,只要下到nand flash中就会被搬运到内部RAM 中执行了。不管是从NORFLASH启动还是从NANDFLASH启动,ARM都是从0x0000 0000地址开始执行。

DATE:1-9
三星MCU的一种启动方式,s3c2440的MMU有一种“steppingstone”技术,它是协助MCU从无法执行程序的NAND FLASH执行启动程序的一种方法。

 

启动流程

1、系统上电后,首先自动判断是否是autoboot模式,如果使用的 s3c2410是带有nandflash的,并且被设置成autoboot,从nandflash开始启动.

2、在判断是autoboot模式后,mcu内置的nandflash控制器自动将nandflash的最前面的4k区域(这4k区域存放着bootloader的最前面4k代码)拷贝到samsung所谓的"steppingstone"里面(steppingstone是在S3C2440 中,实际上是一块4k大小的SRAM)。

3、在拷贝完前4k代码后,nandflash控制器自动将"steppingstone"映射到arm地址空间0x00000000开始的前4k区域。

4、在映射过程完成后,nandflash控制器将pc指针直接指向arm地址空间的0x00000000位置,准备开始执行"steppingstone"上的代码.

5、而"steppingstone"上从nandflash拷贝过来的4k代码,是程序员写的bootloader的前4k代码.这个 bootloader在之前写好,并已经被烧写到nandflash的0x00000000开始的最前面区域..而这"steppingstone"上的 4k代码就是bootloader的前4k代码.

6、在pc指向arm地址空间的0x00000000后,系统就开始执行指令代码.这4k代码的任务是:初始化硬件,设置中断向量表,设置堆栈,然后一个很重要的任务是,将nandflash的最前面区域的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/xinetd.conf, /etc/xinetd.d/* :super daemon(service)配置文件.

 

虚拟存储器(virtual memory)的VM基本思想是程序,数据,堆栈的总的大小可以超过物理存储器的大小,操作系统把当前使用的部分保留在内存中,而把其他未被使用的部分保存在磁盘上。比如对一个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接口通常用于数据传输,最常见的应用为网卡接口。
————————————————
版权声明:本文为CSDN博主「__2017__」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u013686019/java/article/details/25052399

标签:02,01,nandflash,代码,steppingstone,4k,DATE,2014,bootloader
来源: https://www.cnblogs.com/rockyching2009/p/13112831.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有