2015-11-06 3 views
0

Я использую MPC5644A freescale EVB board.Как определить константную переменную в ОЗУ?

Мне нужно найти способ определения константной переменной в ram. Так что в файле LCF я указал эту переменную на расположение RAM mpc5644. Но во время выполнения я принимаю IVOR1, как я ожидал.

Существует одно основное правило. Я не могу изменить тип или имя переменной const. Но мне нужно использовать эти переменные в ОЗУ с определенной областью, как «calibration_ram»

Любая помощь может быть такой хорошей.

Мой C Источник, как показано ниже:

#pragma push /* Save the current state */ 
#pragma section sconst_type ".__cal_DataArea" 

volatile const real32_T freq2rpm; 
volatile const real32_T high_voltage; 
#pragma pop 

...

МОЙ LCF Файл:

MEMORY 
{ 

calibration_ram :  org = 0x40040000, len = 0x00010000 

... 


SECTIONS 
{ 

    .__bam_bootarea LOAD (ADDR(resetvector)): {} > resetvector 
    .__cal_DataArea LOAD (ADDR(calibration_ram)): {} > calibration_ram 

... 
+0

Я не совсем понимаю ваш вопрос. Вы хотите 'const' в ОЗУ? скомпилируйте его. Вы хотите его в определенном месте? Вы, кажется, достигли этого (или находитесь на вашем пути. Файлы дескриптора компоновщика очень специфичны для цепочки инструментов, поэтому я не могу сказать, правильно ли вы выполняете какой-либо безымянный набор инструментов, который вы используете). Если вы хотите что-то другое, объясните, что вы хотите выполнить. –

+0

Вы используете компилятор Codewarrior, правильно? И действительно, этот вопрос не имеет никакого смысла в микроконтроллере на основе флеш-памяти. Если вы хотите константу, поставьте ее во flash. Если вам нужна непостоянная, но она в ОЗУ, период. – Lundin

+0

В любом случае, я далек от мастера сценария компоновщика, но попробуйте это: '#pragma section sconst_type" .__ cal_DataArea "" .__ cal_DataArea " __declspec (раздел" .calibration_ram ")'. Насколько я могу судить, файл LCF выглядит нормально. – Lundin

ответ

0

Когда я пытаюсь с ниже линии, она решается , Я могу определить константную переменную в ОЗУ

#pragma explicit_zero_data on 
#pragma push 
#pragma section sconst_type const_type ".__cal_DataArea" ".__cal_DataArea" 
... 
.. 

Спасибо всем.

Смежные вопросы