2016-09-02 9 views
0

Как установить несколько байтов flash, запрограммированных программистом флэш-памяти во время программирования mcu, чтобы быть определенным значением с помощью программной цепочки msp GCC? Например, TI C/C++ компилятор набора инструментов, включает в себя ассемблер, и следующие строки сборки установить ячейки памяти нужные значения:Установите флэш-память Расположение определенных значений на MSP430 с использованием GCC

;---------------------------------------------------------------------- 
.sect ".BSLSIG" 
.retain 
;---------------------------------------------------------------------- 
       .word  0xFFFF   ; 0x17F0 
BslProtectVecLoc .word  BSL_Protect ; 0x17F2 adress of function 
PBSLSigLoc  .word  03CA5h   ; 0x17F4 1st BSL signature 
SBSLSigLoc  .word  0C35Ah   ; 0x17F6 2nd BSL signature 
       .word  0xFFFF   ; 0x17F8 
BslEntryLoc  .word  BSL_Entry_JMP ; 0x17FA BSL_Entry_JMP 

Есть ли способ сделать что-то подобное с помощью GCC набора инструментов MSP?

ответ

1

Ассемблер GNU имеет те же механизмы. Например, вот как MSP430 startup code помещает адрес кода запуска в вектор сброса:

 .section ".resetvec", "a" 
__msp430_resetvec_hook: 
     .word __crt0_start 

Как компилятор TI, это требует раздел (здесь: .resetvec) должны быть определены в linker script.

+1

Я думаю, что нет необходимости менять сценарий компоновщика, при этом можно установить начальный адрес раздела в параметрах компоновщика: 'LDFLAGS + =" -Wl, - section-start = .resetvec = 0x5000 "'. Атрибуты раздела могут быть установлены в GNU C с помощью синтаксиса '__attribute__ ((раздел (.resetvec))). – kfx

+0

Можно ли сделать то же самое, но использовать компилятор GCC C? – user1135541

+0

@kfx Как вы можете установить атрибуты раздела * в C? –