Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Пустая структура после присвоения адресса
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > IAR
cpl
Нажмите для просмотра прикрепленного файлаЗдравствуйте

Подымаю FAT () -SD CARD на ADUC, использую IAR5.10
один и тотже код отказался работать после переноса с AVR,
после разбора полета выяснилось что ступор наступает в момент присвоения адресса указателю:

bpb = (FAT16_BOOT_SECT *) _FF_buff;

сам _FF_buff содержит данные прочитанного сектора, но сама структура bpb после присвоения содержит нули, видимо из-за того что размер структуры bpb = 588 байт за место 512 байт.....
некоторые значения занимают 2 байта за место одного !

Что не так может чего упустил ? help.gif
Сергей Борщ
Цитата(cpl @ Jan 10 2008, 13:21) *
Что не так может чего упустил ? help.gif
Несколько сумбурно, но полагаю дело в выравнивании данных внутри структуры. Поищите в документации по ключевому слову alignment. Обрамите описание вашей структуры прагмами #pragma pack (push,1) и #pragma (pop)
cpl
Цитата(Сергей Борщ @ Jan 10 2008, 15:46) *
Несколько сумбурно, но полагаю дело в выравнивании данных внутри структуры. Поищите в документации по ключевому слову alignment. Обрамите описание вашей структуры прагмами #pragma pack (push,1) и #pragma (pop)


Прошу прощения за сумбур голова совсем уже не варит.... twak.gif wacko.gif
Большое спасибо помогло !!! a14.gif 1111493779.gif
пришлось еше корректировать типы данных int занимал 4 байта за место прежних 2.
Сергей Борщ
Цитата(cpl @ Jan 10 2008, 15:30) *
пришлось еше корректировать типы данных int занимал 4 байта за место прежних 2.
Пользуйтесь stdint.h и объявленными в нем uint16_t, uint8_t, uint_fast8_t и т.д. Избавитесь от подобных проблем.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.