Перейти к содержанию
    

Улетает указатель в tms5510

Такая проблема присваиваю в тмс указатель ptr=0x28000. И начинаю инкрементировть указатель и записывать в него данные/

 

for(i=0;i<0xffff;i++)

{

*ptr=i;

ptr++;

} Заранее спасибо за помощь.

Все нормально пишется до адреса 0ч30000(60000). А потом все нет ничего. Такое ощущение что указатель слетает. Может кто встречался с такой проблемой, может есть какие то параметры компиляции.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Такая проблема присваиваю в тмс указатель ptr=0x28000. И начинаю инкрементировть указатель и записывать в него данные/

 

Какая модель памяти указана в опциях компилятора?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Физически у 5510 адресная арифметика 16 битная, а старшие разряды адреса храняться отдельно. Поэтому при переходе через границу 65536-словной страницы запись у вас продолжается с ее начала, то есть с адреса 0x20000. там свои данные ищите. А код в рамках "физики" работы ядра C55x работает адекватно, за старшими частями адресов надо следить отдельно, инкременитруя их отдельной операцией, а не адресной арифметикой.

 

Или, как вариант, инкрементировать число в 32-битной переменной и каждый раз присваивать указателю - но это жестокие тормоза будут из-за постоянного stall-а в конвейере (адресная арифметика считается в адресной фазе, а сдесь будет присваивание в фазе исполнения, а на это время, пока инструкция идет от адресной фазы до исполнения, будет stall)

 

так сказать "особенности национальной ... " и "читайте инструкцию" (на само ядро).

Изменено пользователем SAURIS GmbH

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...