Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: lpc4337
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
sergey sva
Есть идея, не знаю получиться микроконтроллер lpc4337 двух ядерный, посмотрел по документации есть контроллер внешней памяти. Мысль такая запустить на одном ядре mo ethernet tcpip, на другом m4 вычисление координат для небольшого станка. А взамен sram подключить fpga. В связи с тем что не знаком с этим процессором есть несколько вопросов. Плис есть в налличии spartan3e хотелось бы использовать ее двухпортовую память в качестве sram размеров 4кб, какие могут быть сложности как это сделать? С двухядерными микроконтроллерами тоже дела пока не имел не знаю как там разделяются потоки или в программе нужно как то указывать что данный код работает на этом ядре или на другом, как сделать что бы на одном ядре работал tcpip на другом код расчетов? Спасибо за помощь.
skripach
Цитата
Мысль такая запустить на одном ядре mo ethernet tcpip, на другом m4 вычисление координат для небольшого станка.

Нет припятствий сделать такое.
Цитата
С двухядерными микроконтроллерами тоже дела пока не имел не знаю как там разделяются потоки или в программе нужно как то указывать что данный код работает на этом ядре или на другом, как сделать что бы на одном ядре работал tcpip на другом код расчетов?

Пишется две отдельные программы для каждого ядра своя.
Про плис что-то не понял...
scifi
Цитата(sergey sva @ Dec 20 2013, 10:35) *
С двухядерными микроконтроллерами тоже дела пока не имел не знаю как там разделяются потоки или в программе нужно как то указывать что данный код работает на этом ядре или на другом, как сделать что бы на одном ядре работал tcpip на другом код расчетов? Спасибо за помощь.

Два процессора - две прошивки. Сначала запускается M4 и исполняет свою прошивку, потом он даёт команду на запуск M0, тот исполняет свою прошивку. Ну и спланировать разделение ресурсов (области памяти, периферия и т.д.), чтобы они друг другу не мешали. Пример реализации межпроцессорного взаимодействия у них приведён в мануале.
sergey sva
Цитата
Пишется две отдельные программы для каждого ядра своя.
Про плис что-то не понял...

Для каждого ядра своя область памяти, нужно указать в скрипте линкера адреса правильно?
Одновременно работать оба ядра не могут?, желательно что бы одно ядро только tcpip, данные которые пришли записать в структуру потом обратно в комп.
А другое занимается вычислениями, как доходит до конца кода, обновляет данные из структуры которое получили по tcp и заполняет структуру для отправки.
Цитата
Про плис что-то не понял...

Вместо внешней памяти Sram подключить к микроконтроллеру fpaga в которой есть 4кб двухпортовой памяти и использовать ее, взамен sram.
Дело в том что в плис логика которую нужно выполнять быстро и одновременно, результаты она пишет в память с одного порта а с другого нужно прицепить микроконтроллер что бы можно было получить доступ к этим данным в микроконтроллере как к обычной внешней памяти.
skripach
Цитата(sergey sva @ Dec 20 2013, 10:12) *
Для каждого ядра своя область памяти, нужно указать в скрипте линкера адреса правильно?

Для флеши да, причем правильно для каждого ядра свой банк памяти. Озу может быть общее для двух ядер.
Цитата(sergey sva @ Dec 20 2013, 10:12) *
Одновременно работать оба ядра не могут?

Могут, иаче какой смысл в двух ядрах.
Подключить плис вместо памяти проблемы не вижу.
sergey sva
Цитата
Для флеши да, причем правильно для каждого ядра свой банк памяти. Озу может быть общее для двух ядер.

Нужно переключать в процессе, или в стартап файле какой банк с каким ядром работает?
Цитата
Подключить плис вместо памяти проблемы не вижу.

Нужно всего 4096 байт подключить: 32 бита данных и 10бит адреса. Ножек у lpc4337 не очень много, как подключить плис к микроконтроллеру в качестве sram, что бы меньше использовать ног, еще нужен ethernet и пару ног к светодиодам.. боюсь не хватит в дальнейшем.
scifi
Цитата(sergey sva @ Dec 20 2013, 11:12) *
желательно что бы одно ядро только tcpip, данные которые пришли записать в структуру потом обратно в комп.

Я бы усомнился в целесообразности такого разбиения. Ваша задача вообще может быть решена одним ядром? Если да, то не заморачивайтесь со вторым, пусть простаивает. Потому что второе ядро - это повышение сложности за счёт межпроцессорного взаимодействия, ну и вообще проектирование всего этого хозяйства.
sergey sva
Можно но если есть ядро.. А в чем сложность? синхронизации данных или еще нужно следить за какими то ресурсами процессора?
jcxz
Межядерная синхронизация всяко сложнее межзадачной (в одном ядре).
К тому-же ведомое ядро надо проинитить, и всё ему настроить таблицу прерываний и т.п. Это лишние телодвижения.
Если для задачи хватает одного ядра - зачем усложнять?
Второе ядро имеет смысл задействовать только если невозможно реализовать на одном, или задействование 2-го ядра даёт какие-то преференции... имхо

PS: С LPC4337 не работал, но работал с OMAP. Там-то однозначно межядерное разделение имело смысл sm.gif
sergey sva
Хорошо буду придерживаться такой стратегии пробую запустить все на одном, если не получиться то код можно будет разнести на два в дальнейшем. Остался один вопрос как подключить плис вместо sram как можно меньше используя ножек, на что стоит обратить внимание при таком подключении, не разу так не подключал может какие дополнительные сигналы нужны, длины дорожек еще что?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.