MALLOY2
May 26 2006, 16:49
Проц 5502 когда пытаешся в секции разместить данных больше чем 64К выдает такой варнинг
> warning: .fifo_tx section (0x400000) spans page boundary: not llowed
before CPU revision 3.0
пробывал в опции -v поставить core:3.0 варнинг исчезает но будет ли работать после этого программа, или просто не обращать на него внимания, кто то сталкивался с такими проблеммами ? Или какие есть варианты мне нужно создать масиив структур(структуры с битовыми полями) общим обьемом 512K ?
И походу разьясните чем отличается режим стека c54x_stk и USE_RETA и какой лучше применять для программ написанных на С ?
Alex11
May 26 2006, 17:13
Проблема в том, что адресная арифметика в 55 ядре 16-битная. Когда будет рассчитываться указатель, то все будет не так. Я еще не видел, что они в rev 3 подправили, но может расширили вычисления. Тогда будет как написано - до rev 3 работать не будет, выше - да. Если нужно в старом ревижене ядра обрщаться к длинному массиву, то следует вычислить указатель ручками в long, присвоить этот long указателю, а затем обращаться по указателю. Если структура, из которых состоит большой массив не пересекает границу 64К, то можно ручками считать только указатель на структуру, а к элементу структуры обращаться как обычно.
MALLOY2
May 26 2006, 19:51
Тут взял и написал тестик который записывает весь масив счетчикиком и потом считал все в порядке работает как часики. Но что будет дальше не знаю

но надеюсь на лучшее. А по поводу адресной арифметики она у него как 16 так 32, если арифметика 16 то нокой ему EMIF

с блоками по 32 метра.
Alex11
May 28 2006, 11:56
Счетчик, я надеюсь, был 32-х разрядный? Иначе это не тест. А по поводу адресной арифметики, то она только 16-битная. Я имею в виду, что операции, выполняемые на A-unit (типа автоинкремента регистров AR) только 16-битные. Старшая часть AR не изменяется, поэтому нельзя сделать адресацию массива, пересекающего границу 64К, с автоинкрементом - он зациклится на границе 64К. То же самое будет происходить с индексными адресациями типа AR0+T0.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.