Das Programm muss im Speicher gespeichert werden, bevor es von der CPU aufgerufen und ausgeführt werden kann, und der Inhalt des Befehlsregisters muss zuerst an den Adressbus übertragen werden. Wenn der PC das Programm ausführt, überträgt er das Programm von dort Der externe Speicher wird zum Ausführen in den RAM und die CPU übertragen. Das Programm wird zur Laufzeit direkt aus dem Flash gelesen.
Wenn die CPU ein Programm ausführt, muss der Befehl im Speicher vorhanden sein und der Inhalt des Befehlsregisters muss zuerst an den Adressbus übertragen werden.
Die spezielle Art und Weise für x86-CPU und Mikrocontroller, das Programm zu lesen. Beim Ausführen des Programms überträgt der PC das Programm vom externen Speicher (Festplatte) zum Ausführen, und die CPU liest das Programm aus dem RAM. Und die Daten, das Programm des Mikrocontrollers, werden im Flash verfestigt. Bei laufender CPU wird das Programm direkt aus dem Flash gelesen und die Daten werden aus dem RAM gelesen . Die x86-Architektur-CPU basiert auf dem von Neumann-System. Das heißt, Daten und Programme werden zusammen gespeichert, und die RAM-Ressourcen von PCs sind ziemlich reichlich und reichen von Dutzenden von M bis zu mehreren G, was objektiv möglich ist hält einer großen Menge an Programmdaten stand. RAM
中运行,cpu从RAM中读取程序和数据而单片机的程序则是固化在flash中,cpu运行时直接从flash中读取程序,从RAM中读取数据造成这种差别的具体原因分析x86构架的cpu是基于冯.诺依曼体系的,即数据和程序存储在一起,而且pc机的RAM资源相当丰富,从几十M到几百M甚至是几个G,客观上能够承受大量的程序数据。
单片机的构架大多是哈弗体系
的,即程序和数据分开存储,而且单片的片内RAM资源是相当有限的,内部的RAM过大会带来成本的大幅度提高。通过上面的分析可得知:单片机的程序能存储于flash中是基于两点考虑,即体系结构和RAM资源的多少。
因此,在技术不但进步片内RAM容量不断增多的今天,RAM资源已经不再是制约这种差别的主要因素,而对于体系机构我们只要更改cpu读取程序的方式就可以。
将嵌入式系统的程序存于RAM中的具体做法“对于很多的嵌入式系统,其代码很多都存储在norflash中,运行也是直接在flash中运行.我最近了解到我新公司的软件中的一段代码当时为了提高运行速度被加载到ram中运行.当时他们是花了很多时间来解决这个问题的.我仔细研究了一下链接脚本,用的是gnu的linux的交叉工具链.地址分配是写在一个ld脚本中的.
他们是这样实现的:1,将你需要在ram中运行的代码写在单独的一个c文件中,然后在脚本中设置其运行地址与存放地址分开.设置好必要的代码起始和结束的标志变量.2,在代码中将存放地址处的代码拷贝到运行地址中.冯.诺依曼体系与哈佛体系的区别二者的区别就是程序空间和数据空间是否是一体的。
早期的微处理器大多采用冯诺依曼结构
Haval-System
, das heißt, Programme und Daten werden separat gespeichert und die On-Chip-RAM-Ressourcen eines einzelnen Chips sind recht begrenzt die Kosten. Aus der obigen Analyse lässt sich erkennen, dass das Programm des Mikrocontrollers basierend auf zwei Überlegungen im Flash gespeichert werden kann, nämlich der Architektur und der Menge der RAM-Ressourcen. Da die Technologie heute Fortschritte macht und die RAM-Kapazität auf dem Chip weiter zunimmt, sind RAM-Ressourcen nicht mehr der Hauptfaktor, der diesen Unterschied einschränkt. Bei der Systemstruktur müssen wir nur die Art und Weise ändern, wie die CPU das Programm liest. 🎜Wenn Sie mehr über das Programmieren erfahren möchten, achten Sie bitte auf die Rubrik 🎜php-Schulung🎜!Die spezifische Methode zum Speichern eingebetteter Systemprogramme im RAM „Bei vielen eingebetteten Systemen werden viele ihrer Codes in Norflash gespeichert und direkt im Flash ausgeführt. Das habe ich kürzlich erfahren in der Software meiner neuen Firma Ein Stück Code wurde geladen In den RAM, um die Laufgeschwindigkeit zu verbessern, habe ich das Link-Skript sorgfältig studiert und die Adresszuweisung in einem LD-Skript geschrieben So implementieren sie es: 1. Schreiben Sie den Code, den Sie im RAM ausführen müssen, in eine separate C-Datei und legen Sie dann die Laufadresse und die Speicheradresse separat im Skript fest. Legen Sie die erforderlichen Vorzeichenvariablen für den Anfang und das Ende fest 2. Kopieren Sie den Code an die laufende Adresse im Code. Der Unterschied zwischen den beiden ist der Programmraum und der Datenraum Die meisten frühen Mikroprozessoren verwendeten die
Von-Neumann-Struktur
. Das Abrufen von Befehlen und Operanden erfolgt über denselben Bus Während des Hochgeschwindigkeitsbetriebs können Anweisungen und Operanden nicht gleichzeitig abgerufen werden, wodurch ein Engpass im Übertragungsprozess entsteht.
Harvard-Bus-Technologieanwendungen werden durch DSP und ARM dargestellt Die Harvard-Bus-Architektur ist getrennt, wodurch Befehle und Operanden gleichzeitig abgerufen werden können, wodurch die Rechenleistung erheblich verbessert wird. Beispielsweise verfügt der DSP der STM320LF240x-Serie über eine verbesserte Harvard-Struktur durch drei Gruppen paralleler Buszugriffe Leerzeichen
Das obige ist der detaillierte Inhalt vonWo das Programm gespeichert werden muss, bevor es von der CPU aufgerufen und ausgeführt werden kann. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!