Разработка, производство и продажа радиоэлектронной аппаратуры
|
Карта сайта
|
Пишите нам
|
В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:
jobsmp@pochta.ru
Телесистемы
|
Электроника
|
Конференция «Микроконтроллеры и их применение»
запустите для примера это текст в PC и в KEIL(ARM) и получите разные ж-( при выполнении - отсюда и вопрос - а дохтуром тут и не пахнет- по теме что можете сказать?
Отправлено
net_net
21 марта 2007 г. 21:25
В ответ на:
Это не привидение, это дохтур имхо.....
отправлено pau62 21 марта 2007 г. 21:20
Составить ответ
|
Вернуться на конференцию
Ответы
Нет, вы объясните, а прописать приведение к типу ручками слабо? Пальцы жалеем, а форум - нет? ;-) Я вот не гнушаюсь, и вопросов лишних не задаю...
—
Vladimir Ljaschko
(21.03.2007 21:29:55
194.226.120.28
,
пустое
)
Приведение типов тут не поможет. Если вдруг char попадет на нечетный адрес в 16/32 битной архитектуре, то обращение к нему будет неверным.
—
rezident
(21.03.2007 21:53:26
195.222.149.11
,
пустое
)
а почему на PC это все работает прекрасно?
—
net_net
(21.03.2007 22:05:5
91.76.219.140
,
пустое
)
патаму што packed надо, а не pack(1).
—
DASM
(21.03.2007 22:08:18
212.58.192.14
,
пустое
)
или pack(2) наверное...
—
Vladimir Ljaschko
(21.03.2007 22:13:25
194.226.120.28
,
пустое
)
не надо. 2 - тем более не надо, проц 32 битный
—
DASM
(21.03.2007 22:14:45
212.58.192.14
,
пустое
)
да нет там 1 тоже все упаковано - но работает правильно - дело не прагме - а в том что компилятор правильно команды делает
—
net_net
(21.03.2007 22:21:58
91.76.219.140
,
пустое
)
приведение типов тут не причем - попробовать то можно но проблема там возникает где типы одинаковые - если есть кейл то попробуйте в эмуляторе для arm
—
net_net
(21.03.2007 21:31:24
91.76.219.140
,
пустое
)
Кейл не юзаю. И в такие исследования не влезаю. Все должно быть записано правильно для начала.(+)
—
Vladimir Ljaschko
(21.03.2007 21:35:14
194.226.120.28
, 72 байт)
там не берет данные - а обнуляет их при записи
—
net_net
(21.03.2007 21:37:49
91.76.219.140
,
пустое
)
Два варианта - влияние структуры (проблемы с выравниванием) и собственно типы. Можно убрать структуру, поменять последовательность переменных в структуре
—
Vladimir Ljaschko
(21.03.2007 21:40:18
194.226.120.28
,
пустое
)
да какие проблемы то - компилятор тут прекрасно знает о выравниваеии и должен делать корректный код. Но он его не делает
—
DASM
(21.03.2007 21:49:40
212.58.192.14
,
пустое
)
на pC код работает правильно - неправильно(вызывается неправильная команда и делается неправильный результат в keil arm) отсюда и вопрос
—
net_net
(21.03.2007 21:45:13
91.76.219.140
,
пустое
)
чего пробовать то ??
—
DASM
(21.03.2007 21:33:40
212.58.192.14
,
пустое
)
сколько у вас получается size в самом конце прграммы?
—
net_net
(21.03.2007 21:38:24
91.76.219.140
,
пустое
)
IAR MSP430 не устроит?
—
Vladimir Ljaschko
(21.03.2007 21:43:18
194.226.120.28
,
пустое
)
интересно посмотреть IAR ARM - вот это интересно было бы
—
net_net
(21.03.2007 21:45:49
91.76.219.140
,
пустое
)
жопа получается, правда. Я понимаю когда такое возникает при передаче указателя - тогда ясно, ф-ция не знает о выравнивании.. но тут прямое присвоение и такая попа - not aligned access обрабатывается не верно.. погляжу что там стандарт говорит.. если найду..
—
DASM
(21.03.2007 21:48:39
212.58.192.14
,
пустое
)
во-во - пишет что попа - а компилит через другую попу - тоесть одна рука знает а другая делает по другому - на PC все похрену - работает как надо - а здесь чтото попа ;-(
—
net_net
(21.03.2007 21:59:48
91.76.219.140
,
пустое
)
Компилятор IAR вообще все выкидывает нах ;-) Что дальше написать то?
—
Vladimir Ljaschko
(21.03.2007 21:51:44
194.226.120.28
,
пустое
)
ну это понятно - сразу пишем volatile unsigned long Size;. Только в ИАРе я такого бага не помню, работал нормально с pack(1)
—
DASM
(21.03.2007 21:52:33
212.58.192.14
,
пустое
)
volatile не помогает... Грамотно
—
Vladimir Ljaschko
(21.03.2007 21:57:4
194.226.120.28
,
пустое
)
что значит не помогает ?
—
DASM
(21.03.2007 21:58:14
212.58.192.14
,
пустое
)
Пока в прерывание обращение не вставил, выкидывал все равно. Короче, IAR MSP - все нормально. Нормальный 16 битный процессор :-)
—
Vladimir Ljaschko
(21.03.2007 22:00:56
194.226.120.28
,
пустое
)
Отправка ответа
Имя*:
Пароль:
E-mail:
Тема*:
Сообщение:
Ссылка на URL:
URL изображения:
если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
поделите шесть пополам:
Перейти к списку ответов
|
Конференция
|
Раздел "Электроника"
|
Главная страница
|
Карта сайта
Web
telesys.ru