реклама на сайте
подробности

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> lpc2378, кто производит на нем что-либо и какие проблемы с ним?
shahr
сообщение Jul 2 2009, 11:06
Сообщение #16


Частый гость
**

Группа: Участник
Сообщений: 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
Go to the top of the page
 
+Quote Post
SpiritDance
сообщение Jul 3 2009, 05:17
Сообщение #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.
Go to the top of the page
 
+Quote Post
shahr
сообщение Jul 3 2009, 06:06
Сообщение #18


Частый гость
**

Группа: Участник
Сообщений: 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
Go to the top of the page
 
+Quote Post
Andy Mozzhevilov
сообщение Jul 3 2009, 07:04
Сообщение #19


Знающий
****

Группа: Свой
Сообщений: 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.


--------------------
Пасу котов...
Go to the top of the page
 
+Quote Post
SpiritDance
сообщение Jul 3 2009, 09:16
Сообщение #20


Дух погибшего транзистора
****

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



Цитата(shahr @ Jul 3 2009, 10:06) *
Вопрос к shashr


Простите меня Александр!!

И спасибо за ответы.

Цитата
Никакой сложности


Дык я имел ввиду, что это сложнее чем просто написать свой код. smile.gif


--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
Go to the top of the page
 
+Quote Post
Andy Mozzhevilov
сообщение Jul 3 2009, 09:38
Сообщение #21


Знающий
****

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



Цитата(SpiritDance @ Jul 3 2009, 13:16) *
Дык я имел ввиду, что это сложнее чем просто написать свой код. smile.gif

Это проще - низкоуровневые процедуры работы с Flash уже за вас написали, вам осталось только правильно их вызвать.


--------------------
Пасу котов...
Go to the top of the page
 
+Quote Post
Nemod
сообщение Jul 3 2009, 14:00
Сообщение #22


Участник
*

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



Цитата(SpiritDance @ Jul 3 2009, 09:17) *
Честно говоря более преспективными видятся кристаллы 2387 2388. Скорее всего прям с них и начнем.

Вопрос к shashr
Будут ли такие же только на кортексе?



А в чем, собственно, минус? Нельзя выделить массив больше чем 32К?


Собственно да, почему бы и нет, смотря какой стиль программирования используешь, например обьявить массив для расперделения памяти между пользовательскими процессами в операционках и псевдооперационках smile.gif
Есть и другой минус - у тебя только одна область (сегмент - сектор, смотря кто какую IDE используетsmile.gif ) DATA, в которую по умолчанию кидаются все глобальные переменные.
Остальные которые не влезли придется распределять средствами компилятора. Что снижает читабельность, портируемость проекта, и возможно источником ошибок.

Цитата
Побайтно, Вы имеете ввиду. В принципе не использовал, так как там довольно хитрая прцедура, я так понял все равно прееписывается вся страничка.


Нет именно побитно, на Sam7 есть возможность например сбросить какой нибудь Флаг на константно залитой структуре на флэшке. В Lpc для такого флага надо выделить соответственно регион в 16 байт 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF.
Т.е в Sam7 можно на избранный байт 0x55 записать 0x51 и получить 0x51 (естественно вся остальная часть записываемой странички в 256 байт должна быть идентичной той которой лежит).

Цитата
Для меня это плюс - не надо тратить кучу драгоценных лап. А вот у X он не работает по еррате


Кстати щас юзаю тут sam7x512 никто не знает реанимировали ли у него RMII, в роде как в еррате на него я знаменитого Not Functional не нашел smile.gif?
И ещё у него 2 флэш контроллера, можно ли одновременно писать в один контроллер и при этом паралельно исполнялся бы код из другого (прерывания к примеру)???

Цитата
кстати видел здесь обсуждение про то что кристаллы не со всеми драйверами стабильно работают.

Какой PHY посоветуют использующие??


Стоимость важна? если нет тогда бери те что рекомендует NXP и ставит на свои киты.
А так можешь пошношаться с каким нибудь Lan8700 или более неизвестными китайскими образцами (тут кто то мне кидал ссылку на работающий от резонатора и стоимостью в бакс, но использующих его я ещё не встречал).

Цитата
Интересная подробность. Правда сравнить с X не получится.


долбанные индусы [censored]


Там DMA вообще работает только с USB памятью (из той которая на борту)
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 4 2009, 10:58
Сообщение #23


Гуру
******

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



Цитата(Nemod @ Jul 3 2009, 17:00) *
Собственно да, почему бы и нет, смотря какой стиль программирования используешь

Так используйте "нормальный" smile.gif
Цитата
, например обьявить массив для расперделения памяти между пользовательскими процессами в операционках и псевдооперационках smile.gif

А вот это по барабану любому, сколь-нибудь пригодному для использования "распределителю", ибо он, как минимум должен уметь распределять дефрагментированную память при этом совершенно не важно, существует эта фрагментация изначально из-за конструктивных особенностей, либо возникла в процессе.
Цитата
Остальные которые не влезли придется распределять средствами компилятора. Что снижает читабельность, портируемость проекта, и возможно источником ошибок.

Не нужно ничего "распределять средствами" - линкер прекрасно все и сам распределит, если ему указать ВСЕ ресурсы RAM имеющиеся в его распоряжении.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Nemod
сообщение Jul 4 2009, 15:58
Сообщение #24


Участник
*

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



Цитата(zltigo @ Jul 4 2009, 14:58) *
Так используйте "нормальный" smile.gif

Я и использую нормальный.
Цитата
А вот это по барабану любому, сколь-нибудь пригодному для использования "распределителю", ибо он, как минимум должен уметь распределять дефрагментированную память при этом совершенно не важно, существует эта фрагментация изначально из-за конструктивных особенностей, либо возникла в процессе.
Не нужно ничего "распределять средствами" - линкер прекрасно все и сам распределит, если ему указать ВСЕ ресурсы RAM имеющиеся в его распоряжении.

Ну начались теологические беседы smile.gif
Далее я бы должен спросить какой линкер вы используете, какую модель распределения кучи и какой планировщик задач и т д и т п
Но мне не интересен флуд, я лишь проинформировал человека о возможных (далеко не всех) use cases.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 4 2009, 18:03
Сообщение #25


Гуру
******

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



Цитата(Nemod @ Jul 4 2009, 18:58) *
Я и использую нормальный.

Судя по поднятым проблемам - не совсем sad.gif
Цитата
Далее я бы должен спросить какой линкер вы используете

Отвечаю - любой линкер.
Цитата
какую модель распределения кучи

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

Не имеет ни малейшего значения, если при создании задачи память статически выделяется - нет проблем - линкер воззьмет ее откуда угодно. Если динамически - менеджер памяти.
Цитата
я лишь проинформировал человека о возможных (далеко не всех) use cases.

Увы, это больше похоже на ДЕЗинформацию sad.gif. По этой причине и не смог пройти мимо.

На самом деле проблемы две - выделене более 32K памяти одним куском и потенциальная возможность потери памяти из-за начально дефрагметированной памяти. Все.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Nemod
сообщение Jul 6 2009, 07:07
Сообщение #26


Участник
*

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



Цитата
Не нужно ничего "распределять средствами" - линкер прекрасно все и сам распределит, если ему указать ВСЕ ресурсы RAM имеющиеся в его распоряжении.

Это и называется распределять средствами. Вы распределяете средствами линкера для чего пишите соответсвующий файл типа xcl, icf, xml, sct и т д и т п. Для этого вы вынуждены изучать документацию на линкер при переходе на другой и тратить на это время.
Стандартные методы это ANSI C/C++.
Go to the top of the page
 
+Quote Post
SpiritDance
сообщение Jul 6 2009, 07:49
Сообщение #27


Дух погибшего транзистора
****

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



Цитата(Nemod @ Jul 6 2009, 11:07) *
Это и называется распределять средствами. Вы распределяете средствами линкера для чего пишите соответсвующий файл типа xcl, icf, xml, sct и т д и т п. Для этого вы вынуждены изучать документацию на линкер при переходе на другой и тратить на это время.
Стандартные методы это ANSI C/C++.

Я Вам благодарен, но Вы пишите какую-то фигню.smile.gif) Читать документацию на линкер и писать свои файлы скриптов приходится в любом случае, тем более что нужен собственный загрузчик. Также как изучать возможности тулчейна по написанию обработчиков прерывания, стартапов, использованию стандартных и своих библиотечных функций, премещения кода в RAM и т.д. Стандарт языка здесь не причем.


--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
Go to the top of the page
 
+Quote Post

2 страниц V  < 1 2
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 04:01
Рейтинг@Mail.ru


Страница сгенерированна за 0.01494 секунд с 7
ELECTRONIX ©2004-2016