S3C2440—1.熟悉裸机开发板

发布者:以泉换泉最新更新时间:2021-10-14 来源: eefocus关键字:S3C2440  JZ2440V3 手机看文章 扫描二维码
随时随地手机看文章

一.板载资源介绍

开发板使用了三星的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  JZ2440V3 引用地址:S3C2440—1.熟悉裸机开发板

上一篇:S3C2440—6.串口的printf实现
下一篇:S3C2440—2.裸机开发步骤及工具使用

推荐阅读最新更新时间:2024-11-16 22:57

S3C2440 DM9000C网卡移植(二十六)
上一节 我们学习了: 网卡驱动介绍以及制作虚拟网卡驱动:https://blog.csdn.net/xiaodingqq/article/details/81501393 接下来本节,学习网卡芯片DM9000C,如何编写移植DM9000C网卡驱动程序。 1、首先来看看DM9000C原理图 如下图所示: (#表示低电平有效) SD0~15:16位数据线,有CMD引脚决定访问类型 CMD:命令线,当CMD为高电平,表示SD传输的是数据,当CMD为低电平,表示SD传输的是地址 INT:中断引脚,接在2440的GPF7引脚上 IOR#:读引脚,接在2440的nOE上 IOW#:写引脚,接在2440的nWE上 CS#
[单片机]
<font color='red'>S3C2440</font> DM9000C网卡移植(二十六)
s3c2440的uart知识点
s3c2440的uart和stm32、51的uart都是大同小异的。但是还是专门写一下。其实是自己作总结而已。(本文只是涉及uart的基本情况,程序的话,只有查询模式。fifo、中断、DMA还没学,后面可能会补上) 以下是它的特点: s3c2440有三个独立的uart模块,都支持查询、中断模式或者DMA模式。 这三个uart都可以选择(非)fifo模式。Fifo适用于大规模数据传送,可能在DMA需要用到。 uart0和uart1可支持自动流控制(Auto Flow Control)模式,用来检测是否可用。有特殊的位的对应引脚。(但好像stm32的uart功能更多点,深入学习后作比较) 时钟来源和时钟频率的设定 uart的时
[单片机]
<font color='red'>s3c2440</font>的uart知识点
S3C2440与NOR FLASH(AM29LV160DB)的接线分析
NOR FLASH的特点是芯片内执行(XIP, eXecute In Place),这样应用程序可以直接在flash 闪存内运行,不必再把代码读到系统RAM中。NOR的传输效率很高,在1~4MB的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响了它的性能。 NOR FLASH的地址线和数据线是分开的。 AM29LV160DB是一个2Mbyte的NOR FLASH,分区结构是: 1个16Kbyte扇区,2个8Kbyte扇区,1个32Kbyte扇区,31个64Kbyte扇区(字节模式) 1个8Kbyte扇区,2个4Kbyte扇区,1个16Kbyte扇区,31个32Kbyte扇区(半字模式) 共35个扇区。 AM29LV16
[单片机]
S3C2440 Timer初始化方法
s3c2410提供了5个16位的Timer(Timer0~Timer4),其中Timer0~Timer3支持Pulse Width Modulation—— PWM(脉宽调制 )。Timer4是一个内部定时器(internal timer), PCLK是Timer的信号源,我们通过设置每个Timer相应的Prescaler和Clock Divider把PCLK转换成输入时钟信号传送给各个Timer的逻辑控制单元(Control Logic),事实上每个Timer都有一个称为输入时钟频率(Timer input clock Frequency)的参数,这个频率就是通过PCLK,Prescaler和Clock Divider确定下来的
[单片机]
<font color='red'>S3C2440</font> Timer初始化方法
05-S3C2440学习之内核(移植)linux3.4.2移植(1) 简单移植+修改MTD分区+制作jffs2文件系统
一、框架介绍及简单修改 1.1 Bootloader如何引导内核 Bootloader的工作: (1)讲内核读入内存中 (2)存一些内核启动参数到指定位置,内核启动时去解析 (3)启动内核,传入机器ID 1.2、内核的启动流程: 首先 内核的最终目的是挂接根文件系统,并启动应用程序。 想启动应用程序—需要挂接根文件系统—装载驱动程序(flash、网卡)--要解析参数(文件系统在哪)--根据R1判断内核是否支持该ID—支持调用初始化相关函数 每个开发板都有不同的硬件参数 内核移植过程中要决定我这个内核支持哪些硬件开发板 我在内核里针对这个开发板给他一个ID。Uboot启动的时候传入和内核中设置好的匹配
[单片机]
05-S3C2440学习之内核(移植)linux3.4.2移植(1) 简单移植+修改MTD分区+制作jffs2文件系统
基于嵌入式Linux的倒车影音系统设计
引言    电子信息与数字图像处理技术目前已被广泛地应用在各个领域,车载系统的信息化已成为现代汽车业的重要标志。现在的倒车雷达系统可以为驾驶者提供许多帮助,多数采用超声波测距技术,可以直接显示出车尾与障碍物之间的距离。但由于超声波的散射特性,如果地面有尖锐的突起或存在横在半空的棱角状物体,系统就不能有效地“察觉”。假如能为现有的倒车系统增加一个可视功能,那么驾驶员在倒车时不必回头就可清楚车后的情况。本文设计了一种可视化安全倒车系统,该系统采用嵌入式Linux操作系统内核驱动 USB摄像头实现车后状况实时监控,通过判断超声波测距是否达到阈值来启动语音报警功能。 1 系统方案设计   如图1所示,系统由主控模块、超声波收发模块、
[汽车电子]
基于嵌入式Linux的倒车影音系统设计
s3c2440外部中断操作
要想正确地执行2440的外部中断,一般需要完成两个部分内容:中断初始化和中断处理函数。 在具体执行中断之前,要初始化好要用的中断。2440的外部中断引脚EINT与通用IO引脚F和G复用,要想使用中断功能,就要把相应的引脚配置成中断模式,如我们想把端口F0设置成外部中断,而其他引脚功能不变,则GPFCON=(GPFCON & ~0x3) | 0x2。配置完引脚后,还需要配置具体的中断功能。我们要打开某一中断的屏蔽,这样才能响应该中断,相对应的寄存器为INTMSK;还要设置外部中断的触发方式,如低电平、高电平、上升沿、下降沿等,相对应的寄存器为EXTINTn。另外由于EINT4到EINT7共用一个中断向量,EINT8到EINT2
[单片机]
s3c2440 ads程序移植到keil中(一) 初步完成
1 与其他工程一直一样 直接加入工程进行编译 2440init.s(8): error: A1023E: File option.inc could not be opened: 等错误 直接把option.inc Memcfg.inc 2440addr.inc 直接放在2440init.s的目录中 然后编译 当前记过错误消失 出现 .led.axf: Error: L6238E: 2440init.o(Init) contains invalid call from '~PRES8 (The user did not require code to preserve 8-byte aligment o
[单片机]
<font color='red'>s3c2440</font> ads程序移植到keil中(一) 初步完成

推荐帖子

用TI M3悲剧了,官司上M3只剩3个了
悲剧啊,正在用LM3S5B91,现在处于NRND状态了,不知道5D91能不能换。用6000系列的人惨了。MAC+PHY的替代完全没有了。看来之前没用LM3S6432的决定是完全正确的。用TIM3悲剧了,官司上M3只剩3个了完蛋了呗,明年换片子了。什么官司?了解一下不得,6000.8000.9000目前供货正常TI这么搞,早晚玩完。原帖由fengzhang2002于2012-12-418:29发表不得,6000.8000.9000目前供货正常 目前买是没问题,
xg_qing 微控制器 MCU
求教,开始写第一个驱动程序。
看书很久了,现在想开始写第一个驱动程序,但有些疑惑请教各位:要求功能:通过应用程序控制68013上的PA,PB等I/O口。这样是不是还要编写固件,设备驱动程序和测试程序?这样的I/O口操作,要不要用slavefifo?还是直接用ports(通过IFCFG1:0)各位,很着急,能不能指导一二.谢谢了求教,开始写第一个驱动程序。不顶不行啊应用程序怎么能控制68013上的PA,PB等I/O口只是应用程序与驱动通讯,驱动再来控制68013上的PA,PB等I/O口倒还是可能那通过驱
傻砖头 嵌入式系统
IAR5.5不支持老版本的芯片,如何解决?
请指教IAR5.5不支持老版本的芯片,如何解决? 貌似只是调试有个警告。下载运行出错IAR5.5不支持老版本的芯片,具体是哪个型号?哪个型号的芯片??楼主难道是说所有的老版本芯片都不支持吗是中FLASH容量的芯片,只支持Y版的,没办法,还继续用4.0版IAR
sunlk stm32/stm8
FPGA加速CNN,可选吗?要用什么板?
我本科是机械类的,但是读了电子类的研究生,个人比较菜。现在要选毕业设计方向和课题。我很困惑选哪个。其中一个是FPGA加速CNN,导师是高级讲师,手下没人,手里就几个板子,是台湾友晶科技送的(DE0-CV,DE1-Soc,好像是学生板,千把块钱)。我现在怀疑这几个板子能加速CNN?而且我自己一个人,啥也不懂,也没有学长啥的,我觉得像无头苍蝇一样。还有一个是副教授,不过是搞机器学习,神经网络的,跟着他应该会做医学图像方面的。他好像有几个博士,应该会有人带。但是听说机器学习对数学要求挺高
慢吞吞的小蜗牛 EE_FPGA学习乐园
【求助】各位老师能否提供给我一个独立按键的C子程序啊?
各位老师,我在做设计的时候用到的几个独立按键总是存在抖动干扰的问题,我不知道如何用软件的方法来消除抖动的影响,大家能否给我提供用C语言编写的独立按键防抖动子程序啊,不胜感激。【求助】各位老师能否提供给我一个独立按键的C子程序啊?建议使用延时加二次判断。要给按键去抖,需要多方权衡,采取最合适的办法,不能在“一棵树上吊死”。1、用扫描键盘,使用使用上拉(下拉电阻)和金属弹片式按键2、如果用中断键盘,则要去抖。硬件:上拉(下拉)电阻+电容;软件:延时3、键盘不光需要去抖,还需要防人体
zhang_shuai2005 微控制器 MCU
动手学深度学习(PyTorch版)- 【读书活动-心得分享】pytorch 线形代数相关操作
简介本章节我们将继续学习Pytorch的前置内容,关于线形代数的相关操作.我这里使用的是谷歌的colab,在本章节的最后我会分享本章节的代码文件.正文1、标量标量指的是只有一个元素的张量,我们可以使用torch.tensor()来快速的创建一个标量,并且可以使用标量来进行一些基本的数据操作2、向量向量可以理解为一堆标量组成的数值,可以理解为数组等.我们可以使用下面的API来快速的创建向量在创建向量的
御坂10032号 测评中心专版
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
更多每日新闻

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved