[elektro] C kérdés CORTEX M0 és M0+ KEIL fordítóra

hg12345 hg12345 at freemail.hu
Fri Aug 12 11:27:06 CEST 2016


Nincs ilyen hogy FLASH attributum :-(, maximum sector van, de ahhoz tudni kell mi a sectror neve, de ezt még kipróbálható

Skandar Graun <sgraun at gmail.com> írta:
>A FLASH atttribútumot próbáltad?
>
>Nekem ez PIC-re így nézett ki, amikor karakterkészlet került a flash-ba:
>
>#ifdef USE_GFX_FONT_IN_PROGRAM_SECTION
>extern const char __Font25[] __attribute__((space(prog), aligned(2)));
>#else
>extern const char __Font25[] __attribute__((aligned(2)));
>#endif
>
>const FONT_FLASH Font25 =
>{
>    (FLASH | COMP_NONE),
>    (GFX_FONT_SPACE char *)__Font25
>};
>
>#ifdef USE_GFX_FONT_IN_PROGRAM_SECTION
>asm(".section .text, code");
>#else
>asm(".section .const, psv, page");
>#endif
>asm(".global ___Font25");
>asm(".align 2");
>asm("___Font25:");
>
>
>2016. augusztus 11. 20:31 hg12345 írta, <hg12345 at freemail.hu>:
>
>> Hi,
>>
>> hogyan lehet a fordítót rászedni, hogy egy pointer tömb csak a FLASH-ben
>> legyen tárolva.
>> pl.: több nyelvű string készlet normál esetben így kéne írni
>>
>> const uint8_t conts* StrArray[2][6] = {{ estr1,nstr1 }; {estr2,nstr2};
>> ..... };
>>
>> vagyis constans pointer tömb constans értékekre mutatva,
>> de a fordító csak egy "const" fogad be.
>>
>> próbálkoztam const* helyet  * is, elvileg ez is jó lenne, hiszen a
>> sztringek amúgy is FLASH területen vannak, de de az eredmény ugyanaz,
>> inicializált ram területen készíti el pointer tömböt..
>>
>> const uint8_t * StrArray
>> uint8_t const * StrArray
>> ugyan azt az eredményt adja.....
>>
>> __attribute__ se hozott jó eredményt
>>
>> Mi a helyes megoldás?
>>
>> Üdv
>>
>>
>> -----------------------------------------
>>           elektro[-flame|-etc]
>-----------------------------------------
>          elektro[-flame|-etc]



More information about the Elektro mailing list