Хой,
Программирую одну библиотеку ГУЯ для армовских микроконтроллеров. Компиллятор arm-none-eabi-gcc.
Итак трабл. Чтобы хранить шрифты я использую массив данных, хранящийся в ROM'e, т.е. const. Типа так: http://pastebin.com/raw/TujVYfmW
По-идее он const и проблем с рамой быть не должно. Ноооо... они есть. Когда этот файл добавлен полностью, то программа крашиться на одном маллоке, что впринципи странно, но когда я удаляю половину массива, оставляя только англ символы, то всё внезапно начинает работать! Я менял размер и хипа, и стака по-разному - и ваще ничего не меняется. Рамы ещё дохера используется только 50кб из 96кб. Флэши тоже. Всего прожка выходит в 130кб из 512кб.
Норм массив:
$ objdump -x MakiseTest401re.elf | grep Arial
00000000 l df *ABS* 00000000 Arial24.c
08007f90 l O .rodata 000001c0 ArialBold_24_OffsetTable
08008150 l O .rodata 00002700 ArialBold_24_SymbolTable
0800a850 l O .rodata 000000e0 ArialBold_24_WidthTable
0800a930 g O .rodata 00000018 F_Arial24
Обрезанный:
$ objdump -x MakiseTest401re.elf | grep Arial
00000000 l df *ABS* 00000000 Arial24.c
08007ea0 l O .rodata 000001c0 ArialBold_24_OffsetTable
08008e28 l O .rodata 000000e0 ArialBold_24_WidthTable
08008f08 g O .rodata 00000018 F_Arial24
08008060 g O .rodata 00000dc8 ArialBold_24_SymbolTable
Вроде всё норм. Как и должно быть. Функции отрисовки тоже работают отлично.
Мб кто-нить знает в чём проблема? Мб чё-нить глупое упустил?