[an error occurred while processing this directive]
|
Вопрос немного раньше поднимался, но если не возражаетет продолжим :). Дела неспешно текли - вот пришло время реально попортировать.
Работаю на симуляторе для 5510
Что проделал:
1. В reset векторе поменял режим стека. Естественно его делаю – reset.
2. обозвал «прагмами» соответствующие процедуры на asm.
Что наблюдаю – после вызова функции на asm (той что для 54) все становиться как то странно – короче даже умирает чаще всего – убегает программа в даль неизвестную. Точнее так – asm функция отрабатывает, возвращает результат – все вроде нормально, но вот далее «сишный» код ведет себя как описано выше. Если убрать вызовы asm функции то «сишный» код ведет себя неплохо. Напрашивается вывод – разрушается так сказать «сишное» окружение – а как же прагмы?
Ясно 54 и 55 окружения отличаются – по разному сохраняют регистры при вызове функций. «Прагмами» вроде обещано вроде что они готовят окружение как в 54? Или что то еще не узрел?
Вопрос второй – про динамическое выделение памяти: использую malloc, sysmem секцию положил в DARAM. Map файл говорит что то ее адрес 0x2700 примерно – а вот malloc выдает указатель на 0xf845 например. Как то это странно? Этот эффект сам по себе проявляется – без всякого участия портирования.
Заранее спасибо.
E-mail: info@telesys.ru