|
lpc2378, кто производит на нем что-либо и какие проблемы с ним? |
|
|
|
Jul 2 2009, 11:06
|

Частый гость
 
Группа: Участник
Сообщений: 128
Регистрация: 6-06-06
Из: Москва
Пользователь №: 17 793

|
Цитата(Nemod @ Jul 2 2009, 11:45)  lpc2378 тоже не особо перспективный т.к. у NXP на подходе почти аналогичные камни на кортексах. Из минусов по отношению к SAM7X серии: Ethernet только RMII, т.е. нельзя использовать дешевый камень типа Realtek, придется использовать (в большинстве случаев) кварцовый генератор IAP функции ИМХО - как бы скрывают от пользователя то что в SAM7 можно написать в RAM функции так как тебе это нужно Больше пока не припомню а в остальном одни плюсы: - Аналогичные камни на M3 появятся не раньше, чем через год. - Если нужен MII - пожалуйста LPC24xx. - IAP функции не "как бы" скрывают, а просто не распространяют. Для увеличения производительности встроенного flash используется патентованный модуль, особенности работы которого компании раскрывать особо нет нужды. Плюс для совместимости кода при изменениях в контроллере flash код программы не изменяется.
--------------------
wbw shahr
|
|
|
|
|
Jul 3 2009, 05:17
|

Дух погибшего транзистора
   
Группа: Свой
Сообщений: 877
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 288

|
Цитата(Nemod @ Jul 2 2009, 11:45)  lpc2378 тоже не особо перспективный т.к. у NXP на подходе почти аналогичные камни на кортексах. Честно говоря более преспективными видятся кристаллы 2387 2388. Скорее всего прям с них и начнем. Вопрос к shashr Будут ли такие же только на кортексе?
Цитата(Nemod @ Jul 2 2009, 11:45)  ОЗУ фрагментирована на сегменты 32кб, Ethernet, USB, 2кб RTC - ну может это кому то покажется плюсом А в чем, собственно, минус? Нельзя выделить массив больше чем 32К? Цитата(Nemod @ Jul 2 2009, 11:45)  ОЗУ фрагментирована на сегменты 32кб, Ethernet, USB, 2кб RTC - ну может это кому то Нельзя записывать по встроенную Flash память побитно (как на sam7), только по 16 байт вроде Побайтно, Вы имеете ввиду. В принципе не использовал, так как там довольно хитрая прцедура, я так понял все равно прееписывается вся страничка. Меня больше волнует проблема написания собственного загрузчика. Я так понял что в nxp это будет посложнее реализовать, так как надо использовать возможности встроенного. Цитата(Nemod @ Jul 2 2009, 11:45)  Ethernet только RMII, т.е. нельзя использовать дешевый камень типа Realtek, придется использовать (в большинстве случаев) кварцовый генератор Для меня это плюс - не надо тратить кучу драгоценных лап. А вот у X он не работает по еррате кстати видел здесь обсуждение про то что кристаллы не со всеми драйверами стабильно работают. Какой PHY посоветуют использующие??
Цитата(Nemod @ Jul 2 2009, 11:45)  Интерфейс к SD карте может работать с DMA только из памяти USB (мне лично также реализация FIFO не понравилась) Интересная подробность. Правда сравнить с X не получится. Цитата(Nemod @ Jul 2 2009, 11:45)  Нет красивых библиотечек как у Atmel с inline процедурами для инициализации (ну это только для тех кому нравится с ними работать) долбанные индусы [censored]
--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
|
|
|
|
|
Jul 3 2009, 06:06
|

Частый гость
 
Группа: Участник
Сообщений: 128
Регистрация: 6-06-06
Из: Москва
Пользователь №: 17 793

|
Цитата(SpiritDance @ Jul 3 2009, 09:17)  Вопрос к shahr Будут ли такие же только на кортексе?
Какой PHY посоветуют использующие??
Будут. LPC1770 уже заявлены в roadmap. http://www.standardics.nxp.com/products/lpc2000/lpc23xx/ На этой страничке чуть ниже указаны мкросхемы PHY, с которыми гарантированно работает LPC23xx/24xx/17xx
--------------------
wbw shahr
|
|
|
|
|
Jul 3 2009, 07:04
|

Знающий
   
Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206

|
Цитата(SpiritDance @ Jul 3 2009, 09:17)  Меня больше волнует проблема написания собственного загрузчика. Я так понял что в nxp это будет посложнее реализовать, так как надо использовать возможности встроенного. Никакой сложности, фактически встроенный IAP имеет фиксированную точку входа для обращения. Не нее мапится функция, и все делается на С Код /* Адрес точки входа функции IAP */ #define IAP_LOCATION 0x7ffffff1
/* Команды для IAP */ enum IAP_COMMAND_CODE { IAP_PREPARE_SECTORS = 50, IAP_COPY_RAM_TO_FLASH = 51, IAP_ERASE_SECTORS = 52, IAP_BLANKCHECK_SECTORS = 53, IAP_READ_PART_ID = 54, IAP_READ_BOOT_CODE_VERSION = 55, IAP_COMPARE = 56, IAP_REINVOKE_ISP = 57, IAP_COMMAND_UNUSED_32 = 0xffffffff /* Это чтобы enum гарантированно занял 32 бита в памяти */ };
/* Статус выполнения команд IAP */ enum IAP_STATUS_CODE { IAP_STATUS_CMD_SUCCESS = 0, ... IAP_STATUS_UNUSED_32 = 0xffffffff /* Это чтобы enum гарантированно занял 32 бита в памяти */ };
/* Структура команд управления и результатов операций для IAP */ typedef struct IAP_COMMAND_S { IAP_COMMAND_CODE code; uint32_t param[4]; } IAP_COMMAND_T;
typedef struct IAP_RESULT_S { IAP_STATUS_CODE code; uint32_t result[2]; } IAP_RESULT_T;
/* Функция IAP написана в thumb режиме. */ /* Чтобы ее вызывать из любого режима работы МК, ее следует объявить вот так */ typedef void (__thumb __interwork *P_IAP_FUNC)(IAP_COMMAND_T *, IAP_RESULT_T *);
Вызов функции IAP: ((P_IAP_FUNC)IAP_LOCATION)(&Cmd, &Result); В остальном читайте документацию на IAP.
--------------------
Пасу котов...
|
|
|
|
|
Jul 3 2009, 09:16
|

Дух погибшего транзистора
   
Группа: Свой
Сообщений: 877
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 288

|
Цитата(shahr @ Jul 3 2009, 10:06)  Вопрос к shashr Простите меня Александр!! И спасибо за ответы. Цитата Никакой сложности Дык я имел ввиду, что это сложнее чем просто написать свой код.
--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
|
|
|
|
|
Jul 3 2009, 14:00
|
Участник

Группа: Участник
Сообщений: 30
Регистрация: 23-08-06
Из: Москва
Пользователь №: 19 754

|
Цитата(SpiritDance @ Jul 3 2009, 09:17)  Честно говоря более преспективными видятся кристаллы 2387 2388. Скорее всего прям с них и начнем.
Вопрос к shashr Будут ли такие же только на кортексе?
А в чем, собственно, минус? Нельзя выделить массив больше чем 32К? Собственно да, почему бы и нет, смотря какой стиль программирования используешь, например обьявить массив для расперделения памяти между пользовательскими процессами в операционках и псевдооперационках  Есть и другой минус - у тебя только одна область (сегмент - сектор, смотря кто какую IDE использует  ) DATA, в которую по умолчанию кидаются все глобальные переменные. Остальные которые не влезли придется распределять средствами компилятора. Что снижает читабельность, портируемость проекта, и возможно источником ошибок. Цитата Побайтно, Вы имеете ввиду. В принципе не использовал, так как там довольно хитрая прцедура, я так понял все равно прееписывается вся страничка. Нет именно побитно, на Sam7 есть возможность например сбросить какой нибудь Флаг на константно залитой структуре на флэшке. В Lpc для такого флага надо выделить соответственно регион в 16 байт 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF. Т.е в Sam7 можно на избранный байт 0x55 записать 0x51 и получить 0x51 (естественно вся остальная часть записываемой странички в 256 байт должна быть идентичной той которой лежит). Цитата Для меня это плюс - не надо тратить кучу драгоценных лап. А вот у X он не работает по еррате Кстати щас юзаю тут sam7x512 никто не знает реанимировали ли у него RMII, в роде как в еррате на него я знаменитого Not Functional не нашел  ? И ещё у него 2 флэш контроллера, можно ли одновременно писать в один контроллер и при этом паралельно исполнялся бы код из другого (прерывания к примеру)??? Цитата кстати видел здесь обсуждение про то что кристаллы не со всеми драйверами стабильно работают.
Какой PHY посоветуют использующие??
Стоимость важна? если нет тогда бери те что рекомендует NXP и ставит на свои киты. А так можешь пошношаться с каким нибудь Lan8700 или более неизвестными китайскими образцами (тут кто то мне кидал ссылку на работающий от резонатора и стоимостью в бакс, но использующих его я ещё не встречал). Цитата Интересная подробность. Правда сравнить с X не получится.
долбанные индусы [censored] Там DMA вообще работает только с USB памятью (из той которая на борту)
|
|
|
|
|
Jul 4 2009, 10:58
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Nemod @ Jul 3 2009, 17:00)  Собственно да, почему бы и нет, смотря какой стиль программирования используешь Так используйте "нормальный"  Цитата , например обьявить массив для расперделения памяти между пользовательскими процессами в операционках и псевдооперационках  А вот это по барабану любому, сколь-нибудь пригодному для использования "распределителю", ибо он, как минимум должен уметь распределять дефрагментированную память при этом совершенно не важно, существует эта фрагментация изначально из-за конструктивных особенностей, либо возникла в процессе. Цитата Остальные которые не влезли придется распределять средствами компилятора. Что снижает читабельность, портируемость проекта, и возможно источником ошибок. Не нужно ничего "распределять средствами" - линкер прекрасно все и сам распределит, если ему указать ВСЕ ресурсы RAM имеющиеся в его распоряжении.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jul 4 2009, 15:58
|
Участник

Группа: Участник
Сообщений: 30
Регистрация: 23-08-06
Из: Москва
Пользователь №: 19 754

|
Цитата(zltigo @ Jul 4 2009, 14:58)  Так используйте "нормальный"  Я и использую нормальный. Цитата А вот это по барабану любому, сколь-нибудь пригодному для использования "распределителю", ибо он, как минимум должен уметь распределять дефрагментированную память при этом совершенно не важно, существует эта фрагментация изначально из-за конструктивных особенностей, либо возникла в процессе. Не нужно ничего "распределять средствами" - линкер прекрасно все и сам распределит, если ему указать ВСЕ ресурсы RAM имеющиеся в его распоряжении. Ну начались теологические беседы  Далее я бы должен спросить какой линкер вы используете, какую модель распределения кучи и какой планировщик задач и т д и т п Но мне не интересен флуд, я лишь проинформировал человека о возможных (далеко не всех) use cases.
|
|
|
|
|
Jul 4 2009, 18:03
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Nemod @ Jul 4 2009, 18:58)  Я и использую нормальный. Судя по поднятым проблемам - не совсем  Цитата Далее я бы должен спросить какой линкер вы используете Отвечаю - любой линкер. Цитата какую модель распределения кучи Отвечаю - ту о работе которой я знаю все, а не те черные ящики, которые для галочки поставляются производителями компиляторов. По большиму счету, это тоже не ммеет ни малейшего значения, ибо, повторюсь, любой из них обязан ументь работать с дефрагментированной памятью, а дыра с адресном пространстве просто частный случай дефрагментации отмечается как занятый блок. Цитата и какой планировщик задач Не имеет ни малейшего значения, если при создании задачи память статически выделяется - нет проблем - линкер воззьмет ее откуда угодно. Если динамически - менеджер памяти. Цитата я лишь проинформировал человека о возможных (далеко не всех) use cases. Увы, это больше похоже на ДЕЗинформацию  . По этой причине и не смог пройти мимо. На самом деле проблемы две - выделене более 32K памяти одним куском и потенциальная возможность потери памяти из-за начально дефрагметированной памяти. Все.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jul 6 2009, 07:07
|
Участник

Группа: Участник
Сообщений: 30
Регистрация: 23-08-06
Из: Москва
Пользователь №: 19 754

|
Цитата Не нужно ничего "распределять средствами" - линкер прекрасно все и сам распределит, если ему указать ВСЕ ресурсы RAM имеющиеся в его распоряжении. Это и называется распределять средствами. Вы распределяете средствами линкера для чего пишите соответсвующий файл типа xcl, icf, xml, sct и т д и т п. Для этого вы вынуждены изучать документацию на линкер при переходе на другой и тратить на это время. Стандартные методы это ANSI C/C++.
|
|
|
|
|
Jul 6 2009, 07:49
|

Дух погибшего транзистора
   
Группа: Свой
Сообщений: 877
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 288

|
Цитата(Nemod @ Jul 6 2009, 11:07)  Это и называется распределять средствами. Вы распределяете средствами линкера для чего пишите соответсвующий файл типа xcl, icf, xml, sct и т д и т п. Для этого вы вынуждены изучать документацию на линкер при переходе на другой и тратить на это время. Стандартные методы это ANSI C/C++. Я Вам благодарен, но Вы пишите какую-то фигню.  ) Читать документацию на линкер и писать свои файлы скриптов приходится в любом случае, тем более что нужен собственный загрузчик. Также как изучать возможности тулчейна по написанию обработчиков прерывания, стартапов, использованию стандартных и своих библиотечных функций, премещения кода в RAM и т.д. Стандарт языка здесь не причем.
--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|