如何设置在内嵌RAM中运行程序

如何设置在内嵌RAM中运行程序,第1张

一:新建一个工程或者可以增加一个调试方式。

增加调试方法如下:

1:点击魔法棒(配置工程图标)右侧领奖台一样图案的按钮(Project->manage->Components,Environment and Books)。

2:在Project Targets选项增加一个RAM,点击OK完成。

3:在魔法棒左边的选框选中RAM。

二:新建一个名为SRAMini的文件。内容如下:

FUNC void Setup (void) {

SP = _RDWORD(0x20000000); // Setup Stack Pointer

PC = _RDWORD(0x20000004); // Setup Program Counter

_WDWORD(0xE000ED08, 0x20000000); // Setup Vector Table Offset Register

}

LOAD RAMaxf INCREMENTAL // Download,红色代表工程文件名axf ,与Output选项中输出文件名一致。

Setup(); // Setup for Running

g, main

三、设置项目的参数。在工具条上点击“Options for Target”,d出项目设置对话框。

四、在对话框的Target标签,修改IROM1地址。Cortex-M3的内部RAM的起始地址是0x20000000,STM32F103ZE的RAM总共有64k。这里把48k分给ROM,16k分给RAM,设置如下图。

注意,IROM原先的地址是0x8000000,后面是6个0,而需要填入的新地址是0x20000000,后面拖的是7个0,千万不要填错。

五、切换到Linker标签,修改基地址。

一开始,此标签下的R/O Base和R/W Base内容是不允许修改的,如下图

勾销“Use Memory Layout from Target Dialog”之后才可以编辑。在R/O Base填入0x20000000,在R/W Base填入0x2000C000,然后在勾选“Use Memory Layout from Target Dialog”。完成后如下图。

六、接下来是Debug标签设置。

1.首先去掉“Load Application at Startup”核选框,并在下面填入刚才建立的SRAMini文件。

2.选择Cortex-M3 J-Link调试器。如下图。

再点击旁边的Setting按钮,设置JLink设备。在d出对话框中选择“Falsh download”标签。

(1)核选“Do not Erase”,即在下载之前不需要擦除存储器;

(2)在“RAM for Algorithm”区的Start栏填入0x2000C000,与前面的RAM设置保持一致。这里的RAM空间是供烧录时用的,大小用默认的就可以,不用改。

(3)点击对话框最下面的Add按钮,在d出对话框中选择“STM32F10X High-density Flash”,并点击确定,与STM32F103ZE CPU保持一致。

(4)在“Programming Algorithm”的Start和Size中,一如既往地填入0x20000000和0xC000。指定烧录过程的起始位置和范围。按确定回到“Options for Target”对话框。

七、选择“Utilities”标签栏,在“Use Target Driver for Flash Programming”下面选择“Cortex-M3 J-Link”。旁边的Setting按钮和刚才设置的是同一个对话框。

八、至此,设置全部完成。可以下载到板上运行了。

RAM(6264)的片选线(/cs)应该连上,假设连p24或其他未使用p2端口

实现将数据13h写入RAM的0001h地址

MOV A,#13h

MOV DPTR,#0001h

MOVX @DPTR,A

单片机运行时需要调用某个程序/函数/固定数据时就需要读取ROM,然后在RAM中执行这些程序/函数的功能,所产生的临时数据也都存在RAM内,断电后这些临时数据就丢失了。

ROM是放程序的,单片机工作是只能对ROM读,RAM即可读也可以写,单片机运行时中间变量,程序运行结果都放在RAM里的。RAM比ROM小很多,用的时候须格外珍惜。

随机存取存储器(英语:Random Access Memory,缩写:RAM),也叫主存,是与CPU直接交换数据的内部存储器。它可以随时读写(刷新时除外),而且速度很快,通常作为 *** 作系统或其他正在运行中的程序的临时数据存储介质。RAM工作时可以随时从任何一个指定的地址写入(存入)或读出(取出)信息。它与ROM的最大区别是数据的易失性,即一旦断电所存储的数据将随之丢失。RAM在计算机和数字系统中用来暂时存储程序、数据和中间结果。

将片内RAM的20H,21H,22H单元的内容依次存入片外RAM的20H,21H,22H中:

MOV R0,#20H

MOV R1,#03H;用于控制循环次数

MOV DPTR,#20H

LOOP:

MOV  A, @R0

MOVX  @DPTR , A

INC  R0;片内RAM地址加一

INC DPTR;外部RAM地址加一

DJNZ  R1,LOOP;未循环完3次,跳回继续移数值

SJMP   $;停止

END

编程将片外RAM的1000H单元开始的100个字节的数据相加,结果存放于R7R6中:

MOV   R6,  #0

MOV   R7,  #0

CLR C;必须先将CY(进位标志)清零

MOV   DPTR,  #1000H

MOV   R2,  #100

LOOP:

MOVX   A,  @DPTR

ADD   A,  R6

MOV  R6,  A;存储低8位

JC  ADD2;CY为一的话,跳转到ADD2,使R7加一(即低8位有进位的话,高8位要加一)

INC   DPTR

DJNZ  R1,   LOOP

SJMP   $

ADD2:

INC R7;R7存储高8位

RET

END

程序编写

1970

70年代早期,Charles Moore在他的语言Forth中写下了第一个有意义的程序。

Prolog方面的工作大约在此时开始了。

同样是在70年代早期的某一天,Xerox PARC由Alan Kay领导,开始了Smalltalk的设计工作。早期版本包括Smalltalk-72,Smalltalk-74和Smalltalk-76。

Pascal在CDC 6000-series电脑上的一个实现出现了。

编程器

Icon,SNOBOL4的一个后代产品问世。

1972

Konrad Zuse写的关于Plankalkul(见1946年)手稿终于出版了。

Dennis Ritchie设计了C。但是最终的参考手册却是在1974年发布的。

Prolog的第一个实现——Alain Colmerauer和Phillip Roussel的功劳。

1974

另一个COBOL的ANSI规范出现。

1975

Tiny BASIC,由Bob Albrecht和Dennis Allison设计(由Dick Whipple和John Arnold实现),运行在2KB内存的微型计算机上。一台4KB的机器是较为合适的,它将有2KB的内存应用于这个程序上。

Bill Gates和Paul Allen编写的一个BASIC版本以抽取每份拷贝版税的形式销售给MITS(Micro Instrumentation and Telemetry Systems)。MITS生产Altair,这是一种8080结构的微型计算机。

Scheme,一个LISP的“方言”,由GL Steele和GJ Sussman设计。

Pascal用户手册和报告出版,Jensen和Wirth编写。许多人至今都认为它是Pascal方面权威的参考书籍。

BW Kerninghan描述了RATFOR——RATional FORTRAN。它是预处理程序,并且允许在FORTRAN中使用类C的控制结构。RATFOR被应用到了Kernighan和Plauger的“Software Tools”中,它出现在1976年。

以上就是关于如何设置在内嵌RAM中运行程序全部的内容,包括:如何设置在内嵌RAM中运行程序、6264RAM 读写程序(紧急)、单片机的ROM和RAM运行时的区别与联系是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9286000.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-26
下一篇2023-04-26

发表评论

登录后才能评论

评论列表(0条)

    保存