嵌入式linux应用开发完全手册(S3C2440)

开发板硬件:

? 开发板的内存里面各个块都是什么作用?

? 做裸机开发的时候裸机程序应该烧写到哪个地方?为什么?以及是如何被引导运行的?

裸机开发是在Nand flash?!其他区域如nor flash行么?

Keil中,启动代码***.s中的main()跳转接口地址,决定了Read/write Memory Area和Read/Only Memory Area的地址?

是板子本身固化有一个引导程序么?是的话是存放在内存什么地方的,如何可以查看到,以及实现的具体功能是什么?)

启动代码: ******.s

引导程序时bootloader的一部分

?裸机程序可以烧写到哪些内存RAM,Nand flash, Nor flash?

 

国嵌点亮LED例程(其实是个引导程序,LED灯的控制写入到了引导程序)

1、编译生成可执行文件

2、使用超级终端檫除Nand flash

3、使用usb下载可执行文件到内存区域0x30000000,gboot.bin为什么不是下载到Nand flash?(貌似是因为lds链接器脚本规定的原因,.bin由.lds .s make生成,可以将gboot.bin反汇编查看启动完整流程,以及代码存放地址空间)

(可以使用J-Link commander来把我们要烧到nand flash的bin文件加载到内存0x30000000处)

使用J-Link v8和u-boot烧写裸机程序到s3c2440的nand flash(这里假设nor flash已经烧进了u-boot)

如果没有烧进u-boot,也可以先通过J-Link commander把对目标板SDRAM的初始化init.bin文件加载进SRAM(s3c2440里面的steppingstone,如果是nor启动方式的话,这个steppingstone被映射到0x40000000上,如果从nand启动的话,被映射到0x0地址上.然后设置PC值并运行它,这样SDRAM就被初始化好了.然后把u-boot.bin加载到SDRAM的某个地址处,只要不跟其他需要用到的空间重叠就行,运行u-boot。

 

程序计数器PC的功能

用来存放下一条指令的地址的。当执行一条指令时,首先需要根据PC中存放的指令地址,将指令由内存取到指令寄存器中,此过程称为“取指令”。与此同时,PC中的地址或自动加1或由转移指针给出下一条指今的地址。此后经过分析指令,执行指令。完成第一条指令的执行,而后根据PC取出第二条指令的地址,如此循环,执行每一条指令!
  • GPIO接口

    • GPIO相关寄存器

      • GPxCON
      • GPxUP
      • GPxDAT
    • 软件访问硬件
      • 访问单个引脚
      • 以总线方式访问硬件(更常见)
        1. 地址对齐的16位操作
        2. 地址不对齐的16位操作
        3. 8位读操作由16位拆分得到
        4. 32位读操作由16位组合得到
        5. 16位写操作
    • GPIO操作实例
时间: 2024-12-27 18:15:58

嵌入式linux应用开发完全手册(S3C2440)的相关文章

嵌入式Linux裸机开发(一)——点亮Led

嵌入式Linux裸机开发(一)--点亮Led 开发板:友善之臂smart210 一.电路图查阅 1.底板电路图 查阅开发板底板电路图,查阅LED相关部分 LED电路工作原理: LED的正极接3.3V,负极接地时导通,LED发光. 开发板共有四颗LED,正极接3.3V,负极接开发板的LED1_LED4引脚,如果LED要点亮则需要输入低电平. 2.核心板电路图 查阅核心板电路图可知,LED1-LED4接在SoC的GPJ2_0-GPJ2_3,通过控制GPJ2_0-GPJ2_3的寄存器使对应GPIO引脚

嵌入式Linux裸机开发(六)——S5PV210时钟系统

嵌入式Linux裸机开发(六)--S5PV210时钟系统 一.时钟系统简介 外设工作需要一定频率的时钟,这些时钟都由系统时钟提供.系统时钟一般由外部低频24MHZ晶体振荡器通过锁相环电路PLL倍频产生.通过外部的低频晶体振荡器产生系统时钟不仅可以减少干扰还可以降低成本.外设的工作频率越高,功耗越高,越不稳定.通过关闭外设的时钟可以关闭外设. 二.时钟域 S5PV210 中包含 3 大类时钟 domain, 分别是主系统时钟 domain (简称 MSYS).显示相关的时钟 domain (DSY

嵌入式linux QT开发(四)——QT Creator工程管理

嵌入式linux QT开发(四)--QT Creator工程管理 一.QT Creator工程管理 QT Creator以工程项目的方式对源码进行管理,一个QT工程中包含不同类型的文件如下: A..pro项目描述文件 B..pro.user用户描述文件 C..h头文件 D..cpp源文件 E..ui界面描述文件 F.资源文件(图片.音频等) 二..pro项目描述文件 1..pro项目描述文件基本构成如下: A.#注释起始符 B.QT模块声明 C.TARGET可执行文件名 D.TEMPLATE程序

嵌入式Linux裸机开发(十三)——I2C通信

嵌入式Linux裸机开发(十三)--I2C通信 一.IIC协议 1.IIC总线简介 I2C(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备.I2C总线是一种串行数据总线,只有二根信号线,一根是双向的数据线SDA,另一根是时钟线SCL.在 I2C总线上传送的一个数据字节由八位组成.总线对每次传送的字节数没有限制,但每个字节后必须跟一位应答位. IIC总线是一种串行总线,用于连接微控制器及其外围设备,具有以下特点:

嵌入式Linux裸机开发(十)——SD卡启动

嵌入式Linux裸机开发(十)--SD卡启动 存储设备分类: 磁存储设备:软盘.硬盘.光盘.CD.磁带 Flash:NandFlash.NorFlash 缺点:时序复杂,无坏块处理机制,接口不统一 NandFlash:MLC(可靠性差,容量大).SLC(可靠性高.容量小) 扩展卡式Flash:SD卡.MMC卡.MicroSD(TF卡) 内部为NnadFlash存储颗粒,外部封装了接口,接口标准统一.通用. 缺点:频繁使用导致卡槽接触不可靠 iNand.MoviNand.eSSD: 内部为Nand

嵌入式Linux裸机开发(七)——UART串口通信

嵌入式Linux裸机开发(七)--UART串口通信 一.UART串口通信简介 通用异步收发器简称UART,即UNIVERSAL ASYNCHRONOUS RECEIVER AND TRANSMITTER, 它用来传输串行数据.发送数据时, CPU 将并行数据写入UART,UAR按照一定的格式在一根电线上串 行发出:接收数据时, UART检测另一根电线的信号,将串行收集在缓冲区中, CPU 即可读取 UART 获得这些数据. 在 S5PV210中, UART提供了 4 对独立的异步串口I/O端口,

如何使用eclipse进行嵌入式Linux的开发

如何使用eclipse进行嵌入式Linux的开发 作者:曾宏安,华清远见嵌入式学院高级讲师. 如何使用eclipse进行嵌入式Linux的开发 习惯了在windows环境下开发的程序员在转到Linux平台时经常会抱怨没有一个好用的集成开发环境.和windows下常用的一些开发软件相比,Linux自带的一些开发环境使用起来要么界面和操作不够方便.友好,要么功能不全.其实我们完全可以在开源社区上找到操作方便,功能强大的开发环境.下面就向大家介绍一个能在Linux上运行,界面和功能与windows上同

嵌入式linux QT开发(一)——QT简介

嵌入式linux QT开发(一)--QT简介 一.QT简介 1.QT简介 QT是一个跨平台的C++图形用户界面库,由挪威TrollTech公司出品,目前包括Qt Creator, QtEmbedded,Qt Designer快速开发工具,Qt Linguist国际化工具等部分,Qt支持所有Linux/Unix系统,还支持Windows平台. 2.QT优点 Qt是一个跨平台的C++图形用户界面应用程序框架,提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能.Qt很容易扩展,并且允许真正地组

嵌入式Linux裸机开发(十五)——LCD

嵌入式Linux裸机开发(十五)--LCD 一.LCD简介 LCD(Liquid Crystal Display)是液晶显示器简称.LCD的构造是在两片平行的玻璃基板当中放置液晶盒,下基板玻璃上设置TFT(薄膜晶体管),上基板玻璃上设置彩色滤光片,通过TFT上的信号与电压改变来控制液晶分子的转动方向,从而达到控制每个像素点偏振光出射与否而达到显示目的. 1.LCD类型 按照背光源的不同,LCD可以分为CCFL和LED两种. A.CCFL 指用CCFL(冷阴极荧光灯管)作为背光光源的液晶显示器(L