реклама на сайте
подробности

 
 
> Знатокам CrossWorks, Ну просто задолбало!!!
OlegS
сообщение Jan 19 2006, 22:18
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 38
Регистрация: 28-11-05
Пользователь №: 11 519



Делаю с CW 1.5b2 под AT91RM9200 (на evm9200)

Флэшку победил, лоадер сделал свой по образу и подобию когентовского сампла.
Но начинаются приколы!!!
Причем если проект заработал, то прошивается и стартует, как в отладчике, так и самостоятельно с флэшки без проблем. НО. Очень не стабильно собираются проекты и отлаживаются.

1.Если править memorymap файл из IDE, то после правки ИДЕ вылетает сославшись на внутреннюю ошибку и запускается только если восстановить родной мем-мап для проца (он почему-то усекается до нескольких кб)
2.BIN. Если делать не только эльф, то почему-то иногда проект клинит, так что надо создавать новый. А косяк такой : размер бина = 512 или 256 Мб !!! Если делать хекс, то и он кривой хоть и маленький.
3.В проект добавляю скрипт загрузчика, в ИДЕ не дает менять тип файла и при отладке периодически ругается что типа не найден объект во второй строке. Лечиться правкой файла проекта руками, путем установки типа файла
4.Самое гнустное. Допустим, добавляю в прогу обычный printf и когда в отладчике пытаюсь его пройти, то все клинит (естественно _putchar переопределил, да и адреса вызовов на первый взгляд нормальные). Делаю новый проект с теми-же файлами и настройками и … все ОК! Но иногда эта хрень повторяется заново и сама же может и пропасть, как и п.2. Хотя такое происходит и со своими функциями, но реже.
5.Захотел в SDRAM выделить себе буферок под 10 Мб (ну надо!), ну и чтобы по игротски описал его, как сегмент без конкретного адреса, но с размером. Пока нормально – компилится размещается. Описываю в проге на него ссылку типа extern unsigned int __seg_start__; далее использую это число как адрес начала буфера. И вот тута начинается. Дохожу отладчиком на место присвоения адреса своему указателю и:
a.Подвожу курсор на переменную сегмента – адрес совпадает на 100%
b.А переменной присваивается на 26 меньше, хотя бывают и другие расхождения.

В принципе бывают и другие «радости».

Знатоки, может подскажете? Что и как……
Или переходить под IAR, жалко, нравится сама среда CW, да и другие прелести есть…

Пробовал на Win2003 и XPsp2. С виглером и с MT-линком. Может просто глюки из за этих осей – типа подавай ей ME или просто XP.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
OlegS
сообщение Jan 20 2006, 19:57
Сообщение #2


Участник
*

Группа: Новичок
Сообщений: 38
Регистрация: 28-11-05
Пользователь №: 11 519



Цитата
Можно кусок исходников с инициализацией адреса и присвоением адреса указателю?

исходняки остались в конторе, а инет отвалился. Сегодня сделал так и сработало:

extern BYTE * __seg_start__;
void F()
{
...
register BYTE * tmp asm("r8");
BYTE *seg_pointer;
asm("ldr r8, =__seg_start__");
seg_pointer = tmp;
...
}

Цитата
Если программа предназначена для работы из SDRAM и линкеру

Про SDRAM намек понял! Буду попробовать. Но у меня такая хрень и с флешовым вариантом angry.gif
Опять таки сегодня копал flash_plasement переставлял туда-сюда, в конце концов вернул все в зад и ... стал нормально строить бинарник!!! Ну что ты будеш делать???!

Но самое гнустное остается это п.4

Чего они пьяные все были, когда писали эту версию CW?
Если их самплы не работают как надо.

Но вообще СПАСИБО, особливо за SDRAM.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 18:42
Рейтинг@Mail.ru


Страница сгенерированна за 0.01357 секунд с 7
ELECTRONIX ©2004-2016