一.板载资源介绍

开发板使用了三星的JZ2440V3(基于S3C2440改进的版本),网上有丰富的资源,有助于学习,板载资源如图所示:


需要特别注意以下几点:

  • 一般使用JTAG烧写口来烧写程序,用eop即可
  • 有俩个USB接口,其中USB-SERIAL可以连接开发板与上位机,通过串口进行调试
  • 另外一个USB口,可以用来下载程序
  • 板载2M的 Nor FLASH,可将程序直接烧写在此
  • 板载256M的 Nand FLASH,作为主要的数据存储中心,可以将程序烧写在此
  • 启动方式可以选择:Nor 或 Nand 启动,一般用Nand

二.安装驱动及上位机

入门开始要安装以下这几个:
1.要安装USB串口的驱动以及上位机
2.要安装eop的驱动,用来连接板子与上位机
3.要安装OFLASH软件,用来将bin文件烧录进板子

1.USB的驱动及上位机

USB驱动安装
韦东山老师的资料里有所需的全部软件,用到的USB驱动如示,直接安装就行:

设备管理器中查看,如图表示安装成功:

USB上位机安装
压缩资料中的上位机软件,压缩成功后,以管理员身份运行就可以打开上位机。
上位机软件如示:

上位机软件界面如示:(超喜欢这样的界面)

USB驱动安装成功后,在Session界面配置串口的信息:
(注意:选择对应的USB串口,bps:115200 ,Flow control:None)

然后就可以进入串口界面了。

2.eop驱动安装

前提是插上eop
首先,压缩驱动文件,复制文件路径:

然后,打开设备管理器,查看,在感叹号设备上,更新驱动程序,采用计算机内安装,然后输入复制好的eop驱动文件路径,进行安装:

一般会有win10的提示:哈希表未找到 这种提示,是因为强制签名问题,Google自行解决。
需要对三个感叹号的设备都执行此操作,直至全部正常:
可以识别eop的USB转串口功能(COM8)、JTAG功能、Serial Port功能
(刚开始烧录程序只需要JTAG功能)

这样,USB和eop的驱动都安装好了。

3.安装烧录软件oflash

安装烧录软件,可以将bin文件通过eop的JTAG接口烧录进板子。
找到资料中的软件,直接安装即可:

可以在win10的命令行中输入oflash来查看是否安装成功:
如图就代表安装oflash成功。

至此,初学所需要的驱动及上位机软件就安装成功,下一步就是烧写程序了。

三.烧写开发板

接下来就是将程序烧写进开发板了。

1.预备知识

在STM32的开发中,只需要cpoy一个工程模板,然后在MDK中编写驱动,点击编译和烧录就可以将程序烧写进开发板,MDK对用户没有开放编译和烧录的细节,而在Linux嵌入式的开发中,我们需要亲自操作每一步来烧录,下面简单了解一下程序烧录的大概流程:

  • 首先,编写驱动代码,一般通过编辑器来编写,写好的驱动代码就是.c文件
  • 然后,通过编译器编译.c文件,生成汇编代码
  • 然后,通过汇编器将汇编代码转换为目标代码
  • 然后,通过链接器将目标代码转换为可执行代码,就是二进制文件.bin
  • 最后,通过oflash上位机将.bin文件烧录进eop连接的开发板

其中,编辑C代码的工作一般在Windows下进行,编写好后传给Linux,由Linux完成对C文件的编译、转汇编、链接等工作,生成的二进制文件.bin,再传回Windows由oflash烧录进开发板,流程图如下:

2.烧写裸板

韦东山老师的资料中,有现成的.bin文件,这里使用软件oflah,配合Windows命令行来实现烧写裸板程序,相当于不涉及Linux。
上面介绍板载资源时提到,有Nor FALSH和Nand FLASH 那么程序烧录的时候,到底烧录在哪块FLASH中呢?
这就要根据烧录的bin文件来区分了:

  • u-boot.bin 在Nor和Nand都可以
  • 一般的裸板驱动程序如:lcd.bin、led.bin 都烧录在Nand中

要注意,一旦确定了烧写的位置,就要选择以何种方式开机了,可以选择Nor或者Nand存储区开机,这个要和程序烧录的位置一致,因为不同的存储位置可能存放着不同的程序。

烧写所有的bin文件:uboot.bin、lcd.bin…(裸板程序)
程序烧写到哪里去:uboot可以Nor、Nand,裸板程序只能nanf(都是0地址)
但是启动裸板程序,俩个flash都可以

烧写裸板程序的步骤一般如下:

  • 1.找到.bin文件
  • 2.打开win命令行窗口,使用cd切换到bin文件所在目录下
  • 3.使用:oflash lcd.bin 来进行烧录
  • 4.配置烧录选项:主要是烧录的位置(Nor、Nand),以及烧录的接口
  • 5.拔下ecp(含有复位),然后选择对应的启动方式(Nor还是Nand),重新上电
  • 6.还可以配合串口上位机来调试控制开发板

需要注意:每一次重新烧录程序后,都要拔下eop的JTAG排针,因为排针中有复位接口,以方板子处于复位状态,另外切记选择对应的启动方式!
Nor FLASH的烧写速度比Nand FLASH快。

3.使用u-boot烧写程序

u-boot烧写程序就一个字:快!

对于裸板开发,我们一般使用 JTAG 工具,比如 OpenJTAG、 EasyOpenJTAG 烧写裸
机程序。 JTAG 工具速度慢,但是一般的裸机程序都比较小,所以这种方法很方便。
开始玩 Linux 时,一个内核就有 2M 以上,用 JTAG 工具烧写要花上几个小时。无法
忍受。于是我们开发了带有 USB下载功能的 UBOOT,板子上运行 UBOOT 时,我们可以
在电脑上通过 USB线把内核、文件系统等巨大的文件传给开发板:速度飞快
能使用 USB下载的前提是, JZ2440 上当前运行的是 UBOOT。 如果板子上运行的是
其他裸板程序、或是板子已经启动进入了 Linux,那么无法使用 USB下载。

上面也介绍了烧录文件的主流方式:通过eop向Nor或Nand烧录程序(裸板驱动只能通过eop写入Nor)
实际上,通过USB-Device也可以烧录程序,这里大概介绍一下使用Nor中的u-boot通过USB-Decive向Nand中烧写程序

首先,要安装USB-Decive的驱动,这个USB驱动和上面的驱动不一样,上面的是USB串口的驱动,这里是USB-Decive的驱动,也就是通过USB烧录程序,就是下面这个驱动:

安装好之后,设备管理器中显示如图(前提Nor中是安装好u-boot,而且以Nor启动):

接下来就是大体流程了:

  • 首先,按照之前的方法在Nor中烧录u-boot.bin程序,连接俩个USB口
  • 打开USB串口上位机,选择Nor启动,重新上电
  • 在USB串口上位机中,有显示时,赶紧按空格键,直接进入u-boot的菜单,此操作不会启动板上的文件系统、内核等
  • 在上位机中操作u-boot,如图通过发送n指令,使用u-boot向Nand FLASH中烧写程序
  • 在dnw软件中选择要烧录的bin文件,双击,很快就烧录进去了
  • 到这里,bin文件就从USB-Decive中烧录到Nand中了
  • 断电,选择Nand启动,重新上电,就可以执行Nand中的程序了

四.恢复出厂设置

当想要恢复板子的出厂设置时,可以先来了解一下板子的启动流程。
韦东山老师以PC机的启动流程为带入:

PC机的开机流程为:

  • 开机先执行BIOS
  • 由BIOS启动Windows操作系统
  • 由操作系统识别、挂载C盘(包含了各种APP)

这就是PC机的开机流程,BIOS以及操作系统的东西,都存储在硬盘中,所以一旦初始化硬盘,就相当于将系统给删除了,因为这样,系统没办法启动BIOS和操作系统,更不要谈其他东西了。

在嵌入式Linux中,开机流程也与PC机相似:

嵌入式Linux的开机流程为:

  • 上电先执行boot-loader(u-boot就是一种常见的boot-loader)
  • 由u-boot启动Linux内核
  • Linux内核挂载文件系统(就可以运行了)

只是嵌入式Linux中,这些u-boot、Linux内核、文件系统都存储在FLASH中,所以要想恢复出厂设置,只需要重装u-boot、Linux内核、文件系统就OK。
上面说u-boot可以在Nor,也可以在Nand中,但是Nand FLASH的大小为256M,Nor FLASH只有2M,所以Linux内核及文件系统都存放在Nand FLASH中,如图:

所以我们可以通过重新烧录Linux内核及文件系统来恢复出厂,流程可以为:

  • 先使用eop烧写u-boot(Nor或者Nand都行)
  • 然后通过u-boot使用USB-Device烧录内核和文件系统,烧录在Nand FLASH中
  • 可以在u-boot模式中,通过命令行来删除参数(这样就使用默认参数了)
  • 烧写完毕后,断电,选择u-boot所在的启动方式,u-boot自然会启动内核、挂载文件系统…

备注:因为Linux内核以及文件系统都比较大,所以使用USB烧录比较好

S3C2440—1.熟悉裸机开发板的更多相关文章

  1. S3C2440—3.用点亮LED来熟悉裸机开发的详细流程

    文章目录 一.硬件知识 1.LED原理图 2.芯片手册 Ⅰ.找LED原理图 Ⅱ.找对应引脚 Ⅲ.在芯片手册中查找引脚信息 Ⅳ.查看寄存器说明 Ⅴ.配置寄存器 二.S3C2440框架与启动过程 三.要用 ...

  2. 基于飞思卡尔i.MX 6Quad Sabrelite开发板的触摸屏调试

    1      概述 本次任务是在飞思卡尔i.MX 6Quqd Sabrelite开发板上调试触屏驱动,触屏芯片是Goodix的gt828芯片,触屏接口是I2C. 操作系统:android 4.0.4 ...

  3. MPSOC之1——overview、开发板、工具

    1.MPSOC overview MPSOC是xilinx公司推出的新一代集成SOC,比ZYNQ厉害了一个等级. 熟悉一个芯片,不能一头扎进详细的数据手册,应该从overview开始大概了解,然后浏览 ...

  4. ok6410[000] 搭建裸机开发环境

    1.安装交叉工具链arm-linux-gcc-4.3.2 先把这个工具复制到rhat系统中[rhel-server-6.3-i386-dvd.iso] 解压arm-linux-gcc-4.3.2到一个 ...

  5. 基于KEIL4开发ARM9(S3C2440)的裸机程序

    本文主要介绍如何使用Keil4开发ARM9(S3C2440)裸机程序. 说明: 一.平台: 操作系统:Windows XP系统 KEIL版本:4.73 开发板:ARM9(S3C2440) 二.建立工程 ...

  6. 【转载】s3c2440裸机开发调试环境(MDK4.6,Jlink v8,mini2440)

    用于arm裸机程序开发的IDE基本有 以下3个:MDK,IAR,还有ADS.具体它们的具体情况在这里我就不多说了,百度一下就明白了.由于之前开发c51,stm32时候都使用了MDK开发环境,而且MDK ...

  7. 使用JLink间接烧写S3C2410、S3C2440开发板Nor、Nand Flash的方法

    1. 简要说明 JLink的调试功能.烧写Flash的功能都很强大,但是对于S3C2410.S3C2440的Flash操作有些麻烦:烧写Nor Flash时需要设置SDRAM,否则速率很慢:烧写Nan ...

  8. Jz2440开发板熟悉

    title: Jz2440开发板熟悉 tags: ARM date: 2018-10-14 15:05:56 --- 概述 外部晶振为12M Nand Flash 256M,Nor Flash 2M, ...

  9. MDK972-EK开发板裸调试设置和裸机程序烧写(转)

    硬件平台:MDK972-EK开发板编译调试软件:KEIL uVision4仿真工具:JLINK V7/V8   本例子从串口输出信息,如图:       KEIL uVision4调试设置如图所示: ...

随机推荐

  1. mysql大量数据分页查询优化-延迟关联

    所有的php初学者都应该知道,mysql的分页语句写法如下: 1 select * from a limit (page-1)*page_size,page_size 而当这语句分页到一定程度时,例如 ...

  2. Jquery Validate动态添加和删除校验规则

    以下面文本框为例, <input type="text"name="username" id="username"/> 我们要让 ...

  3. Linux 内核睡眠的几种方式

    译至:http://geeki.wordpress.com/2010/10/30/ways-of-sleeping-in-linux-kernel/ 在Linux中睡眠有2-3种不同的方法. 睡眠的第 ...

  4. OSI与TCP/IP各层的结构与功能,都有哪些协议?

    学习计算机⽹络时我们⼀般采⽤折中的办法,也就是中和 OSI 和 TCP/IP 的优点,采⽤⼀种只有 五层协议的体系结构,这样既简洁⼜能将概念阐述清楚. 结合互联⽹的情况,⾃上⽽下地,⾮常简要的介绍⼀下 ...

  5. Sql Server(3)运算符的使用

    where 订货日期 between '2017/10/24' and '2017/10/30'  小的写在前面,大的后面,不可以写反 一:运算符的使用 T-SQL的运算符应用指派运算符算术运算符比较 ...

  6. [网络流24题]最长k可重区间集[题解]

    最长 \(k\) 可重区间集 题目大意 给定实心直线 \(L\) 上 \(n\) 个开区间组成的集合 \(I\) ,和一个正整数 \(k\) ,试设计一个算法,从开区间集合 \(I\) 中选取开区间集 ...

  7. C语言:2.2.1-4

    #include <stdio.h> #define PI 3.1415926 //宏定义末尾没有分别.如果有则成为字符串的一部分 int main() { printf("显示 ...

  8. C# BS方向 该如何规划学习?【学习路线指南】

    C#学习路线指南 花费了几天时间整理了C#学习路线图,可以说是纯野生C#程序员成长路线规划,在这里分享下,希望可以帮助到想从事C#开发的同学们.本人阅历尚浅,有些知识点可能分享不正确,希望广大网友评论 ...

  9. Oracle19c 如何用rman duplicate 克隆一个数据库。(Backup-Based, no achive log)

    Oracle19c 如何用rman duplicate 克隆一个数据库. 首先克隆有两种方法,一种是Backup-Based,一种是Active方式.官网文档链接https://docs.oracle ...

  10. 数据结构与算法-排序(二)选择排序(Selection Sort)

    摘要 选择排序的逻辑是先遍历比较出序列中最大的,然后把最大的放在最后位置. 遵循这个逻辑,用代码实现时,做到1.减少比较次数之外,这里引入一个新的指标 - 稳定性,2.保证排序过程中的稳定性也是一个优 ...