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

vik0

Свой
  • Постов

    381
  • Зарегистрирован

Весь контент vik0


  1. Как-то так: sdram_no_init NO_INIT { INPUT_SECTION_ALIGN(4) INPUT_SECTIONS($OBJECTS(sdram_no_init)) }>MEM_SDRAM_BANK3 #pragma section("sdram_no_init", NO_INIT) char m[size]; Видимо неправильно объявлена. Для стека: scratchpad { INPUT_SECTION_ALIGN(4) RESERVE(heaps_and_stack_in_SCRATCHPAD, heaps_and_stack_in_SCRATCHPAD_length = 2K,4) RESERVE_EXPAND(heaps_and_stack_in_SCRATCHPAD, heaps_and_stack_in_SCRATCHPAD_length , 0, 4) ldf_stack_space = heaps_and_stack_in_SCRATCHPAD; ldf_stack_end = (ldf_stack_space + (((heaps_and_stack_in_SCRATCHPAD_length * 2K) / 2K) - 4)) & 0xfffffffc; } > MEM_L1_SCRATCH Включив телепатические способности, рискну предположить что у вас ошибка в строке 123 в файле foo.c Шутка. А редактировать .ldf в текстовом виде уже не гламурно? ;) 99.9% - не поможет. Ищите ошибки в своем коде.
  2. А о [примерной] дате доступности этого "зверька" ничего не говорили?
  3. Зачем? :07: L1 и так работает на частоте ядра Не в SDRAM однозначно. Если хватит 4к под стек (мне до сих пор хватало) - тогда в scratchpad. Если мало - в некэшируемой L1. По скорости L1 и scratchpad одинаковы.
  4. Здравствуйте. 1. Да, все правильно 2. В окне Project Options поменять тип проекта (см. рис), и пересобрать проект. 3. Да Часто правильная организация потоков DMA позволяет обойтись без использования кэша данных.
  5. Тогда в чем проблема? Как "прыгнуть" в SDRAM? Не путайте мухи и котлеты. Кучу и стек в памяти программ вы не разместите. Интеррупт хэндлеры займут намного меньше чем 32кб. Зачем пихать всю програму в SDRAM? Не режьте. Разместите критичные к скорости выполнения куски в L1 принудительно, код инициализации - в SDRAM (принудительно). Остальное оставьте на усмотрение линкера. И включите кэш. Все.
  6. Приложение НЕ МОЖЕТ стартовать с произвольного адреса. Либо с 0х20000000 (в режиме bypass), либо с начала L1 code. Все, других вариантов нет. Вы можете объяснить зачем вам это нужно?? Что вы собираетесь делать с 32 (а то и 48, если не использовать кэш) килобайтами очень быстрой памяти програм? Зачем вам ставить 400 МГц DSP и сразу на корню убивать всю его производительность, исполняя код из тормозной SDRAM?? Видимо я что-то в этом мире не понимаю SSL - это специальный "костыль" для загрузки двухядерников, и AFAIK, в одноядерных финах он не поддерживается.
  7. 1 и 2. Смотрите пример из поста uriy. 3. Увы, нет. Только для 54х семейства. Разместите в L1 main() и из нее вызывайте свой UserMain(), расположенный в SDRAM.
  8. Эээ. Простите, а вы и для фина reset формируете с помощью RC-цепочки? Не вижу препятствий.
  9. Умею. Но просто мне больше по вкусу С++ :) Согласен. Я и не утверждал что это нельзя сделать на С. Просто (лично мне) С++ вариант кажется более изящным, что ли. А оверхеда (о чем, собственно, изначально и шла речь) он не вносит.
  10. Нет, я говорю о The Design and Evolution of C++ История развития языка с подробным описанием того, почему основные функции реализованы именно так, а не иначе. Ага. А на чистом "С" внутри функции типа InitSomething() не может быть вызвана InitSomethingElse() и, даже (о ужас!!), malloc??... Ну и отлично! Лично я предпочту написать: complex a, b, c, d; .... a += b - c*d; а не: a = complex_add(a, complex_sub(b, complex_mul(c, d))); ...и получить на выходе тот же самый код. Ну и отлично! Лично я предпочту написать: int DoSomething() { CriticalSection cs; ...bla-bla-bla... if (foo) return 1; ...bla-bla-bla... if (bar) return 2; ...bla-bla-bla... if (baz) return 3; ...bla-bla-bla... return 0; } а не: int DoSomething() { DisableInterrupts(); ...bla-bla-bla... if (foo) { RestoreInterrupts(); return 1; } ...bla-bla-bla... if (bar) { RestoreInterrupts(); return 2; } ...bla-bla-bla... if (baz) { RestoreInterrupts(); return 3; } ...bla-bla-bla... RestoreInterrupts(); return 0; } ...и получить на выходе (извините за самоцитирование :laughing: ) тот же самый код. +100
  11. Согласен. Все упирается в поиск баланса - чем вы готовы пожертвовать ради упрощения процесса разработки. Правда это подразумевает неплохое (как минимум) знание языка. С++ - сложный инструмент. А для эффективного использования любого сложного инструмента необходимо его хорошее знание и понимание.
  12. Нет, почему же? Для своего класса задач вполне неплохое ядрышко. Чему? http://opencores.org/?do=projects&cat=...y&stage=any На любой вкус и цвет. :rolleyes:
  13. У Страуструпа есть весьма интересная книжка - "Дизайн и эволюция языка С++". Не читали? Рекомендую. Одна из ключевых идей книги - "вы не платите за то, что не используете". Не используете виртуальные функции - не будет никакой таблицы. Не инициализируете члены класса - не будет никаких лишних конструкторов (default ctor, инициализирующий члены default значениями, нормальный компилятор успешно соптимизирует).
  14. http://www.analog.com/static/imported-file...evE.10.8.08.pdf Аномалия 05000311. И вообще крайне желательно внимательно изучить данный документ. Все (известные на данный момент :) ) аппаратные "грабли" там расписаны.
  15. По-хорошему, код инициализации внешней шины лучше выполнять глобально. Ну не должен драйвер периферийного устройства знать подробности внешнего подключения данного устройства, не должен. Всегда пожалуйста :)
  16. Ничего модифицировать не надо. Достаточно правильно настроить EBIU (указать на необходимость работы с нужным банком асинхронной памяти в 16-ти битном режиме - биты 4-7 регистра EBIU_AMGCTL)
  17. Да, действительно, прошу прощения за "старье", бес попутал. :( Перепутал с 2106
  18. Как давно и какой ревизии, если не секрет?
  19. А вам точно нужна плата на этом старье? Я бы делал макетку с 214х. По теме. Вы уверены что вам вообще нужно преобразовывать уровни? 90% ЖКИ вполне нормально воспринимают 3В сигналы. Если таки нужно преобразование - 74LVC4245 вам поможет.
  20. Коллега недавно "мучал" кит с 548-м. Вроде громко не ругался - рискну предположить что серьзных проблем не было :laughing: PPI "завелся" без проблем, USB нам не интересно. Выйдет из отпуска (через 2 недели) - узнаю подробней. PS. Anomaly list, надеюсь, читали?
  21. В исходниках libdsp, входящей в состав VisualDSP++. Информация для real FFT, к примеру:
  22. Вы видели "кит" по ссылке HardJoker-а? Хочу я посмотреть на студента с этим "китом" и на его "экзампл" :07:
×
×
  • Создать...