湖南文理学院
课程设计报告
课程名称: 嵌入式系统课程设计 专业班级: 建智11101班 学号(38位) 学生姓名: 张彤 指导教师: 王丽娟 完成时间: 2014年06月01日 报告成绩:
评阅意见: 评阅教师 日期
湖南文理学院制
1
目 录
1 设计要求 ............................................................................................................... 3
1.1 课题研究工作的背景 ........................................................................................................................... 3 1.2 课题研究工作的现状与发展前景 ..................................................................................................... 3
2 设计的作用与目的 ............................................................................................... 4 3 系统方案设计 ....................................................................................................... 4
3.1系统的解决方案 .................................................................................................................................... 4 3.2 视频采集 ............................................................................................................................................... 5 3.3 视频压缩 ............................................................................................................................................... 6 3.4 基于 ARM 的嵌入式系统开发平台 ................................................................................................ 6 3.5 系统总体设计结构图 ......................................................................................................................... 7
4 系统硬件设计 ....................................................................................................... 9
4.1系统硬件结构 ........................................................................................................................................ 9 4.2系统硬件各模块设计 ............................................................................................................................ 9 4.3 PCB 设计 ............................................................................................................................................ 13
5.3.1 PCB 布局 ................................................................................................................................. 14 5.3.2 PCB 布线 ................................................................................................................................. 14
5 系统软件设计 ..................................................................................................... 15
5.1系统初始化程序设计 .......................................................................................................................... 15
5.1.1 ARM 初始化过程 .................................................................................................................... 15 5.1.2 SAA7113 初始化配置 ............................................................................................................. 17 5.2 应用程序设计 ................................................................................................................................... 20
6 系统的仿真与调试 ............................................................................................. 21
6.1系统调试 .............................................................................................................................................. 21
6.1.1 传输与控制模块调试 ............................................................................................................ 22 6.1.2 采集模块调试 ........................................................................................................................ 22 6.1.3 压缩模块调试 ........................................................................................................................ 22 6.1.4 整体调试 ................................................................................................................................ 22 6.2 实验结果及结果分析 ....................................................................................................................... 22
7 嵌入式学习心得 ................................................................................................. 27 参考文献 ................................................................................................................. 30
2
基于ARM的视频采集系统设计
1 设计要求
1.1 课题研究工作的背景
近年来,随着通信技术、微电子技术和计算机技术的飞速发展,网络带宽和存储容量得以大幅度的提高,而电子、通信、广播之间愈来愈紧密的相互交叉联系,世界进入了全数字化网络时代。与此同时,数字多媒体技术也得到了迅速发展,已逐渐渗透至人们生活、工作和学习的各个方面,改变着人们传统的生活方式。人们对视频会议、可视电话、数字电视广播等多媒体技术的需求越来越广泛。然而,在多媒体技术中,尤其是数字视频领域,其信息数据量庞大,对处理能力和存储容量的要求极高,如不进行有效的压缩编码则会给通信和传输带来极大的困难,从而无法满足人们的需求。
1.2 课题研究工作的现状与发展前景
根据图像处理技术发展的不同阶段,视频采集系统大致可分为三个阶段: ① 模拟视频采集系统
模拟视频采集系统一般由图像摄像部分、系统控制部分(视频矩阵切换、云台和镜头控制等)和显示记录部分组成,模拟视频采集系统一般采用模拟方式传输,传输距离较短,主要应用于小范围内的视频图像采集。
② 数字化本地视频采集系统 20 世纪 80 年代,随着数字化技术的发展,图像采集的方式出现了由模拟处理方式向数字处理方式的转变。人们开始使用 PC 机来处理图像信号,借助计算机强大的数据处理能力与显示器的高清晰显示度,通过视频采集卡将视频信号采集到计算机中,并显示在显示器上,从而大大提高了图像的画质。 基于 PC 的采集系统一般在采集现场有若干个摄像机、各种检测、报警探头与数据设备,通过各自的传输线路,汇接到多媒体终端上,多媒体终端可以是一台PC 机,也可以是专用的工业机箱组成的多媒体终端,除了处理各种信息和完成本地所需要的各种功能外,系统利用视频压缩卡和通信接口卡,通过通信网络,将这些信息传到一个或多个监控中心。基于 PC 的多媒体采集系统功能较强,但功耗高,需要有专人值守。
③ 嵌入式网络视频采集系统
嵌入式网络视频采集系统以网络为依托,集中了多媒体技术、数字图像处理及远程网
3
络传输等最新技术,受到了学术界和使用部门的高度重视。嵌入式系统以其本身体积小,实时性高,稳定性好,支持以太网等优点,成为工控领域的新热点。基于嵌入式技术的网络化视频监控系统有效地将嵌入式技术和视频技术结合在一起,可以很好地解决基于 PC 的视频监控系统中存在的问题。
目前,视频采集与压缩系统正朝着前端一体化、视频数字化、网络化和系统集成化的方向发展,而数字化是网络化的前提,网络化又是系统集成化的基础,所以,视频采集与压缩发展的最大两个特点就是数字化和网络化。 然而,国内视频采集与压缩系统的研究仍停留在基于 PC 的基础上,大多数系统利用国外芯片开发视频采集压缩卡,或在现有的视频采集压缩卡上开发采集软件系统,然后组成采集系统,即数字化本地视频采集系统。虽然基于 PC 的视频采集系统终端功能较强,便于现场操作,但价格高昂,功耗较大,PC 机端也需专人管理,对于特殊环境或空间狭小、功耗要求严格的地点,这种方式难以满足要求。
2 设计的作用与目的
本课题研究对象为数字视频采集与压缩系统。作为一种伴随着计算机技术、数字多媒体技术和网络技术飞速发展应运而生的实用处理手段,越来越受到人们的重视。本文在详细分析国内外视频采集与压缩系统发展现状的基础上,针对基于 PC 平台的系统难于满足日益复杂和广泛的图像处理应用需求的现实,提出了一种基于 ARM 的嵌入式平台的视频处理解决方案。该方案充分利用了嵌入式平台集成度高、功耗小、支持多任务操作系统等优点,并利用当前最先进的 JPEG2000 编码压缩算法,通过适当的软硬件设计,力图实现一种体积小、功耗低、一体化的视频图像采集和压缩系统,以满足我们对视频采集和压缩的需求。
本系统的研究对于促进视频采集与压缩系统的仪器化,推动相关产业的发展,具有重要的参考价值和指导意义。
3 系统方案设计
3.1系统的解决方案
目前,嵌入式视频采集与压缩系统的解决方案,主要有以下三种:
① 视频采集芯片+DSP处理器。该方案中由视频采集芯片完成图像的预处理,由DSP完成图像的存储、基于MPEG-4、H.263或MJPEG标准的图像压缩、网络传输。该方案是采用软件压缩,其灵活性高,可以根据需要修改压缩算法,有利于方案的升级,但缺点是控
4
制不够灵活。且DSP通常没有强大的操作系统,功能单一,不适合做系统控制。
② ARM 嵌入式处理器+DSP 处理器。该方案同样采用软件压缩,具有软件压缩的优点,同时由于采用了 ARM 处理器,控制比较灵活,可以用做操作系统,做系统控制。但其缺点是:要使用 ARM 芯片对 DSP 的寄存器进行操作,设计、调试,使用较困难。而且开发周期较长,开发难度大。
③ 视频采集芯片+图像压缩芯片+ARM嵌入式处理器。该方案与前两个方案最大的区别是用图像压缩芯片来代替DSP处理器,采用硬件压缩方法。该方案弥补了方案一和方案二的不足,既采用ARM处理器做系统控制,又可以缩短开发周期,降低开发难度。而且硬件压缩所需编程量小,压缩速度快,压缩芯片同时提供标准视频信号接口,外围电路设计简单。 根据课题需要和综合以上三个方案的优缺点,本课题采用第三个方案,即视频采集芯片+图像压缩芯片+ARM嵌入式处理器。
3.2 视频采集
模拟视频摄像头采集的信号是模拟信号,视频信号中不仅包含图像信号,还包括了行同步信号、行消隐信号、场同步信号、场消隐信号等。因此,视频采集中的视频输入处理就显得非常重要。传统的视频输入处理模块采用分离元件,电路非常复杂,而且可靠性差,不易调试。现今,许多著名的半导体生产厂家将这些复杂的视频 A/D 转换电路集成在一块芯片内,生产出视频采集芯片,为后继的图像处理提供了极大的方便。现在市面的视频采集芯片有 PHILIPS 公司的SAA711X 系统产品、禾瑞亚(EMPIA)公司的 EM2820、美国 TECHWELL公司的 TW6802 等。通过调研,发现 PHILIPS 公司的产品综合性能最佳,性价比最高,故选择其视频采集芯片 SAA7113H 设计视频采集部分。SAA7113H 是飞利浦公司视频解码系列芯片的一种,非常具有代表性,在很多视频产品如电视卡、MPEG2、MPEG4 中都有应用,该芯片采用 CMOS 工艺,通过 I2C 总线与 PC 机或有 I2C 总线接口的控制芯片相连构成应用系统。其内部包含两路模拟处理通道,能实现视频信号源选择、抗混叠滤波、模数转换(A/D)、自动钳位、自动增益控制(AGC)、时钟发生(CGC)、多制式解码、亮度/对比度/饱和度控制(BCS)和多标准 VBI 数据解码。SAA7113H 的主要作用是把输入的模拟视频信号解码成标准的“VPO”数字信号,相当于一种“A/D”器件。7113兼容全球各种视频标准,在我国应用时必须根据我国的视频标准来配置内部的寄存器,即初始化,否则 7113 就不能按要求输出。
5
3.3 视频压缩
通常情况下,压缩可描述为通过消除存在于视频信号里的冗余成分,来减少图像或图像组的内容信息。概括地说,压缩技术就是试图识别冗余内容,再从比特流中除去大量的此类成分。视频压缩的目标是在尽可能保证视觉效果的前提下减少视频数据率。视频压缩比一般指压缩后的数据量与压缩前的数据量之比,由于视频是连续的静态图像,因此其压缩编码算法与静态图像的压缩编码算法有某些共同之处,但是运动的视频还有其自身的特性,因此在压缩时还应考虑其运动特性才能达到高压缩的目标。
3.4 基于 ARM 的嵌入式系统开发平台
要建立一个嵌入式系统开发平台,首先要根据系统的设计目标和性能指标来选择芯片,而选择芯片主要考虑其性能,功耗,专业化水平以及其成本。综合各方面的因素,本系统选择了基于 ARM7TDMI 核的嵌入式微处理器。ARM7TDMI是 ARM7 处理系列成员之一,是目前应用比较广泛的 32 位高性能嵌入式 RISC 处理器之一。主要性能或特性有以下四个方面:
① 指令流水线。ARM7TDMI 使用流水线以提高处理器指令的流动速度。流水线允许几个操作同时进行,以及处理和存储系统连续操作。ARM7TDMI 使用 3级流水线,因此,指令的执行分为 3 个阶段:取指、译码和执行。当正常操作时,在执行一条指令期间,其后续的一个指令进行译码、且第 3 条指令从存储器中取指令。
② 存储器访问。ARM7TDMI 核是冯·诺依曼体系结构,使用单一 32 位数据总线指令和数据。只有加载、存储和交换指令可以访问存储器中的数据。数据可以是:8 位、16 位和 32 位。字必须是 4 字节边界对准,半字必须是 2字节边界对准。
③ 嵌入式 ICE-RT 逻辑。嵌入式 ICE-RT 逻辑为 ARM7TDMI 核提供了集成的在片调试支持。可以使用嵌入式 ICE-RT 逻辑来编写断点或观察断点出现的条件。它包含调试通信通道(DCC,Debug Conmmunication Channel),Dcc 用于在目标和宿主调试器之间传送信息,嵌入式 ICE-RT 逻辑通过 JTAG(Joint Test Action Group)测试访问口进行控制。
④ 指令集。ARM7TDMI 有 2 个指令集:32 位 ARM 指令集和 16 位 THUMB指令集。 ARM7TDMI 核以其自身的独特设计,如基于 RISC 结构、没有 MMU 等,使其在成本上具有先天性的成本优势,比较适合作消费类产品,且功耗很低,是手机、PDA 和网络控制器的首选芯片。ARM7TDMI 系列微处理器的典型处理速度是0.9MIPS/MHz,常见的 ARM7TDMI 芯
6
片系统主时钟为 20MHz~133MHz,在性能上也能保证应用的稳定运行。而在众多的 ARM7TDMI 核心的嵌入式微处理器中。
本文选择了 SAMSUNG 的 S3C44B0X,此款芯片能稳定工作在 70MHz 的系统频率上。选择此款芯片的主要原因是该芯片集成了许多外围设备,这对于快速开发是很有帮助的。当然 SAMSUNG 的 IC 设计水平和芯片生产能力和市场推广能力以及它的知名度也是考虑的一个重要方面。
3.5 系统总体设计结构图
图3.5 视频采集与压缩系统总体设计结构
7
嵌入式视频采集与压缩系统,主要由视频采集与压缩模块及控制与传输模块组成。采用 ARM 处理器 S3C44B0X 作为控制与传输模块的核心芯片,实现对系统数据的控制、外围模块的控制和管理以及数据的传输。
视频采集部分主要是接收模拟视频摄像头输入的模拟信号,并将它转换成符合一定标准的数字信号,输送到后端。这里采用飞利浦公司生产的单片、可编程视频输入采样芯片 SAA7113H,完成模拟电视信号亮度、色度信号的分离,并将模拟电视信号转换成 CCIR656 标准的 8 位 YUV4:2:2 数字信号。S3C44B0X 通过 I2C 总线完成对 SAA7113H 的控制,控制方便,接线简单。 视频压缩部分采用 ADI 公司的单片 JPEG2000 编解码芯片 ADV202,编解码芯片接收 8 位 YUV 数字信号,并完成数字信号的 JPEG2000 压缩编码,压缩后的码流在 S3C44B0X 控制下缓存在 SDRAM 中。 视频传输部分则是通过系统中的 USB 设备与上位机相连,完成将 SDRAM 中的数据实时地传送到上位机进行保存,其接发送过程由 S3C44B0X 芯片控制完成。
4 系统硬件设计
4.1系统硬件结构
根据一般视频系统的功能结构的划分,视频采集与压缩系统的硬件可以分为以下五个模块:1、采集模块;2、压缩模块;3、控制模块;4、传输模块;5、其它模块。
视频采集模块采用视频解码芯片 SAA7113H,在视频采集主控制器S3C44B0X 和 ADV202 的控制下,将外部 CCD 采集到的模拟信号转换为数字信号。视频压缩模块采用 ADV202 进行视频编码和处理,对采集的图像进行图像数据格式转换和压缩等处理。采用 S3C44B0X 芯片与 ADV202 进行通信,同时控制SAA7113H 工作。USB 接口与上位机连接,将图像数据送往上位机,进行下一步的处理分析。系统框图,如图4.1所示。
8
图4.1 系统框图
4.2系统硬件各模块设计
① 视频采集模块设计需要考虑的因素
设计视频采集模块,首先需要考虑的是信号的 A/D 转换,因为采用了集成处理芯片 SAA7113H,通过设置芯片的内部寄存器,可以很方便的实现视频信号的A/D 转换。 SAA7113H 在上电后,芯片不是立即采集模拟视频信号进行 A/D 转换处理和输出数字信号的,它必须由主控制器通过 I2C 串行总线对其内部寄存部进行初始化设置后,才能正常工作。
1) I2C 串行总线。由于主控制器 S3C44B0X 提供 I2C 总线接口,所以 SAA7113H可以通过 SCL、SDA 信号线直接与 S3C44B0X 的相应管脚相连。
2) 输出数据格式。SAA7113H 的 VPO 总线宽度为 8 位,输出格式为标准 ITU-R BT 656 YUV4:2:2 的视频数据。SAA7113H 每个有效扫描行有 720 个像素,在每个 LLC 的上升沿输出一个 Byte 的解码数据,每个像素需要两个 LLC 周期,每个像素都有自己的亮度数据 Y,但是输出的数据中每两个相邻的像素共用一组色差数据 CB、CR,在存储图
9
像数据时我们可以认为每一个像素的数据由两个连续的Byte 表示,但是当需要转换为 RGB 格式或进行其他处理时,是第 2n 个和第 2n+1个像素共用一组色差数据 CB2n、CR2n(n=0,1,2„),相应地进行正确的处理。
② 视频采集模块的硬件电路设计
在使用 SAA7113H 进行图像采集模块设计时,只需对 SAA7113H 的内部结构做大致了解,重点在于如何通过 I2C 总线对芯片内部的寄存器进行初始化控制,使其输出所需的数字视频信号,同时还要掌握芯片的相关信号输出时序。
芯片输出的信号除了 8 位 VPO(总线数字视频输出)外,还包括 VS(场同步)、VREF(场消隐)、HS(行同步)、HREF(行消隐)、ODD(奇偶场指示)。这些信号通过 I2C 总线控制 SAA7113H 内部子地址为 12H 寄存器的值,在芯片 RTS0 和RTS1 两个引脚选择输出。图 4.2 和图4.3 分别为行时序图和场时序图。在图中,HREF 的上升沿表示新的有效行采样的开始,在场消隐期间该信号同样存在,HREF 为低电平时指示行消隐期。VREF 是消隐信号,采用 VRLN=0 的工作方式,其低电平表示消隐期,场消陷期间对数据不做任何处理。ODD 是奇偶指示信号,高电平表示为奇场,低电平表示为偶场。
图4.2行时序图
10
图4.3场时序图
通过 I2C 总线对 7113H 内部寄存器进行初始化之后,启动 A/D 转换,根据行、时序图对 VPO 总线数据进行采样,便可以得到符合 ITU-R BT.656 标准的 YUV4:2:2 数据视频信号。数据输出时序如下图4.4所示:
11
图4.4数据输出时序
从摄像头输出的模拟视频信号通过 RCA-JACK 插座连接到 SAA7113H 的AI22 端口,其余输入端口接地,8 位 VPO 输出接 ADV202 的 8 位数据端口,RTS0,RTS1 分别接 ADV202 的 HSYNC 和 VSYNC,进行硬件帧同步。SAA7113H 的硬件电路图如图4.5所示。 在设计过程中,应注意以下几点:
1)模拟视频信号通过 AI22 端口输入,其余的三个端口应接地,避免不必要噪声影响 SAA7113H 的正常工作。
2)I2C 总线上要有上拉电路。
3)由于此模块同时存在模拟电路和数字电路,所以在电源设计时,要把模拟电源和地与数字电路和地隔离开,防止数字部分产生的噪声干扰模拟输入信号。同时,要在芯片的电源部分和模拟输入端口接上耦合电容和匹配电阻,减小电磁干扰的影响。
12
图4.5 SAA7113H 的硬件电路图
4.3 PCB 设计
本系统主要分为三大模块:视频采集模块、压缩模块和传输与控制模块。其中视频采集模块主要由视频采集芯片 SAA7113H 组成,该模块既有模拟电路部分,也有数字电路部分;传输与控制模块主要由控制器 S3C44B0X 及其外围器件组成,其中 S3C44B0X 和 SDRAM 都是高速器件,尤其 S3C44B0X 的最高频率可达75MHz。这些都给系统的稳定性设计带来了很大的困难,如果设计的不好,系统的抗干扰性将很差,导致整个系统的性能下降,甚至无法正常工作。因此,抗干扰性设计就成了 PCB 设计中的主要解决难题。
13
5.3.1 PCB 布局
在 PCB 设计中,布局是第一个环节,也是一个重要的环节。布局结果的好坏将直接影响布线的效果,因此可以这样认为,合理的布局是 PCB 设计成功的第一步。首先,根据电路中元器件的大小及多少来确定 PCB 板的大小。然后根据电路模块的功能,合理的进行模拟电路部分、数字电路部分和高频电路部分的布局,最后,再对每个部分的元件进行布局。在这里要注意的是,元件在 PCB 板中的摆放位置应该充分考虑抗电磁干扰的问题,同一功能模块中的器件应该尽可能的集中,并且连接线要短、电路的回路应尽可能的小。要使整个系统 PCB 板的布局合理,应该按以下原则进行:
① 按功能和电气性能将电路分成高频/低频电路、数字/模拟电路。
② 在进行某一功能模块的电路布局时,应以该模块的核心器件为中心,围线它进行布局,器件就尽量靠近放置,并调整各元器件以保证连线最为简洁;同时,调整各功能块间的相对位置使功能块间的连线最简洁。
③ 时钟产生器(如:晶振或钟振)要尽量靠近用到该时钟的器件。
④ 布局要求要均衡,疏密有序,不能头重脚轻或一头沉。在放置元器件时,一定要考虑元器件的实际尺寸大小(所占面积和高度)、元器件之间的相对位置,以保证电路板的电气性能和生产安装的可行性和便利性。同时,应该在保证上面原则能够体现的前提下,适当修改器件的摆放,使之整齐美观,如同样的器件要摆放整齐、方向一致。
5.3.2 PCB 布线
布线是整个PCB设计中最重要的工序。这将直接影响着PCB板的性能好坏。 在整个 PCB 中,以布线的设计过程限定最高,技巧最细、工作量最大。PCB 布线有单面布线、双面布线及多层布线。布线的方式也有两种:自动布线及交互式布线,在自动布线之前,可以用交互式预先对要求比较严格的线进行布线,输入端与输出端的边线应避免相邻平行,以免产生反射干扰。必要时应加地线隔离,两相邻层的布线要互相垂直,平行容易产生寄生耦合。 在进行 PCB 布线之前,应先确定所需要的信号布线层数。布线层数的多少直接决定系统的性能和费用,因此选择合适的布线层数至关重要。本设计中,采用四层板设计:中间两层为电源层和地层,正反两层为信号层。
布线时主要按以下原则进行:
① 电路的走向合理。即电路的输入/输出、高频/低频等同类型线路的走向应该是线形的(或分离),不得相互交融,交叉,防止相互干扰。最好的走向是直线,但一般不易
14
实现,最不利的走向是环形。上下层之间走线的方向基本垂直,减少层间信号的电磁干扰。
② 一般情况下,首先应对电源线和地线进行布线,以保证电路板的电气性能。在条件允许的范围内,尽量加宽电源、地线宽度,最好是地线比电源线宽,它们的关系是:地线>电源线>信号线,通常信号线宽为:0.2~0.3mm,最细宽度可达 0.05~0.07mm,电源线一般为 1.2~2.5mm。对数字电路的 PCB 可用宽的地导线组成一个回路, 即构成一个地网来使用(模拟电路的地则不能这样使用)。
③ 任何信号线都不要形成环路,如不可避免,环路应尽量小,这样环面积就越小,对外的辐射就越少,接收外界的干扰也越小。
④ 布线时应避免产生锐角和直角,因为直角和锐角拐角处的线宽会发生变化。同时,信号线的过孔要尽量少,过多的过孔同样会使线宽发生变化,线宽的变化会造成线路特性阻抗的不均匀,传输速度较高时会产生反射,产生不必要的辐射,同时工艺性能也不好。
5 系统软件设计
5.1系统初始化程序设计
5.1.1 ARM 初始化过程
一个嵌入式系统要能正常工作,首先必须对系统进行初始化,即设置系统的中断、I/O 口、存储方式、地址映射等等。这段初始化程序是系统加电后运行的第一段软件代码。它们就如同 PC 机 BIOS 中的引导加载程序,完成硬件检测和资源分配。但在嵌入式系统中,通常没有 BIOS 中的引导加载程序,而是由嵌入式系统的 Bootloader 来完成资源分配。
简单地说,BootLoader 就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。
① U-Boot 的初始化过程
虽然各种嵌入式系统的结构和功能差别很大,但其系统的初始化大部分都是相似的。本设计采用的 Bootloader 为 U-Boot1.1.1,初始化过程一般分为两个阶段:第一阶段,通常由汇编语言编写,用于对 CPU、内存等硬件设备进行初始化;第二阶段,由 C 语言实现,主要完成本阶段的硬件初始化,为加载操作系统做准备。
第一阶段主要代码部分如下:
1)定义入口地址。U-Boot 必须有一个入口点,并且只能有一个全局入口,通常这个入口放在 ROM(Flash)的 0x0 地址。
15
2)设置异常中断向量。中断向量表位于从 0x0 地址开始、连续 8×4 字节的空间内。当中断发生后,ARM 处理器便强制把程序计数器(PC)指针置为向量表中对应中断类型的地址值,使程序跳转到相应的异常中断处理程序执行。
3)设置 CPU 的速度、时钟频率及终端控制寄存器。根据 CPU 体系结构和具体的硬件配置来设置合适的 CPU 的速度、时钟频率及终端控制寄存器。
4)初始化内存控制器。将标号为 SMRDATA 处的值通过 13 个寄存器 r1-r13赋予从 0x01c80000 开始的寄存器中,用于设置总线宽度与等待控制寄存器、BANCONn 控制寄存器。
5)将 ROM 中的程序复制到 RAM 中。
6)初始化堆栈。由于 ARM 处理器有 7 种执行状态,因此对程序中需要用到的每一种模式都要定义一个堆栈地址。方法是改变状态寄存器(CPSR)内的状态位,使处理器切换到不同的状态,然后给 SP 赋值。
7)转到 RAM 中执行,该工作可使用指令 ldr pc 来完成。 第二阶段主要代码部分如下:
1)调用一系列的初始化函数。这些初始化函数主要是进行 CPU 相关设置、电路板相关设置、中断设置、初始化环境变量、初始化串口等等。
2)初始化 Flash 设备。 3)初始化系统内存分配函数。
4)进去命令循环(即整个 boot 的工作循环),接受用户从串口输入的命令,然后进行相应的工作。
② U-Boot 的移植
移植 U-Boot 的首要条件是熟悉系统的硬件资料,根据系统的硬件情况来修改相关的参数。首先在 U-Boot 的 board 目录中选择一款与本设计最相似的硬件系统,以它为模板进行相关参数的修改。
③ S3C44B0X 的启动流程图
S3C44B0X 的启动流程图如图 5.1所示。
16
图5.1 S3C44B0X 的启动流程图
5.1.2 SAA7113 初始化配置
SAA7113 的初始化配置是主控制器 S3C44B0X 通过 I2C 总线对 SAA7113 的寄存器进行配置,从而控制 A/D 转换的全过程。初始化包括:模拟输入通道选择、亮度设置、色度设置、同步信号设置和输出控制等。
SAA7113 有 256 个内部寄存器(00~FFH)。其中地址 00H 是芯片版本信息寄存器(只读),01H~05H 是前端配置状态寄存器,用于设置前端模拟输入通道的工作状态,具体根据输入模拟视频信号的类型和格式进行设置。06H~13H、15H~17H 是解码部分的工作方式配置寄存器,进行同步信号控制、亮度色度控制和输出信号控制,其中 12H 寄存器用于 RTS0、RTS1 的输出控制,11H~13H 是输出控制寄存器;1FH 是只读的解码状态寄存器,报告解码过程中的各种信号状态;40~60H、60H~62H 是行/场图像控制、状态寄存器,用
17
于设置 VPO 的数据格式等;14H、18H~1EH、20H~3FH、63H~FFH 均为保留地址,没有用到。对 SAA7113 的读写操作过程如表5.1所示。
表5.1 SAA7113 的读写操作过程
其中,S:启动信号,当时钟 SCL 为高电平时,数据线 SDA 由高电平变成低电平即启动 I2C 总线; Sr:重复设一个起始位; Slave address W:芯片写从地址,0100 1010=4AH,若 RTS0 通过 3.3K 电阻接地,则为 48H; Slave address R:芯片读从地址,0100 1011=4BH,若 RTS0 通过 3.3K 电阻接地,则为 49H; ACK-S:从应答信号; ACK-m:主应答信号; Subaddress:寄存器地址; P:结束信号,当时钟 SCL 为高电平时,数据线 SDA 由低电平变为高电平即为结束。
由SAA7113 读写操作时序可以看出,SAA7113 的控制寄存器的读操作要比写操作复杂。读操作分为两步执行:首先发送一个开始信号,完成对从地址的写操作,再写子地址;接着重新发送一个开始信号,对从地址进行读操作,当主器件接到从应答信号后,开始输出数据,数据输出结束后发送终止信号。SAA7113 的初始化流程图,如图5.2 所示。
18
9
图5.2 SAA7113 的初始化流程图
19
根据课题需要,现将 SAA7113 初始化设定为:一路模拟视频信号输入(AI22)、自动增益控制、PAL 制式 50Hz、YUV4:2:2 的 8 位数字视频信号。具体的设定参数见表5.2所示。
表5.2 具体的设定参数
20
5.2 应用程序设计
在进行应用程序设计之前,首先得编写相应的 IOCTL 函数,IOCTL 是设备驱动程序中对设备的 I/O 通道进行管理的函数。通过调用 IOCTL 函数就可以进行硬件控制和相互通讯。
在本系统中,IOCTL 函数主要完成的操作有:
① 对 SAA7113 和 ADV202 的相关寄存器进行读写操作。 ② 通过对 SAA7113 和 ADV202 的控制来获取视频数据。 ③ 停止视频采集并释放内存资源。
然后就可以编写应用程序来控制系统运行的整个过程了。程序流程图如下图 5.3所示。
图5.3 程序流程图
程序首先将控制命令通过 USB 接口发送到 S3C44B0X 控制器,由 S3C44B0X初始化设备,接着调用 open 函数打开设备,进入相应的 ioctl 函数进行操作,从而获取视频数据,并将其暂存在 SDRAM 中。最后再通过 USB 接口发送命令,将SDRAM 中的视频数据传输到 PC 机上。
6 系统的仿真与调试
6.1系统调试
系统的硬件和软件设计完成后,接下来的工作是系统调试和测试。首先将系统按功能分模块进行调试,调试成功后,再将各个模块连接起来组成一个完整的系统进行整体测试,并对测试的结果进行分析。
本系统分为三大模块:采集模块、压缩模块和传输与控制模块。其中采集模块以 SAA7113 为核心,压缩模块以 ADV202 为核心,传输与控制模块则由S3C44B0X 与外围器件组成。首先,必须对传输与控制模块进行调试,因为采集模块和压缩模块都需要控制模块对其进行初始化。
21
6.1.1 传输与控制模块调试
在保证电源电路、晶振电路和复位电路正常工作后,按照所示的 U-Boot移植过程,将编译好的 U-Boot 通过 JTAG 口下载到 S3C44B0X 的 FLASH 中运行,然后在系统中加载各个功能的测试程序进行测试,如:IIC.C、UART.C、DMA.C等等。通过示波器观察 S3C44B0X 对应引脚输出波型,判断其是否工作正常。
6.1.2 采集模块调试
采集模块的调试就是对 SAA7113 芯片的调试,主要有以下三个方面:
① 将 SAA7113 的 I2C 接口与 S3C44B0X 的 I2C 相连,系统上电后,首先对I2C 总线进行初始化,再通过 I2C 总线对 SAA7113 内部寄存器配置,进行初始化。
② PLL 输出。PLL 是晶体振荡器经过 SAA7113 内部倍频发生器,输出的时钟信号,用示波器测试其是否为 27MHz。
③ 在有模拟视频输入源的情况下,用示波器观察其输出视频接口的时序,检查是否有信号输出。如果有,则证明 SAA7113 初始化正常。
6.1.3 压缩模块调试
压缩模块由 ADV202 芯片构成,功能是完成数字视频信号的压缩编码处理。对于 ADV202 的调试,首先将 ADV202 外围总线与嵌入式平台相连,通过ADDR[0..3]、 CS 、WE 、 RD 和 HDATA[0..15],将固件程序下载到 ADV202 内部存储器里,使固件程序运行,通过读取 ADV202 内部寄存器的值测试 ADV202 是否工作正常。
6.1.4 整体调试
整体调试是将所有程序综合在一起,使整个系统都能正常工作所进行的调试。程序包括:初始化程序、I2C 总线程序、驱动程序,PC 机上的应用程序。
6.2 实验结果及结果分析
整个系统软硬件整体调试完成以后,就能地完成视频采集、压缩和传输功能。为了测试 JPEG2000 压缩算法的特点和优势,现将 ADV202 固件参数中的RCVAL(目标大小/品质因子)值进行设定,RCVAL 的计算方式如图6.2所示:
22
在本设计中,从 SAA7113 输出的是标准的 PAL 制式的电视信号:25 帧/秒,2场/帧。如果要得到 20Mb/s 的输出速率,则根据式,可计算得 RCVAL=50000,16 进制为 0xC350H。 表6.1所示是数据输出速率与 RCVAL 之间的对应关系,可以根据设计需要改变 RCVAL 的值,得到不同的数据输出速率,前提是 RCTYPE 必须设定为 0x0001H。
表6.1 数据输出速率与 RCVAL 之间的对应关系
表 6.2(b)、(c)和(d)中分别给出了输出速率在 8Mb/s、4Mb/s、2Mb/s 和 1Mb/s
时的输出图像,其中(a)为无损的图像源。从图中可以看出,随着输出速率的降低,图像的压缩比率在不断的增大,但图像的 PSNR(峰值信噪比)却在不断减小。在输出速率为 8Mb/s,压缩比为 20:1 时,视觉效果良好,细节部分清晰可辨,如图6.2(b);当输出速率降低到 2Mb/s 时,压缩比为 80:1,虽然图像整体效果比较好,但细节部分已经出现模糊,如图 6.2(d);而在输出速率降到 1Mb/s 时,压缩比为 160:
1,这时图像细节信息基本无法识别,如图 6.2(e)。表 7.2 所示给出了相同压缩比率情况下 JPEG2000 图像与 JPEG 图像的 PSNR 值。比较可以得出,在压缩率都不高的情况下,JPEG 和 JPEG2000 图像的失真率都比较低,基本没有太大差别,但随着压缩比率的上升,JPEG 的 PSNR 值较 JPEG2000 下降得快,图像失真也越来越严重。
表 6.2 输出速率在 8Mb/s、4Mb/s、2Mb/s 和 1Mb/s时输出图像
23
由此可以看出,JPEG2000 图像压缩的优势和特点:在低压缩比情形下(比如压缩比小于 10:1),传统的 JPEG 图像质量有可能要比 JPEG2000 要好,但在压缩比比较高的情形下,JPEG2000 的优势才开始展现出来。整体来说,和传统的 JPEG相比,JPEG2000 仍然有很大的技术优势,通常压缩性能大概可以提高 20%以上。一般在压缩比达到 100:1 的情形下,采用 JPEG 压缩的图像已经严重失真并开始难以识别了,但 JPEG2000 的图像仍可识别。
图6.2(a)无损图像源
24
图6.2(b)8Mb/s 压缩比率 20:1 PSNR:41.63dB
图6.2(c)4Mb/s 压缩比率 40:1 PSNR:37.46dB
25
图6.2(d)2Mb/s 压缩比率 80:1 PSNR:34.15dB
图6.2(e) 1Mb/s 压缩比率 160:1 PSNR:31.43dB
26
7 嵌入式学习心得
当今社会,嵌入式系统已经渗透到人们工作、生活中的各个领域,嵌入式处理器已占分散处理器市场份额的94%。而嵌入式Linux系统也蓬勃发展,不仅继承了Linux源码开放、内核稳定高效、软件丰富等优势,还具备支持广泛处理器结构和硬件平台、占有空间小、成本低廉、结构紧凑等特点。
我很幸运接触了嵌入式,在嵌入式实验我知道了构建嵌入式系统的开发环境明白了交叉编译:交叉编译的环境建立在宿主机上,而对应的开发板为目标机。为了使宿主机上开发的程序能够方便的下载到目标机上运行,一般还要在宿主机上配置好网络,使其支持NFS或tftp等网络服务,从而达到两台机器之间的文件共享,知道了宿主机与目标机之间的关系:在嵌入式系统开发过程中,由于可执行程序的编译过程和执行过程分别在宿主机和目标机上完成,因此实现宿主机和目标机之间的实时交互能够大幅度提高嵌入式系统开发的效率。由于目标机也带有操作系统,因此可以通过实现不同机器之间的网络共享来完成实时交互。宿主机开发程序,而目标机作为最后的执行机。两者在开发时需要交替结合进行。知道了UBOOT移植、UBOOT编译、UBOOT烧写。LINUX内核的移植、LINUX内核烧写。LINUX驱动程序的编写系统调用是操作系统内核和应用程序之间的接口,设备驱动程序是操作系统内核和机器硬件之间的接口.设备驱动程序为应用程序屏蔽了硬件的细节,这样在应用程序看来,硬件设备只是一个设备文件, 应用程序可以像操作普通文件一样对硬件设备进行操作.设备驱动程序是内核的一部分,它完成以下的功能:对设备初始化和释放、把数据从内核传送到硬件和从硬件读取数据、读取应用程序传送给设备文件的数据和回送应用程序请求的数据、检测和处理设备出现的错误. 在Linux操作系统下有两类主要的设备文件类型,一种是字符设备,另一种是块设备. 字符设备和块设备的主要区别是:在对字符设备发出读/写请求时,实际的硬件I/O一般就紧接着发生了,块设备则不然,它利用一块系统内存作缓冲区,当用户 进程对设备请求能满足用户的要求,就返回请求的数据,如果不能,就调用请求函数来进行实际的I/O操作.块设备是主要针对磁盘等慢速设备设计的,以免耗费 过多的CPU时间来等待. 、DM46 USB驱动编写。ARM+DSP双处理器开发实验。在这些实验当中我遇到了很多问题,因为是第一次接触linux,很多命令都不清楚,操作起来很不方便,使实验进度很慢,并且很多命令也是比葫芦画瓢,根本不知道为什么这么用,所以导致命令不熟练,下次操作时依然需要回忆。在程序开发中我在课下熟悉了shell命令以后,对一般的操作也算了解,我明白了问题就如爬山:不怕慢
27
就怕站,只要我慢慢积累我就会学到应该如何编写我自己的程序,搭建我自己的嵌入式系统。尽管我们已经懂得了一些皮毛但是前方的路依然任重道远,要想把我们专业的优势发挥出来就需要软硬件结合,这无疑是一次巨大的契机,我感觉在结课以后我们一定仔细想在实验中做的不足,以及实验中给我的资源我如何合理的应用。毕竟学无止境,我也看看其他论坛上应该建议我们如何学习嵌入式,但是众说纷纭,我不应该关注别人做了什么,但是我应该明白我的每一次付出会有什么收获,毕竟再多的参考也比不上你的实际情况,正如我们的dm46它的学习方式与一般的arm还是有区别的,所以要因材施教。
其实在你想做嵌入式Linux的时候,要对自己有信心。很可能自己以前学习的不是这个专业或者以前没有接触过,就像我一样,我以前也没接触过嵌入式,一旦我们确定了自己要做嵌入式,我想摆在我们面前的最大的一个难题就是,嵌入式对我们很模糊,好想心理面有好多好多阴霾,不用怕,请相信自己,新手都是这样,有疑团,才会激发我们探索的动力和激情。相信自己,在不久的将来自己会摸到嵌入式的棱角的,摸清他的面貌的。把学习穿插到日常生活中。一旦决定要学,就从现在开始学习,永远不要希望人的一生会腾出一段时间来让你去专门学习嵌入式的,就像当你出生的时候,永远不可能会专门腾出一段时间来让你专门学走路,最终情况是你学走路的同时很可能也在学习说话,学习吃饭。所以,对于学生来说,永远不要试图把学习嵌入式挪到假期,因为你不能预料到假期你会发生什么而耽误你学习的时间。需要用到什么学什么。不要企图把Linux,arm等所谓的什么教程之内的书看完了再去做开发。个人觉得Linux,只要知道大概,只要知道简单的命令,会用就可以了,但是gcc,gdb一定要掌握,然后就是要掌握嵌入式Linux和Linux开发环境的配置。嵌入式Linux是在开发板里面的Linux。而单纯的说Linux说的是PC上的Linux。遇到问题,我们就去解决,要解决,我们就可以翻书,查资料,这样既可以缩短项目开发周期,又可以学习,这样就避免了可能你把一本关于Linux的书看完了,你还不知道如何去做嵌入式Linux开发。
不管你要做什么开发,装上Linux后,请安装英文版的,并且尽量在无图形界面写工作。因为很多公司都明确禁止用Linux图形界面和中文版的。不管做什么开发,应用开发,或者是驱动开发,都要先编译内核,因为有好多文件是只有你编译内核之后才能产生的,而这些文件,很可能就是你要用的。做应用开发,首先用从读懂驱动入手。不要求你会写驱动,但是起码要读懂驱动,这样才有助于应用开发除非你的嵌入式开发板是跑裸机,也就是没有Linux系统,你可以操作arm的寄存器,可以直接操作硬件,比如JTAG仿真就是。其他情况,一旦你有Linux系统,你的程序时不可能直接操作硬件的。明白这一点,
28
你就不会向我一样,开始做嵌入式Linux应用的时候以为可以和单片机一样,直接控制引脚来写程序了。有了Linux,用主要用的系统提供给用户的接口。
要时刻把握每一次提高自己的机会!
29
参考文献
[1] 刘达.数字电视技术(第2版)[M].北京:电子工业出版社,2007. [2] 许志祥.数字电视与图像通信[M].上海:上海大学出版社,2000.
[3] Dapeng Wu,Yiwei Thomasd Hou,Wenwu Zhu,etc.Streaming Video over the Internet: Approaches and Directions.IEEE Transactions on circuits and Systems for Video Technoloty, 2001,11(3) [4]
SAA7113H
,
9
-
Bit
Video
Processor.Philips
Semiconductors[S].Koninklijke Philips Electronics N.V.1999.
[5] David S Taubman,Michael W Marcellin.魏江力译.JPEG2000图像压缩基础、标准和实践 [M].北京:电子工业出版社,2004.
[6] ISO/IEC JTC1/SC29/WG1 N2412,The JPEG-2000 Still Image Compression Standard[S]. 2002.
[7] 陈宁,张利,王志华.Motion JPEG2000 的特点和应用[J].北京:清华大学,2002. [8] ADV202 JPEG2000 Video Codec Data Sheep[Z].Analog Devices Inc,2004 [9] 孔祥刚.基于 PCI 总线 DSP 图像处理试验平台的研究[D].硕士论文.浙江:浙江大学2003.
[10] 郭银景,吕文红等.电磁兼容原理及应用教程[M].北京:清华大学出版社.2004. [11] How to Use the ADV202[R].Analog Devices Inc.2005. [12] FAQ_ADV202[R].Analog Devices Inc.2007.
[13] ADV202 JPEG2000 Video Codec,Analog Devices[Z].Analog Devices Inc.2006. [14] TPS767D301-Q1,Dual-Output Low-Dropout Voltage Regulators[Z].Texas Instruments.2004
[15] 李岩,荣盘祥编著.基于 S3C44BOX 嵌入式 µCLinux 系统原理及应用[M].北京:清华大学出版社,2005.
[16] 张崙.32位嵌入式系统硬件设计与调试[M].北京:机械工业出版社,2006. [17] Am29LV160B Data Sheet[S],Advanced Micro Devices,Inc.2003 [18] HY57V561620(L)T Data Sheet[S],Hyundai Electronics.2001. [19] 王云飞.USB 系统研究[D].北京:清华大学,2001.
[20] 张义和.电路板设计 Layout Plus V9[M].北京:中国铁道出版社,2000.
30
[21] Mark I.Montrose.电磁兼容和印刷电路板理论、设计和布线[M].北京:人民邮电出版社,2002.
[22] 胥静.嵌入式系统设计与开发实例详解-基于 ARM 的应用[M].北京:北京航空航天大学出版社,2005. [23]
詹
荣
开
.
嵌
入
式
系
统
Bootloader
技
术
内
幕.http://www-128.ibm.Com/developerworks/cn/.
[24] 张晓健.视频解码芯片 SAA7113 的初始化与控制[J].电子设计应用,2003 年第 8 期。
[25] 孔祥刚,诸静,阳涛.SAA7113H 在视频采集接口设计中的应用[J].电子技术,2003 年第12 期,起止页码:26-29.
[26] 何立民.I2C 总线应用系统[M].北京:北京航空航天大学出版社,2002. [27] Getting Start with the ADV202(Rev1.12)[R].Analog Devices.Inc.2004. [28] ADV202 JPEG2000 Video Processor User's Guide(Revision 3.4)[S].Analog Devices.Inc.2006.
[29] ADV202_ADV212_LCODE_1[S].Analog Devices Inc.2005.
[30] 田泽.嵌入式系统开发与应用[M].北京:北京航空航天大学出版社.2006. [31] 倪继利.Linux 内核分析与编程[M].北京:电子工业出版社,2005.
[32] Wang Liwei,Yang Houjun,Fan Yanbing.Transplant µCLinux Based on S3C44B0X Through U- Boot[J].南京师范大学学报(工程技术版).2008 年第 8 卷第 4 期,起止页码:150-154.
[33] 潘冬,李久贤,金立左.面向嵌入式视频处理平台的 Linux 移植[J].电子工程师.2008 年 第34 卷第 10 期,起止页码:56-59.
[34] 王学龙.嵌入式 Linux 系统设计与应用[M].北京:清华大学出版社,2002. [35] 陈莉君.Linux 操作系统内核分析[M].北京:人民邮电出版社,2000. [36] 倪继利.Linux 内核分析与编程[M].北京:电子工业出版社,2005. [37]RedHatInc.JFFS2
SourceCode[DB/OL].http://usr/src
/linux-2.4.24/fs/jffs2 .www.kernel. org.2002.
[38] 刘军良,潘刚,李平.µCLinux 下 JFFS2 文件系统的建立[J].机电工程.2006 年第 23 卷第 6 期。
[39] Vipin Malik.The Linux MTD,JFFS HOWTO.ftp://ftp.linux.org.Uk,2003.
31
[40] 张群.基于 ARM 的嵌入式远程视频监控系统的研究与实现[D].硕士论文.湖南:湖南大学,2008.
[41] 周立功.PDIUSBD12 USB 固件编程与驱动开发[M].北京:北京航空航天大学出版社,2003.
[42] 董友才,陈洪亮,梁倩.基于 PDIUSBD12 的 USB 接口固件程序设计[J].电子测量技术.2007年第 30 卷第 8 期。
[43] 徐华中,马波.基于 PDIUSBD12 芯片的 USB 模块设计[J].武汉理工大学学报·信息管理工程版.2008 年第 30 卷第 2 期。
[44] Skodras A.N.,Christopoulos C.A.,and Ebrahimi.JPEG2000:The Upcoming Still Image Compression Standard[J].Proceedings of the 11thProtuguese Conference
on
Pattern
Recognition,Porto,Portugal,May
11th-12th,,2000.ppp.359-366.
32
附录一:
33
附录二: 程序清单:
1)include/configs/cfb44b0.h ---- 配置文件,大部分参数是这里配置的。
#define CONFIG_S3C44B0_CLOCK_SPEED 60 /*设置 S3C44B0 的主频为 60MHz*/ #define CONFIG_NR_DRAM_BANKS 1 /*系统中 DRAM 的数量为 1 */ #define PHYS_SDRAM_1 0xc0000000 /* SDRAM Bank #1 的地址*/ #define PHYS_SDRAM_1_SIZE 0x02000000 /* SDRAM 容量是 32 MB */ #define PHYS_FLASH_1 0x00000000 /* Flash Bank #1 的地址*/ #define PHYS_FLASH_SIZE 0x00200000 /*Flash 容量是 2 MB */ 2)board/cfb44b0/cfb44b0/lowlevel_init.S -- 内存参数配置。 .long 0x1001012 /*小端存储模式,16 位数据总线宽度*/ .word 0x600 /*GCS0*/ .word 0x7ffc /*GCS1*/ .word 0x7ffc /*GCS2*/ .word 0x7ffc /*GCS3*/ .word 0x7ffc /*GCS4*/ .word 0x7ffc /*GCS5*/ .word 0x18000 /*GCS6*/ .word 0x18000 /*GCS7*/
.word 0x96062d /*REFRESH RFEN=1, TREFMD=0, trp=3clk, trc=5clk, tchr=3clk,count=1580*/
.word 0x10 /*低功耗 SCLK , BANKSIZE 32M/32M*/ .word 0x20 /*MRSR6 CL=2clk*/ .word 0x20 /*MRSR7 CL=2clk*/ 3)cpu/s3c44b0/serial.c -- 串口配置。 case 115200:
#if CONFIG_S3C44B0_CLOCK_SPEED==60 divisor = 32;
4)cpu/s3c44b0/start.S -- 程序入口。 ldr r1, =PLLCON
#if CONFIG_S3C44B0_CLOCK_SPEED==60
ldr r0, =0x58061 /* 60MHz (Quartz=10MHz) */ #elif CONFIG_S3C44B0_CLOCK_SPEED==75
ldr r0, =0x610c1 /* Xtal=20mhz Fclk=75MHz */ #else
# error CONFIG_S3C44B0_CLOCK_SPEED undefined #endif
修改完成后,最后在 Linux 下用 arm-linux-gcc 编译器对 U-Boot 进行编译: [root@chaocfb u-boot]# make cfb44b0_config [root@chaocfb u-boot]# make
烧入 FLASH 启动,显示界面如下:
U-Boot 1.1.1----www.itsn.cn (Jul 29 2008 - 11:35:07)
U-Boot code: 0C700000 -> 0C7212EC BSS: -> 0C755C38 RAM Configuration:
34
Bank #0: 0c000000 32 MB Flash: 2 MB
*** Warning - bad CRC, using default environment In: serial Out: serial Err: serial
Hit any key to stop autoboot: 0 itsn_44b0=>
③ S3C44B0X 的启动流程图
35
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- aiwanbo.com 版权所有 赣ICP备2024042808号-3
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务