建立和调用ROM
- 格式:docx
- 大小:557.23 KB
- 文档页数:7
正弦信号发生器的设计
一、实验目的
1、进一步熟悉QuartusII软件的使用,掌握可编程器件的开发设计的过程。
2、掌握QuartusII中国宏模块的使用方法,重点是LMP_ROM与FPGA硬件资源的使用方法。
3、进一步熟悉GW48-PK2 EDA实验系统。
二、实验内容
采用图形输入方法完成以下正弦信号发生器的设计。
其中6为二进制加法计数器采用兆功能库的arithmetic中的lpm_counter来实现。
ROM元件采用storage中的lpm_rom实现。
ROM数据表中的正弦信号为64字节。
操作如下:
1、新建工程文件,取名为SIN。
2、创建初始化文件,为SIN.mif。
3、建立LPM_ROM.
4、建立LPM_COUNTER文件
5、绘制电路图及编译
6、仿真波形的建立与存盘
7、仿真波形前的检查、仿真,检查结果
8、波形仿真前的检查,进行仿真,检查结果。
9、绑定管脚,进行仿真
10、下载程序,在实验箱上验证结果。
11、重复前面的步骤,设计多波形的信号发生器。
(老师对不起,由于我实验的照片找不到了,就借用了同学的多波形的图片。
)。
创建能够硬盘启动的bootrom孔令宽2009-9-10 本文主要介绍创建bootrom的一般方法,关于添加rtl8139驱动,请参考《8139驱动完全版》。
要在计算机上运行vxworks,就需要一个引导程序来启动内核,bootrom就是这个功能。
而bootrom的运行需要一个载体,可以使软盘,也可以是硬盘。
现在软盘比较难找,所以本文主要介绍在硬盘上安装bootrom。
运行条件:首先要注意,不是所有的PC机都能安装上VxWorks,最基本的条件是,需要PATA硬盘,现在流行的串口硬(SATA)盘vxworks 不支持。
————【华力创通公司工程师说的】。
而且由于X86平台(PC机)不像ARM平台,有JTAG调试接口,所以一旦VxWorks启动过程中出现问题,除了经验之外,没有办法知道到底是哪里出了错误。
这也是比较头疼的问题。
制作bootrom需要使用Tornado自带的BSP包(我们实验室里面用的BSP包是X86架构机器的BSP包,在安装完Tornado后安装的那个)。
根据计算机的CPU型号来选择,一般选择“pcPentium”这个BSP包,如果不能正常工作,再尝试用其他的BSP包。
这个文件夹的目录在C:\Tornado2.2\target\config 。
我们新建一个新的目录,名称自己定,我这里取名为KLKBSPExample,把pcPentium文件夹里面的所有文件复制到KLKBSPExample目录里。
在开始之前我先介绍一个DOS命令:Displays the name of or changes the current directory.CD [drive:][path] 进入到driver:盘path目录下CD [..] 退出一级子目录(文件夹)CD [\] 退出到根目录Specifies that you want to change to the parent directory.我们需要一个2进制文本编辑工具来修改代码内容,这样比较方便,我推荐用UltraEdit-32。
rom的使用方法ROM(Read-Only Memory)是一种用于存储程序和数据的硬件设备,其内容在制造过程中被写入,因此不可修改。
ROM广泛应用于计算机、手机、游戏机等设备中,它的使用方法如下。
一、ROM的分类ROM可以根据其工作原理和特点进行分类。
常见的ROM类型包括:1. PROM(Programmable Read-Only Memory):可编程只读存储器,用户可以通过特殊设备将数据写入ROM中,但一旦写入后就无法修改。
2. EPROM(Erasable Programmable Read-Only Memory):可擦写可编程只读存储器,用户可以使用紫外线照射来擦除其中的数据,并重新编程。
3. EEPROM(Electrically Erasable Programmable Read-Only Memory):可电擦写可编程只读存储器,用户可以通过电信号来擦除其中的数据,并进行重新编程。
4. Flash ROM:一种非易失性存储器,可通过电信号进行擦写和编程,广泛应用于各种移动设备。
二、ROM的使用方法1. 存储固件:ROM常用于存储设备的固件,如计算机的BIOS(基本输入输出系统),手机的操作系统等。
用户无法直接修改其中的数据,但可以通过更新固件的方式来升级设备的功能和性能。
2. 存储引导程序:ROM中还可以存储设备的引导程序,用于在设备启动时加载操作系统或其他应用程序。
引导程序的作用是初始化设备的硬件环境,并将控制权交给操作系统。
3. 存储数据表:某些设备需要预先存储一些常用的数据表,例如显卡中的字符显示表、颜色表等。
这些数据表通常存储在ROM中,以提高设备的运行效率。
4. 存储嵌入式系统:许多嵌入式系统需要存储一些固定的程序和数据,ROM是一种理想的存储介质。
嵌入式系统通常具有高度稳定性和安全性要求,ROM的只读特性可以确保数据的完整性和安全性。
5. 存储游戏软件:ROM还广泛用于游戏机和电脑游戏软件中。
自定义ROM及手动获取ROOT权限完整教程1、自定义ROM及手动获取ROOT权限2、在原厂ROM的基础上,手动获取ROOT权限。
3、修改U-BOOT,调整DATA,SYSTEM,CACHE等各分区大小。
修改System.img,添加软件,修改字体,制作专属于自己的ROM。
本教程不包含以下内容1、自定义Recovery(复杂,容易变砖)。
系统美化(本人只追求速度,对美化无感)。
材料准备1、官方ROM包2、权限管理软件(APK格式,非一键Root软件,是Root之后用来管理权限的软件。
网上很多)3、SU文件。
已分享。
2,3两项都可以从别人ROM里扒过来,下面会再详细说工具准备1、PAC刷机包解包打包+刷机工具:DloaderR V2.932、IMG文件修改工具:yaffs2img浏览器破解版3、U-boot文件修改工具:Winhex4、解压工具WinRAR第一部分在原厂ROM的基础上,手动获取ROOT权限1、获得官方刷机包之后,(文件名类似于960114_8463_V0811.pac)我们需要对PAC文件进行解包,在DloaderR文件夹下,打开Bin文件夹下的DloaderR.exe2、DloaderR中,点击单齿轮按钮(第一个按钮)打开PAC文件。
点击双齿轮按钮(第二个按钮),找到PAC文件临时解包的位置。
见图。
吧友补充,可以在运行处输入命令:%temp% 即可进入临时文件夹,推荐此方法,谢谢朋友提醒。
3、进入找到的临时文件夹“_DownloadFiles13343529”,(数字随机,这个文件夹里就是PAC解包后的所有文件了),将整个文件夹复制到别处,备用。
DloaderR 软件不关闭4、打开yaffs2img浏览器破解版,打开刚才复制出来的system.img,将SU 文件复制到\bin\和\xbin\下面,修改权限为6755。
将APK文件复制到\app\下面,修改权限为0755。
5、整理另存,选择NAND FLASH ECC,确定。
RAM(随机存储器),ROM(只读存储器),内存还有硬盘到底有什么区别呢?内存在电脑中起着举足轻重的作用。
内存一般采用半导体存储单元,包括随机存储器(RAM),只读存储器(ROM),以及高速缓存(CACHE)。
只不过因为RAM是其中最重要的存储器。
通常所说的内存即指电脑系统中的RAM。
RAM要求每时每刻都不断地供电,否则数据会丢失。
如果在关闭电源以后RAM中的数据也不丢失就好了,这样就可以在每一次开机时都保证电脑处于上一次关机的状态,而不必每次都重新启动电脑,重新打开应用程序了。
但是RAM要求不断的电源供应,那有没有办法解决这个问题呢?随着技术的进步,人们想到了一个办法,即给RAM供应少量的电源保持RAM的数据不丢失,这就是电脑的休眠功能,特别在Win2000里这个功能得到了很好的应用,休眠时电源处于连接状态,但是耗费少量的电能。
按内存条的接口形式,常见内存条有两种:单列直插内存条(SIMM),和双列直插内存条(DIMM)。
SIMM内存条分为30线,72线两种。
DIMM内存条与SIMM内存条相比引脚增加到168线。
DIMM可单条使用,不同容量可混合使用,SIMM必须成对使用。
按内存的工作方式,内存又有FPA EDO DRAM和SDRAM(同步动态RAM)等形式。
FPA(FAST PAGE MODE)RAM 快速页面模式随机存取存储器:这是较早的电脑系统普通使用的内存,它每个三个时钟脉冲周期传送一次数据。
EDO(EXTENDED DATA OUT)RAM 扩展数据输出随机存取存储器:EDO内存取消了主板与内存两个存储周期之间的时间间隔,他每个两个时钟脉冲周期输出一次数据,大大地缩短了存取时间,是存储速度提高30%。
EDO一般是72脚,EDO内存已经被SDRAM所取代。
S(SYSNECRONOUS)DRAM 同步动态随机存取存储器:SDRAM为168脚,这是目前PENTIUM及以上机型使用的内存。
SDRAM将CPU与RAM通过一个相同的时钟锁在一起,使CPU和RAM能够共享一个时钟周期,以相同的速度同步工作,每一个时钟脉冲的上升沿便开始传递数据,速度比EDO内存提高50%。
Z97主板的RAID配置详解Z97主板的RAID配置有2种模式:传统模式和UEFI模式。
传统模式支持2,2TB的RAID卷(传统模式要支持大于2.2T,需要建立2个RAID卷。
),UEFI模式支持大于2.2TB的RAID卷。
传统模式可以安装XP、Win7和Win8,UEFI模式只能安装Win8。
一、传统模式RAID的配置1-1、BIOS设置SATA RAID1-2、ROM设置BIOS开启SATA RAID,保存重启后,按Ctrl + I键进入英特尔的RAID ROM设置。
RAID ROM的第一项就是建立RAID卷。
本例使用3块1TB的硬盘,ROM检测到这2块硬盘。
在第一项回车,进入RAID配置。
设置了卷名(Name),RAID类型(RAID Level),磁盘(Disk),带尺寸(Strip Size),容量(Capacity )后,确认建立RAID卷(Create Volume)。
本例设置RAID 0,其他保持默认。
确认建立RAID后,再次提示,键入Y,确认建立,如果不想建立了,就回答N。
回答Y后,建立RAID成功。
注意看RAID卷名的Volume 1,类型是RAID0,条带16KB,容量18TB,状态是正常,可启动。
RAID建立完成,执行6.退出。
1-3、安装系统Win7和WIN8系统含有传统RAID驱动,不需要手动加载,安装是系统检测到RAID盘。
安装Win7Win7含有RAID驱动,可以检测到RAID盘。
建立一个安装系统的分区。
本例是100G的分区。
系统提示要创建额外的分区。
建立完成,额外建立一个100M的分区。
继续安装Win7。
剩下的空间可以在磁盘管理器建立分区。
二、UEFI RAID配置2-1、BIOS设置设置Window8特征为Enabled。
设置SATA为RAID。
保存设置重启,再进入BIOS设置,在Setting\Advanced看到多出一项:Intel(R)Rapid Storage Technology(英特尔快速存储技术)。
任意安卓移植ROM教程,超详细ROM技术学习相信有过刷机经历的都知道安卓系统的构造,我们讲述一下安卓的几大组成:从内核基于linux开始,整个系统就运行在一个虚拟机上,这是安卓的一大特征!!那么我们移植的时候要修改哪一部分?这就是我们这个帖子的重点了。
在刷机时,我们大多使用zip格式的升级包进行刷机,那zip 格式的升级包是怎么样的一个组成呢?一个zip升级包的完整构造,其中我们要移植所需要修改的就是META-INF里的刷机脚本。
对于这个构造,有必要完整的解释一次。
META-INF这里面主要是签名文名和刷机时执行的脚本(updater-script),移植时,我们主要要更改的就是刷机的脚本。
system这里面就是android的系统部分app这里存放的是系统的app,每个app都有两个文件,一个*.apk,一个*.odex,我们在移植时,要将这个文件合并到对应的*.apk里面去,apk文件其实就是一个zip文件,可以用WinRAR或7zip打开的,当然,合并odex文件不是把它改名直接放到apk里去这么简单的,后面具体介绍一下。
还有,这个文件夹里面的程序,刷完以后是不能通过程序管理来卸载的。
bin这里面存放的是native程序,不好意思,一下子忘掉中文怎么说了。
简单来说,apk是JAVA 程序,而这个是C/C++的程序。
etc这里面存放的是系统默认的配置文件,GPS的配置也在这里J。
fonts这个是字体文件夹,一般很少改动,除非要做美化framework这里存放的是android框架,移植MIUI,很多改动在这个文件夹里,美化ROM的话,主要改framework-res.apk就可以了。
当然,MIUI本身就有主题机制了,不用这么麻烦去改。
这个文件夹里也会有对应的odex文件。
lib一些通过的类库,一般是由app/bin里面的程序调用的。
media媒体文件,要添加系统默认的铃声就在这里了。
如果是别的ROM的话,壁纸也会放在这里面。
Lunix下定制rom的方法前几天写了一篇关于官方ROM(以O大v9.1为蓝本)精简的帖子,还是有些感兴趣的机油的,还有些机油想了解解包和打包官方ROM的方法。
因为前段时间在出差,时间有限,今天特把自己解包和打包的过程总结一下,其实就是对论坛各种教程的总结,这些教程都是其他版块的,本版比较少,好像只有花大的一篇(解包和打包工具都来自花大的帖子,极度感谢他带来的好工具),在此感谢各位前人的教程,另外希望这个帖子能带动大家自己动手自力更生的风气,少一些喷子和伸手党。
下面废话就不说了,直接说步骤和方法:首先,解压下载的压缩包(还是以O大ROM为蓝本,官方文件则改后缀名,去掉.MD5)后得到TAR文件包(刷机包)。
在通常的ROM中,除了PIT文件外,所有刷机文件都打包在一个TAR文件中(例如:I9100ZSLPG-ownhere-v9.1.Odin.tar),也有的刷机包由三个TAR文件组成(PDA.tar,CSC.tar和PHONE.tar)。
不管是哪一种,它们所包含的刷机文件内容是相同的,只是ROM打包方式不同而已。
无论是哪一类TAR包,解开后都会得到下列文件(视ROM不同,文件可能会有所不同,但红色文件是必有的):factoryfs.img手机上的/system 目录下的内容cache.img其它附加的内容hidden.img对应于/data 目录,附加的可卸载应用boot.bin 引导区的内容Sbl.bin 所谓的第二引导区param.lfs 对应/mnt/.lfs 下的内容zImage内核(kernel)modem.bin 基带(PHONE)对ROM的改造(精简或修改)主要是针对factoryfs.img,此外还可以对hidden.img 进行删减,去掉或添加自己喜欢的应用。
对官方ROM的解包和打包,最好在Linux下进行,会简单很多,Windows下目前我还没有找到可用的打包工具,因此建议在虚拟机中安装一个Linux系统,版本随意,我是手边刚好有以前测试用的深度Deepin Linux,所以就直接用它了。
ROM制作及源码编译1.ROM制作介绍ROM(Read-Only Memory)是一种只读存储器,它是计算机中用于存储固定数据和程序的一种存储器。
在手机中,ROM指的是操作系统的固定存储器,用于存储系统文件和应用程序。
制作ROM意味着根据自己的需求来打造适合自己的操作系统。
2.ROM制作的准备工作在制作ROM之前,需要准备以下工作:- 安卓开发环境:包括Java开发环境、Android SDK和Eclipse等工具。
-ROM源代码:可以通过官方网站或第三方渠道获取到ROM的源代码。
- 编译工具:使用常见的编译工具如GCC、Ant、Make等工具进行编译。
3.源码编译流程源码编译是ROM制作的核心工作,下面是源码编译的大致流程:- 设置环境变量:设置Java、Android SDK和编译工具的环境变量,方便后续使用。
-编译源码:执行编译命令,将源代码编译成可执行文件。
-生成镜像文件:将编译后的文件按照特定的格式打包成镜像文件。
-刷入设备:将生成的镜像文件刷入目标设备中,完成ROM的制作。
4.ROM制作的注意事项在制作ROM时需要注意以下几个方面:-熟悉目标设备:了解目标设备的硬件配置和特性,以便根据设备的特性进行相应的定制。
-定制需求:根据自己的需求定制ROM,可以增加或移除系统自带应用、修改系统界面等。
-版本兼容性:确保编译的源码和目标设备的版本兼容,避免出现不兼容或无法正常运行的情况。
-参考文档:参考官方文档和其他相关文档,掌握相关编译命令和技巧,提高编译效率和质量。
5.参考资源和进阶学习。
使用CodeWarrior4.5建立一个工程C语言版一、打开CodeWarrior IDE二、点击File下来菜单中的New三、在弹出的窗口中选择HC(S)12 New Project Wizard,给自己的工程起名,设置路径,点击确定。
四、点击下一步五、选择你所使用的器件型号(例如我们所用的MC9S12DG128B),点击下一步六、选择编程使用的语言,选择C,点击下一步七、选择No,点击下一步八、选择No,点击下一步九、选择minimal startup code ,点击下一步十、根据自己的需求选择浮点数运算的支持,点击下一步十一、根据自己的需求选择存储模式,点击下一步十二、选择如图方式,点击完成十三、完成后十四、工程中的用到的文件Sources 文件夹下面放的是源文件,main.c为主函数所在文件,若要新建源文件也要放在此文件夹下面;datapage.c文件为数据页面配置文件,一般写程序用不到,与编译有关,不可删除。
Startup Code 文件夹下面的Start12.c文件是开发环境编译时默认的最先执行的一段程序,在Start12.c的最后调用main.c的主函数。
在Start12.c中,创建工程所要注意的是对地址的重分配映射。
Prm文件夹下面的Full_Chip_Simulation_linker.prm文件里面是关于整个工程在编译连接时的一些规则设置,在此文件中,要注意的是Ram和Rom的地址定义和堆栈的大小。
十五、一般情况下Start12.c中的设置在如上方法建立的工程中,Start12.c文件中没有对各存储单元进行地址重分配,造成了地址的重叠,为了解决这个问题,需要在Start12.c中进行一些改动,把各存储单元进行地址重映射,充分利用各存储单元。
具体改动如下:第113行:把#ifdef和#endif开头的两行注释掉,改为:第409行处的改动与113行处一样,注释掉2行,改为:十六、一般情况下Full_Chip_Simulation_linker.prm中的设置在Full_Chip_Simulation_linker.prm中,由于在Start12.c中进行了地址的重映射,所以要改动Ram和Rom的地址定义;另外,如果所要编写的程序需要较大的栈(比如多重的程序调用、中断嵌套),还要改变堆栈的大小。