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

 
 
> ARM7 CMSIS?, LPC23xx
SmileGobo
сообщение Apr 25 2011, 11:18
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 26
Регистрация: 7-12-10
Пользователь №: 61 451



Есть такая штука CMSIS - библиотека стандартизировнная, организует средний уровень, как я понимаю. А вроде как находил инфу, что она поддерживает семейство LPC23xx, но больше какой-либо вменяемой инфы я на сайте NXP не могу найти. Может есть альтернативы?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
SmileGobo
сообщение Apr 26 2011, 09:12
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 26
Регистрация: 7-12-10
Пользователь №: 61 451



Я собственно для каждого класса переферии думаю использовать структуру с набором полей соотвествующих адресам регистров, а ее отображать на задефайненный базовый адрес переферии. соотвественно гипотетический интерефейс функций Read и Send uart

Код
bool Read(UartAddrBase addr,byte* data,uint size);
bool Send(UartAddrBase addr,byte*data,uint size);


ну вот гляжу доку на этот mbed оч занималтельно наглядно и красиво +)))) но на классах
Я классы остерегаюсь применять - боюсь производительность потерять, но очень хочется. Хотя описанный мной подход не сильно отличаетсяот ООП подхода.

Go to the top of the page
 
+Quote Post
scifi
сообщение Apr 26 2011, 09:22
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(SmileGobo @ Apr 26 2011, 13:12) *
Я собственно для каждого класса переферии думаю использовать структуру с набором полей соотвествующих адресам регистров, а ее отображать на задефайненный базовый адрес переферии.

Я так понимаю, это вариант реализации драйвера UART с поддержкой нескольих каналов. Можно и так, вполне симпатично. Только ещё нужно обыграть буферы (у каждого канала свой и, возможно, разных размеров). Так что может оказаться, что без номера канала не обойтись.

Цитата(SmileGobo @ Apr 26 2011, 13:12) *
Код
bool Read(UartAddrBase addr,byte* data,uint size);
bool Send(UartAddrBase addr,byte*data,uint size);

Вполне симпатичное API.

Цитата(SmileGobo @ Apr 26 2011, 13:12) *
Я классы остерегаюсь применять - боюсь производительность потерять, но очень хочется. Хотя описанный мной подход не сильно отличаетсяот ООП подхода.

В моём понимании тут ООП и не пахнет. ООП - это виртуальные функции, всякие хитрые наследования и т.д. В этом применении это всё, естественно, не нужно. Можно разве что из соображений единообразия с остальной программой классы прикрутить.
А по поводу производительность волноваться раньше времени очень вредно. Так как проблема скорее всего надуманная, а вот головная боль и потерянное время будут настоящими. Сначала запустите программу. Если будет тормозить, то оптимизируйте. Иначе это пустая трата времени.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 2nd August 2025 - 23:58
Рейтинг@Mail.ru


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