通过c对Flash进行读写操作
- 格式:doc
- 大小:59.00 KB
- 文档页数:2
flashcs4认证考试试题及答案单项选择题Flash 是一款制作软件?图像矢量图形矢量动画非线性编辑答案:C场景又称,是编辑图像的场所舞台库工作区幕答案:A使用工具可以绘制直线铅笔钢笔线条笔刷答案:C 按键可以将文本打散Ctrl + A Ctrl + B Ctrl +C Ctrl +D 答案:B绘制直线时按住键,可以绘制出水平直线?Shift AltAlt + Shift Del 答案: A使用椭圆工具时,按住键的同时拖动鼠标可以绘制正圆?Shift AltAlt+Shift Del答案:A"编辑"菜单中有3种不同的粘贴命令,其中可以将复制的对象粘贴到原位置的是:粘贴到中心位置粘贴到当前位置选择性粘贴粘贴答案:B什么是时间轴的基本元素?1时间线图像手柄帧答案:D所有动画都是组成的。
时间线图像手柄帧答案:D要选择连续的多个帧,可以配合键进行选取。
Ctrl Shift Alt Del答案:B是什么主要用来管理不同的对象,从而在编辑过程中不会互相影响和干扰?帧层时间轴库答案:B构成Flash 动画的基本元素是:元件图像字体帧答案: A形状补间只能用于:矢量图形任何图形任何图像位图答案:A在时间轴中动作补间用什么颜色表示?蓝色红色绿色黄色答案:A在时间轴中形状补间用什么颜色表示?蓝色红色2绿色黄色答案: CFlash 内嵌的脚本程序是:ActionScript VBScript JavaScript JScript 答案:A 可以用来使动画或动画中某一个影片剪辑跳转到指定的帧的脚本语句是:getURL tellTarget goto 跳过 fscommand 答案:C打开动作面板的快捷键是:F8 F9 F10 F11 答案:B命令可以让影片剪辑紧紧保持在与鼠标相同的位置。
onClipEventduplicateMovieClip startDrag跟随鼠标 attachMovie 答案:C使用命令可以动态地删除影片剪辑。
自编程就是用户进行的flash存储器写操作。
Block号,是进行擦写和非空检查操作的单元。
入口ram,是flash存储器自编程样例库所使用的RAM区域。
用户程序需要保留着块区域,当调用库时,需要指定这片区域的起始地址。
内部验证,再写入到flash存储器后,信号电平会内部检查,确认读到正确的数据。
内部验证错误时,对应的设备被认为有错。
第一章自编程样例库是78K0/KX2提供的固件以及用来给flash存储器重写数据的软件。
用户程序通过调用自编程样例库,可以改写flash存储器的内容,从而,加快软件开发。
注意:1 自编程样例库重写flash存储器,需要使用KX2的CPU,寄存器和RAM,在运行自编程样例库时用户程序无法执行。
2 自编程样例库使用CPU(寄存器bank3)和工作区域(入口RAM区100字节)。
于是,用户调用自编程样例库之前必须自行保存此区域内的用户程序数据。
C和汇编中都可以调用自编程样例库。
如果C文件编译时使用-SM参数(把目标作为静态模式),用静态模式连接库。
如果不用-SM,库调用采用正常模式。
如果源文件是汇编格式,只能用静态模式连接库。
自编程的流程1 FLMD0引脚拉高。
2 Flashstart3 设置操作环境4 Flashenv(入口RAM初始化)5 检查FLMD电平6 正常结束--〉Flash block非空检查—〉字写入(1~64个字长)—〉block校验—〉Flash结束—〉FLMD0拉低。
Bank编号和block编号Kx2的flash存储器高达60KB,Block以1K为单位。
Boot cluster 0000h~0FFFh,1000h~1ffffh。
防止写入时掉电或者reset。
第四章详细讲述引导交换功能。
60KB的flash和96KB以上的flash不同。
60KB中0000h~F000h分为60个block区,F000h以上到F800h是内部扩展RAM区域。
0000h~003Fh存放64字节的向量表,003Fh~007Fh存放64字节的callt表,0080h~0081h参数位,0081h~07FFh是1919字节的程序区域,0800h~0FFFh是2048字节的callf的entry。
《F lash动画制作》一、单项选择题1.有关Flash软件说法对的时是( D )A.它是一种专做位图的软件B.Fla sh软件只能制作动画C.Flash是一种矢量图软件,但不能做网页D.它是一种矢量图软件,可以制作动画、网页2.Flash软件保留格式为( C )A.a iB.pngC.flaD.pn d3.给按钮元件的不一样状态附加声音,要在单击时发出声音,则应当在哪个帧下创立一种关键帧 C C )A.弹起B.指针通过C.按下D.点击4.如下图所示,其为何形式的补间动画: C起点终占,尸、』、、、起点终占.-、,,、、、A.是单独发生的移动补间动画B.是单独发生的形状补间动画C.是一种移动和形状的组合动画D.上面说法都为错误5.将目前选中的关键帧转换为帧操作的菜单操作( DA.编辑/清除B.文献/关闭C.修改/时间轴/转换为空臼关键帧D.修改/时间轴/清除关键帧6.使用变形提醒点制作形状补间动画,能获得最佳变形效果的说法中对的的是:cc)A.在复杂的变形动画中,不用创立某些中间形状,使用开始和结束形状足以实现B.假如将变形提醒点按照逆时针方向从形状的右上角位置开始,则变形效果会更好C.保证变形提醒点的逻辑性D.以上说法均错误7.用绘图工具绘制图形时,在工具面板下端的选项中进行如图所示的设置后,绘制的图形是( BE形状F.独立对象G.按钮H.以上都不是8.在F la sh8中,要绘制精确的直线或曲线途径,可以使用( A )A.钢笔工具B.铅笔工具C.刷子工具D.A和B都对的9.使用擦除工具时,假如在擦除模式中选择内部擦除,这意味着( C )A.只擦除填充区域,不影响线段和文字。
B.只擦除目前选定的区域,线条和文字无论选中与否,均不受影响。
C.只擦除被擦除工具最先选中的填充区域,线条和文字均不受影响。
D.只擦除线条,填充区域和文字不受影响。
10.菜单操作修改/变形/取消变形的功能是(CA.取消上一步操作B.取消对象的上一次变形C.将变形的对象还原到初始状态D.取消所有对象的变形11.Fl a sh中的"遮罩”可以有选择地显示部分区域。
nand write的c语言格式在C语言中,并没有直接对NAND flash写入的标准库函数,因为NAND flash通常是嵌入式系统中的硬件组件,而且不同的NAND flash设备可能有不同的接口和驱动方式。
通常,NAND flash的操作需要依赖于特定硬件平台的驱动程序或操作系统提供的接口。
如果你正在使用一个嵌入式操作系统,比如Linux,你可能会通过文件系统的抽象层来对NAND flash进行读写。
在裸机(bare-metal)环境中,你可能需要直接与硬件寄存器交互来实现NAND flash的读写。
以下是一个非常简化的例子,演示了如何在裸机环境中可能实现对NAND flash的写操作的C 语言伪代码:```c#include <stdint.h>// 假设这些是NAND flash控制器的寄存器地址#define NAND_COMMAND_REG (*(volatile uint8_t*)0x80000000)#define NAND_ADDRESS_REG (*(volatile uint8_t*)0x80000010)#define NAND_DATA_REG (*(volatile uint8_t*)0x80000020)// NAND flash命令#define NAND_CMD_WRITE 0x80 // 写入命令#define NAND_CMD_WRITE_TRUE 0x10 // 确认写入命令// 一个简化的函数,向NAND flash写入一个页void nand_write_page(uint32_t page_address, const uint8_t* data, uint32_t length) { // 发送写入命令NAND_COMMAND_REG = NAND_CMD_WRITE;// 写入地址// 这个部分取决于你的NAND flash如何接受地址// 可能需要发送多次,因为地址可能是多字节的NAND_ADDRESS_REG = (page_address >> 0) & 0xFF; // 写入地址的低8位NAND_ADDRESS_REG = (page_address >> 8) & 0xFF; // 写入地址的下一个8位// ... 可能还需要写入更多的地址字节...// 写入数据for (uint32_t i = 0; i < length; i++) {NAND_DATA_REG = data[i];}// 发送确认写入命令NAND_COMMAND_REG = NAND_CMD_WRITE_TRUE;// 这里可能需要等待写入完成,具体等待方式依赖于NAND flash的规格// 可能是检查状态寄存器,或者简单的延时}int main() {// 要写入NAND flash的数据uint8_t data_to_write[] = { /* ... 数据... */ };// 调用函数写入数据到指定的页地址nand_write_page(0x00001234, data_to_write, sizeof(data_to_write));return 0;}```请注意,上面的代码只是一个示例,并不是一个完整的、可以在实际硬件上工作的程序。
第8章存储器与可编程逻辑器件8.1存储器概述自测练习1.存储器中可以保存的最小数据单位是()。
(a)位(b)字节(c)字2.指出下列存储器各有多少个基本存储单元?多少存储单元?多少字?字长多少?(a)2K×8位()()()()(b)256×2位()()()()(c)1M×4位()()()()3.ROM是()存储器。
(a)非易失性(b)易失性(c)读/写(d)以字节组织的4.数据通过()存储在存储器中。
(a)读操作(b)启动操作(c)写操作(d)寻址操作5.RAM给定地址中存储的数据在()情况下会丢失。
(a)电源关闭(b)数据从该地址读出(c)在该地址写入数据(d)答案(a)和(c)6.具有256个地址的存储器有()地址线。
(a)256条(b)6条(c)8条(d)16条7.可以存储256字节数据的存储容量是()。
(a)256×1位(b)256×8位(c)1K×4位(d)2K×1位答案:1. a2.(a)2048×8;2048;2048;8(b)512;256;256;2(c)1024×1024×4;1024×1024;1024×1024;43.a4.c5.d6.c7.b8.2随机存取存储器(RAM)自测练习1.动态存储器(DRAM)存储单元是利用()存储信息的,静态存储器(SRAM)存储单元是利用()存储信息的。
2.为了不丢失信息,DRAM必须定期进行()操作。
3.半导体存储器按读、写功能可分成()和()两大类。
4.RAM电路通常由()、()和()三部分组成。
5.6116RAM有()根地址线,()根数据线,其存储容量为()位。
答案:1.栅极电容,触发器2.刷新3.只读存储器,读/写存储器4.地址译码,存储矩阵,读/写控制电路5.11,8,2K×8位8.3 只读存储器(ROM)自测练习1.ROM可分为()、()、()和()几种类型。
关于STM32的FLASH操作说到STM32的FLSAH,我们的第一反应是用来装程序的,实际上,STM32的片内FLASH不仅用来装程序,还用来装芯片配置、芯片ID、自举程序等等。
当然,FLASH还可以用来装数据。
FLASH分类根据用途,STM32片内的FLASH分成两部分:主存储块、信息块。
主存储块用于存储程序,我们写的程序一般存储在这里。
信息块又分成两部分:系统存储器、选项字节。
系统存储器存储用于存放在系统存储器自举模式下的启动程序(BootLoader),当使用ISP方式加载程序时,就是由这个程序执行。
这个区域由芯片厂写入BootLoader,然后锁死,用户是无法改变这个区域的。
选项字节存储芯片的配置信息及对主存储块的保护信息。
FLASH的页面STM32的FLASH主存储块按页组织,有的产品每页1KB,有的产品每页2KB。
页面典型的用途就是用于按页擦除FLASH。
从这点来看,页面有点像通用FLASH的扇区。
STM32产品的分类STM32根据FLASH主存储块容量、页面的不同,系统存储器的不同,分为小容量、中容量、大容量、互联型,共四类产品。
小容量产品主存储块1-32KB,每页1KB。
系统存储器2KB。
中容量产品主存储块64-128KB,每页1KB。
系统存储器2KB。
大容量产品主存储块256KB以上,每页2KB。
系统存储器2KB。
互联型产品主存储块256KB以上,每页2KB。
系统存储器18KB。
对于具体一个产品属于哪类,可以查数据手册,或根据以下简单的规则进行区分:STM32F101xx、STM32F102xx 、STM32F103xx产品,根据其主存储块容量,一定是小容量、中容量、大容量产品中的一种,STM32F105xx、STM32F107xx 是互联型产品。
互联型产品与其它三类的不同之处就是BootLoader的不同,小中大容量产品的BootLoader只有2KB,只能通过USART1进行ISP,而互联型产品的BootLoader 有18KB,能通过USAT1、4、CAN等多种方式进行ISP。
嵌入式写flash的过程嵌入式系统是一种特殊的计算机系统,它通常用于控制、监测或执行特定任务。
在嵌入式系统中,Flash存储器被广泛应用于存储程序代码、数据和配置信息。
下面将介绍嵌入式系统中如何使用Flash 存储器的过程。
Flash存储器是一种非易失性存储器,它可以在断电后保持数据的完整性。
在嵌入式系统中,Flash存储器通常用于存储操作系统、应用程序和固件等软件。
下面是使用Flash存储器的一般过程:1. 首先,开发人员需要了解嵌入式系统的需求和功能。
根据系统的需求,确定所需的Flash存储器容量和接口类型。
接口类型包括SPI、NAND、NOR等不同的接口标准。
2. 接下来,开发人员需要选择合适的Flash存储器芯片。
根据系统需求和成本考虑,选择容量适当且性能稳定的Flash存储器芯片。
3. 在确定了Flash存储器芯片后,开发人员需要进行硬件设计。
这包括将Flash芯片与嵌入式系统的主控芯片相连接,并根据接口标准进行电气连接和信号交互。
4. 在硬件设计完成后,开发人员需要编写软件驱动程序。
这些驱动程序通常是嵌入式操作系统的一部分,用于控制Flash存储器的读写操作。
驱动程序需要根据Flash芯片的接口标准和通信协议进行开发。
5. 在软件驱动程序开发完成后,开发人员可以开始编写应用程序。
应用程序通常是嵌入式系统的核心功能模块,它将使用Flash存储器来存储和获取数据。
开发人员需要使用驱动程序提供的接口函数来读写Flash存储器中的数据。
6. 在应用程序开发完成后,开发人员需要进行测试和调试。
他们可以使用仿真器或调试器来验证Flash存储器的读写操作是否正常,并确保数据的正确性和完整性。
7. 最后,开发人员需要对系统进行整体验证和性能测试。
这包括测试系统的稳定性、响应时间和功耗等指标,以确保系统在各种工作条件下都能正常运行。
嵌入式系统中使用Flash存储器的过程涉及硬件设计、软件驱动程序开发、应用程序编写以及测试和验证等多个环节。
Flash 试题及答案1、(操作环境)执行“视图>隐藏边缘”命令的作用是:A.隐藏被选择对象的突出显示状态B.隐藏被选择对象的外框轮廓C.隐藏被选择对象的填充区域D.隐藏被选择对象的线条2、(操作环境)如果一个对象是以100%的大小显示在工作区中,选择工具箱中的“缩放”工具,并按下Alt键,使用鼠标单击,则对象将以多少的比例显示在工作区中A.50%B. 00%C. 00%D. 00%3、(操作环境)在Internet Explorer 浏览器中,是通过下列哪种技术来播放Flash电影(swf 格式的文件)A.DLLC.OLED.Active X4、(操作环境)关于Flash影片舞台的最大尺寸,下列说法正确的是A.可以设置到无限大B. 1000px ×1000pxC. 2880px × 2880pxD. 4800px × 4800px5、(操作环境)Flash影片频率最大可以设置到多少?A.99B.100C.120D.1506、(操作环境)对于在网络上播放动画来说,最合适的帧频率是:A.每秒24帧B.每秒12帧C.每秒25帧D.每秒16帧7、(操作环境)下面关于Flash电影说法错误的是:A.打印Flash矢量图形时,可以在任意尺寸上获得清晰的打印效果B.打印低分辨率的位图图像时,受到像素的影响C.不可以从浏览器Flash电影D.Flash播放器的打印功能允许用户打印电影中的目录、联票、单篇、收据、发票或其他文档8、(操作环境)下面关于矢量图形和位图图像的说法错误的是:A.Flash允许用户创建并产生动画效果的是矢量图形而位图图像不可以B.在Flash中,用户也可以导入并操作在其他应用程度中创建的矢量图形和位图图像C.用Flash 的绘图工具画出来的图形为矢量图形D.一般来说矢量图形比位图图像文件量大9、(操作环境)下面关于打印Flash电影说法错误的是:A.打印Flash矢量图形时,可以在任意尺寸上获得清晰的打印效果B.打印低分辨率的位图图像是,受到像素的影响C.不可以从浏览器打印flash电影D.Flash播放器的打印功能允许用户打印电影中的目录,联票,单篇,收据,发票或其他文档10、(操作环境)在安装了QuickTime 4或更高版本的情况下比没有安装的情况下,多出来的文件格式是:A.扩展名为.jpg的文件B.扩展名为.swf的文件C.扩展名为.png的文件D.扩展名为.psd的文件11、(操作环境)安装和没有安装QuickTime 4或更高版本的情况下,FlashMX都可导入的文件格式是:A.扩展名为.png的文件B.扩展名为.tif的文件C.扩展名为.sgi的文件D.扩展名为.psd的文件12、(操作环境)在FLASH中,下面不是Sorenson Spark 编码解码器的作用的是:A.允许用户在Flash中添加视频内容B.可以降低带宽需求传送视频,但是视频质量将会变差C.使Flash的视频处理功能出现了质的飞跃D.可以为运动较少的内容制作高质量的视频13、(操作环境)下面关于从浏览器打印电影和从Flash播放器打印电影的说法错误的是:A.从Flash播放器打印电影,可以指定Flash电影中的哪些帧可以被打印B.从Flash播放器打印电影,可以确定帧的打印区域C.从Flash播放器打印电影,可以给电影剪辑中的打印帧附加Print动作D.从浏览器打印电影肯定比从Flash播放器打印电影效果好14、(操作环境)下面关于发布Flash电影的说法错误的是:A.向受众发布Flash内容的主要文件格式是FlashPlayer格式(.swf)B.Flash的发布功能就是为在网上演示动画而设计的C.可惜FlashPlayer文件格式是一个不开放标准,今后不会获得更多的应用程序支持D.用户可以将整个电影导出为FlashPlayer电影,或作为位图图像系列;还可以将单个帧或图像导出为图像文件15、(操作环境)下面关于使用Flash的HTML发布模板说法错误的是:A.允许用户控制电影在浏览器中的外观和播放B.Flash模板不是包含任何HTML内容,比如Cold Fusion、ASP等的代码就不可以C.这种发布Flash用的模板是一个文本文件,包括两部分:不会改变的HTML代码和会改变的模板代码或变量D.创建模板和创建一个标准的HTML页面基本相似,只是用户需要将属于Flash电影的某些值替换为以美元元件($)开头的变量16、(操作环境)为了便于在舞台上精确地绘画、调整图形,用户可以使用辅助线功能,但前提是A.标尺必须显示B.网格必须显示C.先选择对齐功能D.没什么要求17、(操作环境)下列哪种播放器版本能观看用屏幕创建的SWF 文件A.FlashPlayer 4B.FlashPlayer 5C.FlashPlayer 6D.FlashPlayer 718、(操作环境)Flash菜单“文件”→“保存”的快捷操作是A.Ctrl+SB.Ctrl+Shift+SC.Ctrl+RD.Ctrl+Alt+Shift+S19、(操作环境) Custom Actions 属于哪类flash内置对象A.CoreB.AuthoringC.Client/ServerD.Movie20、(操作环境)在Flash UI Components中可以修改A.组件的图形元件B.组件的定义C.修改外观的大小D.组件的实例名称21、(操作环境)下面关于新层的位置顺序说法正确的是A.新层将被插入到当前选定层的下面B.新层将被插入到当前选定层的上面C.新层将被放到最上层D.以上说法都错误22、(操作环境)在任何时候,想把所选工具,改变为Hand Tool状态,只需要按下键盘上的哪个键?A.空格键B.Alt键C.Ctrl键D.Shift键23、(操作环境)下面哪些是FlashMX新增的功能?A.可以导入MP3格式的声音文件。
一、Flash块结构说明
我们所用板子上flash一共划分了259个块,0-254块为128kByte,255-258块为32kByte。
各个块的地址范围如下图:
我们要读flash中某个地址的数据,只要发送相关命令即可,下面会详细说明。
向flash 中写数据较复杂,首先必须将目标地址所属块解锁,然后擦除,最后才能写数据,只要解锁与擦除后就可连续往flash中写,但是不能向同一个地址写,这样会写不进去。
以上的解锁与擦除是针对一个块的操作,是将地址所属块全部擦除,写程序的时候注意不要误擦其它块。
写过程详细步骤见(二)。
二、通过c对Flash进行读写操作说明
通过高级语言(如c)对flash进行读写,我们开始的想法是自己做一个flash读写的IP 核,然后在c中调用此ip核来实现对flash的读写,但是这种做法比较复杂,一直进展不顺利。
后来一次偶然的试验发现直接向总线写读写flash的命令即可对flash进行读写,也就是说直接将以前在verilog中读写falsh的操作过程搬到c语言中,这大大降低了c中读写flash 的难度。
具体说明如下:
1.读flash
读取flash包括两个步骤:1,首先向目标地址写x00ff,告诉flash表示要读数据了。
2,通过XIo_In16函数读取目标地址的数据。
下面两行代码即可读取flash中地址为dataAddr的数据,保存在value中。
XIo_Out16(FlashBaseAddr+2*dataAddr,0x00ff);
u16 value = XIo_In16(FlashBaseAddr+2*dataAddr);
其中FlashBaseAddr为flash在硬件设计中分配的基地址,并且读取的数据只能是16位的数据,这是因为flash的数据输入输出出引脚只有16位。
2.写flash
向falsh中写数据包括三个步骤:1,对目标地址所属块进行解锁操作(write
0x60,write 0xD0);2,擦除目标地址所属块(write 0x20,write 0xD0);3,读取寄存器状态((write0x70,read regstatu)),当寄存器状态值为0x80说明准备就绪,可以下一个操作;4,向目标地址写数据(write 0x0040,write data),data为你要写如flash的数据。
写下一个数据之前还需要读取状态寄存器,当寄存器准备就绪说明上一次写已经完成,可以写下一个数据。
下面代码即可实现向目标地址dataAddr写数据。
u8 reg_status;
//unlock
XIo_Out16(FlashBaseAddr+2*dataAddr,0x0060);
XIo_Out16(FlashBaseAddr+2*dataAddr,0x00D0);
//erase
XIo_Out16(FlashBaseAddr+2*dataAddr,0x0020);
XIo_Out16(FlashBaseAddr+2*dataAddr,0x00D0);
//read register status
while(1)
{
XIo_Out16(FlashBaseAddr,0x0070);
reg_status = XIo_In16(FlashBaseAddr);
//xil_printf("%x\r\n",reg_status);
if(reg_status == 0x0080)
break;
}
XIo_Out16(FlashBaseAddr+2* dataAddr,0x0040);
XIo_Out16(FlashBaseAddr+2* dataAddr,data);
注:向Flash写数据也只能写16位的。