用MATLAB生成.mif、.hex(QUARTUS II)文件简介(v1.1)

用MATLAB生成.mif、.hex(QUARTUS II)文件简介(v1.1)
用MATLAB生成.mif、.hex(QUARTUS II)文件简介(v1.1)

用MATLAB生成*.mif、*.hex(QUARTUS II)文件简介(v1.1)

macro_qian@https://www.360docs.net/doc/0310408299.html,

以前写过一个“用MATLAB生成*.mif、*.hex(QUARTUS II)文件简介”,由于时间和水平原因很粗糙,并且有一些错误。现在修改一下,升级到v1.1。以前的称为v1.0吧。

做FPGA设计时经常要调用芯片内存。特别对于ROM,内存的初始化就显得比较重要。当然你完全可以手工在QUARTUS II打开mif文件的表格里逐个输入,几十项或许你还可以接受,但上千项估计能累的人吐血!

一般内存的初始化数据都是有规律的,符合一定的函数,我们完全可以用MATLAB来完成(如果没规律只能逐项手工输入了)。

1.使用MATLAB直接生成*.mif文件

首先,我们应该知道*.mif文件的格式。它是文本格式。随便打开一个mif文件,你会发现它具有如下的格式:

-- Copyright (C) 1991-2008 Altera Corporation

-- Your use of Altera Corporation's design tools, logic functions

-- and other software and tools, and its AMPP partner logic

-- functions, and any output files from any of the foregoing

-- (including device programming or simulation files), and any

-- associated documentation or information are expressly subject

-- to the terms and conditions of the Altera Program License

-- Subscription Agreement, Altera MegaCore Function License

-- Agreement, or other applicable license agreement, including,

-- without limitation, that your use is for the sole purpose of

-- programming logic devices manufactured by Altera and sold by

-- Altera or its authorized distributors. Please refer to the

-- applicable agreement for further details.

-- Quartus II generated Memory Initialization File (.mif)

WIDTH=8;

DEPTH=256;

ADDRESS_RADIX=UNS;

DATA_RADIX=DEC;

CONTENT BEGIN

[0..3] : 127;

[4..6] : 126;

[7..8] : 125;

9 : 124;

10 : 123;

……

……

[253..255] : 127;

END;

下边笔者来说明用MATLAB产生所需*.mif文件方法。

由于笔者的语文水平仅脱盲,如果空洞讲解很表述清楚并且会很枯燥。所以笔者仍使用一个例子来说明。对[0,2*pi)(包括0,不包括2*pi)256点采样,每点用8位有符号数表示。

生成*.mif文件的MATLAB代码如下:

clear all;

close all;

clc;

index=linspace(0,2*pi,2^8+1); %由于linspace函数包括前后两个边界点,所以多加一点除去

%cos(2*pi)的值

cos_val=fix((2^7-1)*cos(index)+0.5);%求COS值、倍扩成8位有符号数、fix是去尾求整数,

%加0.5变成四舍五入求整数

fid=fopen('E:\…\cosine.mif','w');%将cosine.mif文件创建到您老的QUARTUS工程目录里。当

%然你也可创建到指定的目录,然后拷贝到QUARTUS工程目录。fprintf(fid,'WIDTH=8;\n');%指定每个数值的字宽(本工程用8位)

fprintf(fid,'DEPTH=256;\n');%指定数值的个数,即ROM的深度(本工程用256个)

fprintf(fid,'ADDRESS_RADIX=UNS;\n');%指定地址的数制(UNS:无符号数。推荐UNS)fprintf(fid,'DATA_RADIX=DEC;\n'); %指定数据基数(DEC:十进制(有符号数),推荐DEC)fprintf(fid,'CONTENT BEGIN\n'); %固定格式

for j=1:256%数据段数据

i=j-1;

fprintf(fid,'%3d',i);

fprintf(fid,' : ');

fprintf(fid,'%3d',cos_val(j));

fprintf(fid,';\n');

end

fprintf(fid,'END;\n');%固定格式

fclose(fid);

运行此MATLAB程序,得到cosine.mif即可使用。

2.MATLAB变量空间拷贝法

此方法更简单。

QUARTUS II下菜单File\New\选择Memory Initialization File,Number of words=256, Word size=8,保存为cosine.mif。按照图1、图2提示在画红圈的地方右击分别修改修改地址数基为十进制、修改内存数基为有符号十进制。

图1 修改地址数基为十进制

图2 修改内存数基为有符号十进制

MATLAB下Command Window中执行:

index=linspace(0,2*pi,2^8+1);

cos_val=fix((2^7-1)*cos(index)+0.5);

在工作空间中双击cos_val,在Array Editor的表格中打开cos_val的变量值,复制前256个(图1),然后粘贴到QUARTUS II中打开的cosine.mif文件的表格中(图4)。得到如图5的结果。保存cosine.mif文件,OK!搞定!

图3

图4

图5

3.对于*.hex文件,更简单。大家生成mif文件后,用QUARTUS II打开,然后另存为hex

文件就可以了。

笔者:希望这个教程对大家有帮忙。有什么问题可发邮件到macro_qian@https://www.360docs.net/doc/0310408299.html,与笔者讨论。本文中用到的MATLAB程序将一同打包奉上。所有代码均为本人编写,由于水平有限,有什么不合适的地方请大家指正,欢迎大家SHARE。如果对你有帮助,可发邮件感谢我一下,让我也虚荣一下,以后更有心情写些其它的教程。哈哈,取笑了。

思想有多远,人就能走多远!

昨日惊悉饭岛爱君辞世,心中悲痛不已,在此悼念。

老钱 写于2008年圣诞

Powered by macro_qian Digifee CO., LTD.

PS:Digifee CO., LTD.是本人虚拟公司,等我有条件时会让她成为现实,希望大家别和我抢注,Digifee中包含了我心爱女子的名字,是我美好的理想。

用MATLAB生成.mif、.hex(QUARTUS II)文件简介(v1.1)

用MATLAB生成*.mif、*.hex(QUARTUS II)文件简介(v1.1) macro_qian@https://www.360docs.net/doc/0310408299.html, 以前写过一个“用MATLAB生成*.mif、*.hex(QUARTUS II)文件简介”,由于时间和水平原因很粗糙,并且有一些错误。现在修改一下,升级到v1.1。以前的称为v1.0吧。 做FPGA设计时经常要调用芯片内存。特别对于ROM,内存的初始化就显得比较重要。当然你完全可以手工在QUARTUS II打开mif文件的表格里逐个输入,几十项或许你还可以接受,但上千项估计能累的人吐血! 一般内存的初始化数据都是有规律的,符合一定的函数,我们完全可以用MATLAB来完成(如果没规律只能逐项手工输入了)。 1.使用MATLAB直接生成*.mif文件 首先,我们应该知道*.mif文件的格式。它是文本格式。随便打开一个mif文件,你会发现它具有如下的格式: -- Copyright (C) 1991-2008 Altera Corporation -- Your use of Altera Corporation's design tools, logic functions -- and other software and tools, and its AMPP partner logic -- functions, and any output files from any of the foregoing -- (including device programming or simulation files), and any -- associated documentation or information are expressly subject -- to the terms and conditions of the Altera Program License -- Subscription Agreement, Altera MegaCore Function License -- Agreement, or other applicable license agreement, including, -- without limitation, that your use is for the sole purpose of -- programming logic devices manufactured by Altera and sold by -- Altera or its authorized distributors. Please refer to the -- applicable agreement for further details. -- Quartus II generated Memory Initialization File (.mif) WIDTH=8; DEPTH=256; ADDRESS_RADIX=UNS; DATA_RADIX=DEC; CONTENT BEGIN [0..3] : 127; [4..6] : 126; [7..8] : 125; 9 : 124;

keil工程文件的建立以及简单代码的编写

KEIL工程的建立以及简单程序的编写下载   相关软件及硬件实验平台 单片机系统设计主要包括硬件设计和软件设计,对于单片机初者来说主要在于软件的学习,也就是程序设计,等大家程序这块掌握得差不多了,再去结合具体的项目学习做硬件,最终掌握单片机系统设计的方法。而在进行软件学习的时候需要用到单片机实验板进行实验验证,实验板建议直接购买,当然如果电子技术基础好的话,自己做板也是可以的。这次教程开发程序所用到的软件为keil uVision2 下面分别介绍这keil uVision2和 实验板的使用方法,在程序编写完成后需把程序烧写到单片机中,我们是用ISP在线下载工具,这里一并进行介绍。 为了便于大家学习,这里我们写一个以1602液晶为显示器件的可显示时、分、秒的电子时钟程序为例介绍整体程序从编辑、编译到下载的全过程。(具休程序已事先写好并经正常调试无误,后面课程会具体介绍,这里暂不作讲解) 在正式的写程序之前,需进行keil uVision2软件的安装和实验板驱动程序的安装,相关的软件及驱动程序请大家直接在实验室网站下载中心进行下载,这里给出下载地址。keil uVision2软件件及安装方法、实验板驱动程序及安装方法。 安装安成后,即可按下面的步骤进行。 1、KEIL软件的使用及工程文件的建立 51单片机程序设计所用到的开发软件主要是keil uVision,它是由德国Keil Software公司开发的,2005 年Keil公司被ARM公司收购,并于2009年发布了keil uVision4,这个版本的软件支持ARM系列的芯片,如现目前流行的STM32等芯片 ,我们这里使用的是uVision2版本。 (1)、打开KEIL软件 双击keil快捷方式图标(软件安装好后,一般在桌面上会有快捷方式,双击即可),出现启动界面如图1,紧接着出现编辑界面如图2。 图1 启动keil软件时的界面

Matlab+Deploy工具的使用--Matlab生成可执行文件

Matlab Deploy工具的使用--Matlab生成可执行文件 通常编写的matlab程序只能在装有matlab的机器上执行,但是没有安装matlab的怎么办呢?这个可以使用matlab的自带工具-Deploy Tool。 Matlab的Deploy Tools 可以方便的将matlab工程编译成所支持的类型,例如一般的Windows应用程序,Matlab for .NET/COM ,Matlab for Java,Matlab for Excel 等。 其原理就是先使用MCC 编译器根据你的m文件生成相应的c语言文件以及数据文件,然后在调用C/C++编译器编译成可执行文件或者控件库。 在Matlab 2007a 中Deploy Tool其实是一个MCC的前端界面(用MCC的命令行参数一样可以完成编译工作) 下面是用Deploy Tool来编matlab工程。 首先创建prj工程,从菜单中定位到“New”-》“Deployment Project” 然后会提示选择类型

然后添加文件

接着你就可以编译了 第一次编译会让你去选择C/C++编译器,运行mbuild -setup 之后matlab会自动搜索系统所安装的C/C++编译器, 然后让你给出选择,matlab自带了LCC编译器,不过可以使用VC的编译器。 选择好了之后你就可以编译了,编译之前你可以设置工程属性,例如通用设置: 可以指定生成的中间文件的路径,编译选项,等等,你还可以设置选择针对哪些工具箱进行扫描:

当然你还可以手动设置C/C++编译器路径,头文件、库文件目录,警告等级等 不过想要你的程序在没有安装Matlab的机器上运行,还有一点要注意,就是Matlab编译出来的程序需要用到Matlab的一些包括但不限于数学、图形等动态链接库,这些是你的程序必要的运行时环境,你可以拷贝 (MatlabDIR)\ toolbox\\toolbox\compiler\deploy\win32\MCRRegCOMComponent.exe 到目标机器安装,然后就有了运行时环境,当然使用Deployment Tool工具可以设置自动打包这个运行时,具体在设置页勾选“Include MATLAB Comptent Runtime(MCR)”:

Matlab生成P文件及exe文件方法

1.Matlab生成P文件方法: P文件是对应M文件的一种预解析版本(preparsed version)。因为当你第一次执行M文件时,Matlab需要将其解析(parse)一次(第一次执行后的已解析内容会放入内存作第二次执行时使用,即第二次执行时无需再解析),这无形中增加了执行时间。所以我们就预先作解释,那么以后再使用该M文件时,便会直接执行对应的已解析版本,即P文件。但又因为Matlab的解析速度非常快,一般不用自己作预解析。只有当一些程序要调用到非常多的M文件时,如GUI 应用程序时,才会作预解析,以增加以后的调用速度。 P文件可以用来作保密代码之用,如果你给别人一个M文件,别人可以打开来看到你所有的代码和算法。如果你的代码不想被别人看到,那可以给他P文件。pcode函数也可以应用在M函数文件。 Matlab命令:pcode pcode fun pcode *.m pcode fun1 fun2 ... pcode... -inplace Description pcode fun obfuscates (i.e., shrouds) M-file fun.m for the purpose of protecting its proprietary source code. The encrypted M-code is written to P-file fun.pin the current directory. The original M-file can be anywhere on the search path.If the input file resides within a package and/or class directory, then the same package and class directories are applied to the output file. See example 2, below.pcode *.m creates P-files for all the M-files in the current directory.pcode fun1 fun2 ... creates P-files for the listed functions.pcode... -inplace creates P-files in the same directory as the M-files. An error occurs if the files cannot be created. 2.Matlab编译生成exe可执行文件 1、首先要保证你的程序是函数型的,而不是脚本形式的。如果是脚本形式的也不要紧,只需要在脚本文件第一行添加function []=name()即可。

KEIL中HEX文件TO BIN文件

Intel HEX to BINARY File Converter Utility [资料来源KEIL官网] This utility program creates a BINARY file from an Intel HEX file. You can use BINARY files with most EPROM programmers and you can easily use them for CRC or checksum calculations. Options for this utility program are listed below: Syntax: HEX2BIN [/option] hexfile [binfile] hexfile is the Intel HEX input file binfile is the binary file to create option may be any of the following /Ln Binary file length /Pn Pad data for binary file /On Address offset (to add to HEX records) /M Merge data into existing BIN file /Q Quiet mode (no statistics are displayed) /X Don't process ext. segment/linear address records /? This help text

Note: This utility program is a DOS application. It requires 8.3 naming convention for file names and paths and it does not run on Windows 7 64Bit. However, you can execute it in the XP mode (Virtual PC) of Windows 7.

Matlab编写的程序生成EXE可执行文件的方法

Matlab生成EXE可执行文件 1、M文件生成可执行文件 1.1、Run timeserver的配置 执行这个命令要在命令提示符下进入%matlab%\toolbox\runtime\bin\win32目录。输入:rtsetup -f %matlab%\bin\win32\matlab.exe –s **** 。这儿****代表你输入的N个数字或者字母,它将作为未来开发的应用程序的密码用来识别不同的文件是否出自同一程序。在正常情况下,执行完这居命令以后,dos不会有任何提示符。 1.2、编写在matlab中运行的程序 1.3、编写配置文件 把toolbox\runtime\下面的两个模板文件matlabrt_template.m,和pathdefrt_template.m文件修改程自己的matlabrt.m和pathdefrt.m文件。 1.4、编译生成p文件 把你要编译的源程序放在toolbox\local目录下一个子目录中,然后把这个目录设为matlab的当前目录――一定要保证这一点。 在matlab中输入如下命令: [LOG, DEPFUNOUT, PCODEOUT] = BUILDP({?matlabrt‘}); 如果出现BUILDP finished but there may be file(s) with either problem symbols or EV AL-like constructs. Check BUILDP log for details. 。这是很正常的,很多时候都会出现这个提示。 输入: Depfunout{1} 把它的内容拷到toolbox\runtime\oem\的list.txt中去(如果没有list.txt则新建). 1.5、打包,发布 退出matlab,打开命令提示符,到toolbox\runtime\oem下,执行packege。按照它的提示先后输入matlab的目录,文件列表名称(list.txt),还有应用程序的名称。在toolbox\runtime\oem下生成一个setup程序。

生成HEX文件

生成HEX文件的MATLAB程序 ROM初始化文件既可以是*.mif也可以是*.hex文件,但是如果工程需要在Modelsim中进行仿真的话,则必须生成*.hex文件对ROM进行初始化。一般简单且有规律的初始化数据可以用Excel先生成mif文件再在综合软件中转化为hex文件,但如果所需信号要叠加各种各样的噪声时。Excel则不能胜任,此时我们用MATLAB生成所需初始化数据,在使用下述程序则很容易生成HEX初始化文件。程序先介绍hex文件的结构,后给出matlab程序,且我做了详细的注释,希望对大家有所帮助。 % __Created by He Yapeng.@School of Electronic Engineering and Photoelectricity Technology at Nanjing University of Science and Technology % --Email:lwkj0920@https://www.360docs.net/doc/0310408299.html,. '); % Intel HEX文件是由一行行符合Intel HEX文件格式的文本所构成的ASCII文本文件。在Intel HEX文件中, % 每一行包含一个HEX记录。这些记录由对应机器语言码和/或常量数据的十六进制编码数字组成。Intel HEX文件通常用于传输将被存于ROM或者EPROM中的程序和数据。大多数EPROM编程器或模拟器使用Intel HEX文件。 % 记录格式 % Intel HEX由任意数量的十六进制记录组成。每个记录包含5个域,它们按以下格式排列:% :llaaaatt[dd...]cc % 每一组字母对应一个不同的域,每一个字母对应一个十六进制编码的数字。每一个域由至少两个十六进制编码数字组成,它们构成一个字节,就像以下描述的那样: % : 每个Intel HEX记录都由冒号开头. % ll 是数据长度域,它代表记录当中数据字节(dd)的数量. % aaaa 是地址域,它代表记录当中数据的起始地址. % tt 是代表HEX记录类型的域,它可能是以下数据当中的一个: % 00 –数据记录 % 01 –文件结束记录 % 02 –扩展段地址记录 % 04 –扩展线性地址记录 % dd 是数据域,它代表一个字节的数据.一个记录可以有许多数据字节.记录当中数据字节的数量必须和数据长度域(ll)中指定的数字相符. % cc 是校验和域,它表示这个记录的校验和.校验和的计算是通过将记录当中所有十六进制编码数字对的值相加,以256为模进行以下补足. %

如何使用KeilC51创建一个工程文件

如何使用KeilC51创建一个工程文件 建立一个项目: 点击工程菜单中选择弹出的下拉式菜单中的新建工程...,接着弹出一个标准Windows 文件对话窗口,在"文件名"中输入您的第一个程序项目名称,这里我们用"test",这是笔者惯用的名称,大家不必照搬就是了,只要符合Windows文件规则的文件名都行。"保存"后的文件扩展名为uv2,这是KEIL uVision2项目文件扩展名,以后我们可以直接点击此文件以打开先前做的项目 。 这时会弹出让你选择单片机型号的对话框,我们选择A TMEL---A T89C51

然后点击Target 1前面的“+”,出现Source Group 1,选中右键点选“增加文件到组Source Group 1” 这时选择文件类型为Asm 源文件,再选中001.asm文件,再按添加,在随后出现的提示框中按“确定” 仿真器采用Mon51协议,在使用之前应必须对软件项目进行如下设置: 1、单击工程菜单,再在下拉菜单中单击"目标target 1属性" 在下图中,单击"Target"输入仿真器的工作频率(11.0592MHz)

2、在调试菜单中点选"Keil Monitor-51 Driver",即选择了STC89C516RD硬件仿真器。 3、单击“R外围设备”选Target Setup设置选项选择您要使用串口(必须和实际相符合),波特率38400。 如果被仿真的目标板使用12MHZ或者是11.0592MHZ晶振时波特率选择38400,如果被仿真的目标板使用6MHZ晶振时波特率选择18400。

4、如果需要生成HEX代码给编程器烧写芯片的话,需要选中“生成HEX 文件”的选项,按钮“选择OBJ文件夹...”是用来选择最终HEX文件的存放目录的。 5、按F7快捷键可以进行编译,编译成功后如会出现上图红箭头所指的文字,表示编译成

matlab生成可独立运行的exe文件

一、生成独立可执行的程序(exe文件)步骤 1、安装编译器。可有多种选择,matlab自带了一个LCC,推荐使用VC++6.0,我用的是matlab自带的LCC; 2、设置编译器。在matlab命令行输入mbuild –setup以及mex -setup,选择安装的c编译器。注意“-”之前的空格! 3、调用编译器。此处使用MATLAB下的一个GUI平台deploytool下完全实现。在命令窗口输入deploytool即可看到。具体使用方法请Help; 当然,也可以输入mcc -m filaname,filaname为要转成exe的m文件; 4、安装\toolbox\compiler\deploy\win32目录下的MCRInstaller。 二、脱离matlab运行可执行程序 MCR是由matlab的运行环境,占用不到300M的对于用不同matlab版本生成的exe文件,MCR版本也会有不同,因此,在程序打包时,最好将相应版本的MCR一起打包。MCR环境的设置文件存放目录如下: \toolbox\compiler\deploy\win32 文件名为MCRInstaller.exe。可将其拷贝到自己的文件夹中,(7.0以前的版本是mglinstaller.exe)。在MATLAB里运行可执行程序的办法是在前面加一个“!”比如:!picshow,后缀名可有可无。

在其它没有安装matlab的机器上运行exe文件 1、安装matlab的运行环境MCRInstaller。在同一机器上可以并存不同版本的matlab环境(换句话说不同版本不兼容)。 2、要将“MCRinstaller.exe安装目录\runtime\win32”这个路径添加到该计算机的环境变量中,通常是自动加载。如果没有,也可手动安装,添加的方法是:右击“我的电脑”“属性”“高级”“环境变量”“添加”指定一个变量名,然后将上述路径复制到里面就可以了。 (注:在安装过程中会弹出让安装https://www.360docs.net/doc/0310408299.html,Framework可以不用安装。) 3、将编译生成的相相关文件拷贝到同一目录下,双击即可运行。

matlab生成exe应用程序

matlab生成exe应用程序 通常编写的matlab程序只能在装有matlab的机器上执行,但是没有安装matlab的怎么办呢?这个可以使用matlab的自带工具-Deploy Tool。 Matlab的Deploy Tools 可以方便的将matlab工程编译成所支持的类型,例如一般的Windows应用程序,Matlab for .NET/COM ,Matlab for Java,Matlab for Excel 等。 其原理就是先使用MCC 编译器根据你的m文件生成相应的c语言文件以及数据文件,然后在调用C/C++编译器编译成可执行文件或者控件库。 1、安装编译器。可有多种选择,matlab自带了一个LCC,推荐使用VC++,我基于VS 2008实现。 2、设置编译器。在matlab命令行输入mbuild –setup以及mex –setup,选择安装的c编译器。 3、调用编译器。此处使用MATLAB下的一个GUI平台deploytool下完全实现。 在命令窗口输入deploytool即可看到。具体使用方法请Help。 当然,也可以输入mcc -m filaname,filaname为要转成exe的m文件; 注:在以前的版本中,用编译命令mcc -B sglcpp filaname;自2006的版本后,替换为mcc -mfilaname; 在Matlab 2007a 中Deploy Tool其实是一个MCC的前端界面(用MCC的命令行参数一样可以完成编译工作) 下面是用Deploy Tool来编matlab工程。

首先创建prj工程,从菜单中定位到“New”-》“Deployment Project” 然后会提示选择类型

keil中生成个人库文件及调用方法

如何在keil中生成个人库文件及调用方法 在网上找了些资料 代码积累多了,大家可能都尝试过自己写个库,方便调用,我最初的办法是把常用的函数放到一个个.C文件里头,要用的时候就把一个个.C添加到Group里面,这种方法就很麻烦了,每次新建一个工程都要ADD半天 这里8279.C,delay_ms.c,watchdog.c,function.c都是我以前写过现在拿来重用的代码 这样做还有一个问题,如果某个函数未调用,编译器就会给一个警告,UNCALLED SEGMENT,IGNORED FOR OVERLAY PROCESS,"未调用的段,被忽略",虽然无啥大碍,但看着也挺不爽的 于是自己生成LIB文件,.lib是生成了,但就是没能用,始终有警告 *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL未解析的外部标号 *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL引用外部为解析的段 因为编译器没有找到那个函数的代码,也就未解析了,百度了一下,前几个结果竟然都没给出一个有效的解决办法 其实问题很简单,你在Group上右键ADD时注意一下对话框中允许添加的文件扩展名,除了c,asm之外,还有lib,把你的lib文件加进去,ok了 --------下面是我用库的一些记录-------------------------------------------------------------------- 库的生成

库的使用(在group中添加lib文件),在主调的C文件中include .h文件 KEIL中库可以由多个.obj(与.C对应)组成,而连接是以.obj为最小单元,即某.obj中有函数被调 用时,则整个.obj中所有函数都会被连接到.hex文件 通常为每一个函数编一个.C文件,而整个lib用一个.h文件,这样就可以使只有被调用的函数参与连接 Keil 生成Lib 调用Lib 2011-06-01 16:01:49| 分类:| 标签:|字号大中小订阅 1、维护自己写的代码不被别人乱改动。lib 不是c 代码,不能对它编辑,只能通过.h 文 件调用。所以为了别人能使用你的lib,一定要给他.h 文件。 2、可以把多个.c 文件合成一个lib 文件,这样在工程就不必要把每一个.c 文件都添加一 遍。 3、相比添加.c 文件,它具有不使用已经申明的extern 函数也不会出现Keil 经典的 UNCALLED FUNC warning。更重要的是,不使用的函数编译时不会产生代码,从而大大减 小.hex 文件。这对小容量的单片机来说是非常可贵的。 废话少说,下面以本人刚写的1602 程序为例一个教大家怎么生成和使用lib 文件。 为了实现上面说的lib 的第三个作用,大家要把独立的子函数用不同的.c 分开写。因为

matlab程序如何生成可执行文件

matlab程序如何生成可执行文件 2010-11-01 15:07 一、将matlab编译成可执行程序 如何将MATLAB程序编译成独立可执行的程序?如何将编译好的独立可执行程序发布在没有安装MATLAB的电脑上?下面将一步步实现: 二、生成独立可执行的程序(exe文件)步骤 1、安装编译器。可有多种选择,matlab自带了一个LCC,推荐使用VC++6.0,我基于VS 2003实现。 2、设置编译器。在matlab命令行输入mbuild –setup以及mex –setup,选择安装的c编译器。 3、调用编译器。此处使用MATLAB下的一个GUI平台deploytool下完全实现。在命令窗口输入deploytool即可看到。具体使用方法请Help。 (当然,也可以输入mcc -m filaname, filaname为要转成exe的m文件)注:在以前的版本中,用编译命令mcc -B sglcpp filaname;自2006的版本后,替换为mcc -mfilaname; 4、安装\toolbox\compiler\deploy\win32目录下的MCRInstaller。 三、脱离matlab运行可执行程序 MCR是由matlab的运行环境,占用不到300M的对于用不同matlab版本生成的exe文件,MCR版本也会有不同,因此,在程序打包时,最好将相应版本的MCR 一起打包。MCR环境的设置文件存放目录如下: \toolbox\compiler\deploy\win32 文件名为MCRInstaller.exe。可将其拷贝到自己的文件夹中,(7.0以前的版本是mglinstaller.exe)。 在MATLAB里运行可执行程序的办法是在前面加一个!,比如:!picshow,后缀名可有可无。 四、在其它没有安装matlab的机器上运行exe文件前: 首先安装matlab的运行环境。在同一机器上可以并存不同版本的matlab环境(换句话说不同版本不兼容)。 其次是要将“MCRinstaller.exe安装目录\runtime\win32”这个路径添加到该计算机的环境变量中,通常是自动加载。 如果没有,也可手动安装,添加的方法是: 右击“我的电脑”“属性”“高级”“环境变量”“添加”指定一个变量名,然后将上述路径复制到里面就可以了。 注:在安装过程中会弹出让安装https://www.360docs.net/doc/0310408299.html,Framework可以不用安装。

如何用KeilC51将ASM文件编译成Hex文件

按如下步骤进行: 1)点击菜单project,选择new project: 2)然后选择你要保存的路径,输入工程文件的名字,比如保存到keil目录里,工程文件的名字为test. 如下图所示,然后点击保存 3)这时会弹出一个对话框,要求你选择单片机的型号,你可以根据你使用的单片机来选择,keil c51 几乎支持所有的51核的单片机,如果你设计的是华邦的W77E58,可以选择winbond->W77E58,但是有一些版本,比如6.02,对它不能仿真,但是可以选择dallas的ds80c320来代替设计W77E58,两者的内核是一样的,只是w77e58带flash rom,而ds80c320没有flash rom,如果你的软件在仿真W77e58的时候有问题,那么就选用ds80c320 .我这里还是以大家用的比较多的Atmel 的89c52

来说明,如图所示,选择89c52之后,右边一栏是对这个单片机的基本的说明,然后点击确定. 4)这时要新建一个源程序文件,建立一个汇编或c文件,如果你已经有源程序文件,可以忽略这一步.点击菜单File->New:

5)输入一个简单的程序,如下: 5)选择菜单File_>SAVE: 6)选择你要保存的路径,在文件名里输入文件名,注意一定要输入扩展名,如果是c程序文件,扩展名为.c,如果是汇编文件,扩展名为.a51,如果是ini文件,扩展名为.ini,其他文件类型,比如注解说明文件,可以保存为.txt的扩展名.那么我们这里是要存储一个c源程序文件,所以输入.c扩展名,保存为test.c 的名字,(也可以保存为其他名字,比如learn.c等),点击保存.

MATLAB生成可执行文件

MATLAB生成可执行文件(.exe文件) 2010-07-28 14:59:25| 分类:matlab学习 要将用Matlab语言编写的函数文件编译成可独立执行的*.exe文件(即可脱离Matalab环境的执行程序),首先要安装和配置好Matlab Compiler,一般来说,在安装Matlab时就已经安装了相应版本的Matlab Compiler。只是不同版本的Matlab,其编译器的使用方法有一定的差异,这一点要引起一定的注意。 在确定安装好Matlab Compiler后,还需要对Compiler进行适当的配置,方法是在Matlab命令窗口输入: Mbuild –setup 然后根据提示执行相应的操作,使用者可根据自己计算机中现有编译器的情况选择合适的编译器,如VC++ 6.0、VC++7.0、Bland C的编译器等,目前Matlab好象还不支持VC++8.0(我计算机安装的就是VC++2005,Matlab就无法识别)。当然,如果你的计算机里根本就没有安装其他任何语言的编译器,也可选择Matlab自带的Lcc编译器,其实这个编译器对大多数用户已经够用了(我就是选择的Matlab自带的Lcc编译器)。 配置好编译器后,自然就是对自己编写的M文件进行编译了。 将M文件编译为独立可执行文件的语法是: >>mcc –m fun1.m fun2.m …..

其中fun1就是最后的可执行文件的名称。 另外,也可通过采用命令开关-o指定编译最终目标文件的名称,如mcc –m main.m –o mrank_main,就是将编译后的文件指定为mrank_main.exe。 编译后的生成文件根据编译器的版本不同而不同。具体的可参阅相关资料。 如果要在没有安装matlab的计算机上执行编译后的程序,首先要将MATLAB701 toolbox compiler deploy win32中的MCRinstaller.exe安装到该计算机上(7.0 以前的版本是mglinstaller.exe)。 其次是要将“MCRinstaller.exe安装目录runtimewin32”这个路径添加到该计算机的环境变量中,添加的方法是: 右击“我的电脑”“属性”“高级”“环境变量”“添加”指定一个变量名,然后将上述路径复制到里面就可以了。 第三步是将编译生成的相相关文件拷贝到同一目录下(当然其他目录亦可)。 第四步是打开MS-dos操作窗口,进入到编译后的*.exe程序所在的目录,执行编译生成的*.exe文件即可。 需要说明的一个问题: 如果你的程序还附带有图片(如Version上的图标)、Web页面(如help 文档),在编译的时候可能无法与M文件一起编译(因为我没有试过,也

MATLAB生成可执行文件exe总结

10、要将用 Matlab 语言编写的函数文件编译成 可独立执行的 *.exe 文件 要将用 Matlab 语言编写的函数文件编译成可独立执行的*.exe 文件(即可脱离 Matalab 环境的执行程序),首先要安装和配置好 Matlab Compiler,一般来说,在安装 Matlab 时就已经安装了相应版本的Matlab Compiler。只是不同版本的 Matlab,其编译器的使用方法有一定的差异,这一点要引起一定的注意。在确定安装好 MatlabCompiler 后,还需要对 Compiler 进行适当的配置,方法是在 Matlab 命令窗口输入: Mbuild –setup 然后根据提示执行相应的操作,使用者可根据自己计算机中现有编译器的情况选择合适的编译器,如 VC++ 6.0、VC++7.0、Bland C 的编译器等,目前 Matlab 好象还不支持 VC++8.0(我计算机安装的就是 VC++2005,Matlab 就无法识别)。当然,如果你的计算机里根本就没有安装其他任何语言的编译器,也可选择 Matlab 自带的 Lcc 编译器,其实这个编译器对大多数用户已经够用了(我就是选择的 Matlab 自带的 Lcc 编译器)。配置好编译器后,自然就是对自己编写的 M 文件进行编译了。 将 M 文件编译为独立可执行文件的语法是: >>mcc –m fun1.m fun2.m….. 其中 fun1 就是最后的可执行文件的名称。另外,也可通过采用命令开关-o 指定编译最终目标文件的名称,如 mcc –m main.m –o mrank_main,就是将编译后的文件指定为 mrank_main.exe。编译后的生成文件根据编译器的版本不同而不同。具体的可参阅相关资料。 如果要在没有安装 matlab 的计算机上执行编译后的程序 首先要将\MATLAB701\toolbox\compiler\deploy\win32 中MCRinstaller.exe 安装到该计算机上(7.0 以前的版本是mglinstaller.exe)。 其次是要将―MCRinstaller.exe 安装目录\runtime\win32‖这个路径添加到该计算机的环境变量中,添加的方法是:右击―我的电脑‖―属性‖―高级‖―环境变量‖―添加‖指定一个变量名,然后将上述路径复制到里面就可以了。 第三步是将编译生成的相相关文件拷贝到同一目录下(当然其他目录亦可)。 第四步是打开 MS-dos 操作窗口,进入到编译后的*.exe 程序所在的目录,执行编译生成的*.exe 文件即可。 需要说明的一个问题: 如果你的程序还附带有图片(如 Version 上的图标)、Web 页面(如help 文档),在编译的时候可能无法与 M 文件一起编译(因为我没有试过,也没有看到有关这方面的介绍),这没有关系,先在计算机上执行一次你编译后生成的独立可执行文件,这时在同一目录下会生成一个以

KEILC51编译软件使用方法

2.1 Keiluvision4的安装和使用 Keil 公司是一家业界领先的微控制器(MCU )软件开发工具的独立供应商。Keil 公司由两家私人公司联合运营,分别是德国慕尼黑的KeilElektronikGmbH 和美国德克萨斯的KeilSoftwareInc 。Keil 公司制造和销售种类广泛的开发工具,包括ANSIC 编译器、宏汇编程序、调试器、连接器、库管理器、固件和实时操作系统核心(real-timekernel)。有超过10万名微控制器开发人员在使用这种得到业界认可的解决方案。其KeilC51编译器自1988年引入市场以来成为事实上的行业标准,并支持超过500种8051变种。KeilC51是美国KeilSoftware 公司出品的51系列兼容单片机C 语言软件开发系统,与汇编相比,C 语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil 提供了包括C 编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision )将这些部分组合在一起。运行Keil 软件需要WIN2000、WINXP 等操作系统。如果你使用C 语言编程,那么Keil 几乎就是你的不二之选,即使不使用C 语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。 2.1.1 KeilμVision4简介 KeilμVision4是美国KeilSoftware 公司2009年2月发布的。KeilμVision4引入灵活的窗口管理系统,使开发人员能够使用多台监视器,并提供了视觉上的表面对窗口位置的完全控制的任何地方。新的用户界面可以更好地利用屏幕空间和更 有效地组织多个窗口,提供一个整洁,高效的环境来开发应 用程序。新版本支持更多最新的ARM 芯片,还添加了一些 其他新功能。 2011年3月ARM 公司发布最新集成开发环境RealViewMDK 开发工具中集成了最新版本的KeiluVision4, 其编译器、调试工具实现与ARM 器件的最完美匹配。 2.1.2 Keiluvision4的安装 (1)双击软件安装包如图2-1所示,弹出如图2-2所示界面,点击下一步,进入License 界面。 (2)勾选Iagree 复选框如图2-3选示,点击下一步,进入安装位置选择界面如图2-4所示。 图2-2 KeilμVision4 安装界面 图2-1 KeilμVision4软件安装包

keilc51集成开发环境的使用

Keil C51集成开发环境的使用 Keil C51软件可以从相关网站下载并安装。安装好后,双击桌面快捷图标或在“开始”菜单中选择Keil μVision3,启动Keil μVision3集成开发环境,启动后界面如图4-3所示。 图4-3 Keil μVision3启动后的集成开发环境界面 (一)创建项目 Keil μVision3中有一个项目管理器,用于对项目文件进行管理。它包含了程序段环境变量和编程有关的全部信息,为单片机程序的管理带来了很大的方便。创建一个新项目的操作步骤如下: (1)启动μVision3,创建一个项目文件,并从器件数据库中选择一款合适的单片机型号。 (2)创建一个新的源程序文件,并把这个源文件添加到项目中; (3)为该单片机芯片添加或配置启动程序代码; (4)设置工具选项,使之适合目标硬件; (5)编译项目并创建一个*.hex文件。 下面以本章任务为例分别介绍每一步的具体操作。 1.新建项目文件 单击菜单“Project”→“New Project”命令,弹出如图4-4所示的新建项目对话框,指定保存路径,建议每个项目使用一个独立文件夹,例如本项目保存在“第4章”文件夹;然后,在“文件中名”输入项目名称,例如“4-1”,单击“保存”按钮即完成新项目的创建(系统默认扩展名为“.uv2”)。

保存路径 输入文件名 图4-4 新建项目对话框 此时弹出选择单片机的型号对话框,如图4-5所示,展开Atmel系列单片机,选择“AT89C51”,单击“确定”按钮完成设备的选择。 图4-5 选择单片机的型号对话框 单片机型号选择结束后,在μVision3工作界面左边的项目管理器中新增加了一个“Target 1”目标1文件夹,如图4-6所示。

IAR编译CC2530生成HEX文件

IAR编译ZStack-CC2530,生成HEX文件完全配置 IAR编译ZStack-CC2530为可下载运行的HEX文件的正确配置: 1. 正确配置输出文件格式:菜单选择Project-Options-Linker-Output-Format,选择Other。右边的Output下拉框 选intel-extended,Format variant 下拉框选None,Module-local下拉框选Include all 2.还是在菜单Project-Options-Linker-Output标签中,勾上Override default选项,把编辑框中的文件名的后缀改为hex 以上两步都是大多数人熟知的,下面这一步是针对大型程序编译下载所必须的,也是大部分写zstack教程的人所没有提到的。 3. 找到f8w2530.xcl文件,并打开。(这个文件在 "Projects/zstack/Tools/CC2530DB/"目录下,也可以通过IAR编 译环境的左侧Workspace窗口点开Tools文件夹看到)在f8w2530.xcl文件中找到两行被注释掉的语句: //-M(CODE)[(_CODEBANK_START+_FIRST_BANK_ADDR)-(_CODEBANK_END+_FIRST_B ANK_ADDR)]*/ //_NR_OF_BANKS+_FIRST_BANK_ADDR=0x8000 把这两行前面的"//"去掉,保存,重新编译,OK! (注: 去掉这两行的"//"后在编译输出成hex格式时没有问题,但在debug模式下编译会提示警告:Warning[w69]: Address translation (-M, -b# or -b@) has no effect on the output format 'debug'. The output file will be generated but noaddress translation will be performed. 不过并不会影响debug调试的使用。也许正是为了屏蔽掉此条警告,所以TI在发布Zstack时选择了默认为debug模式才注释掉了这两行指令,但在 编译hex时却又不提示任何警告和错误,真是害人不浅~~)

相关文档
最新文档