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

 
 
13 страниц V  « < 9 10 11 12 13 >  
Reply to this topicStart new topic
> Как писать на С++ при создание приложений под ARM, Примеры
brag
сообщение Jun 19 2012, 22:38
Сообщение #151


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 2-12-06
Из: Kyiv, Ukraine
Пользователь №: 23 046



PoР - это что такое, просветите плиз..гугл выдает совсем не то sm.gif

про "кишащий багами софт" я так немного утрируя написал, но,блин, я на эти крайне редкие баги попадаю не совсем крайне редко sm.gif)

про драйвер - да, из личного опыта. хоть то була не Linux, a FreeBSD, был LPT-порт и нужно его было запахать в режиме DMA со спецефической приблудой на другом конце порта и спецефическим алгоритмом(часть на уровне драйвера, часть уже на софте) - так помнится я тогда запарился на 1.5 месяца точно, хотя такая же задача на МК делается за пару-тройку дней.
под винду еще сложнее(интерфейс у них сложный), пишу иногда дрова под свои приблуды на USB. мож из за привычки к голому железу, хз.. но тут уж выбора нету

про время освоения: возьмем простую задачу - сделать какой-нибудь умный терморегулятор,многоканальный пусть будет(ну или там какой-то источник питания управляемый умный, что кому по вкусу) с маленьким дисплейчиком и несколькими кнопочками. Задача чисто на алгоритмы и вышку, остальное дело одного дня если с нуля. Ну во первых как-то рука не поднимется пихать тяжеловес на такую финтиклюшечку, а во вторых запахать тайм-критические алгоритмы на ос с неизвестными внутренностями будет однозначно дольше. ну и сложная 4-слойная плата + дубовые силовые ключи в ТО-247 как-то не очень клеится sm.gif
Go to the top of the page
 
+Quote Post
AVR
сообщение Jun 19 2012, 22:52
Сообщение #152


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Цитата(brag @ Jun 20 2012, 02:38) *
PoР - это что такое, просветите плиз..гугл выдает совсем не то sm.gif

тортик sm.gif
у меня на столе лежит две платы где память DDR2 на проц именно таким способом напаяна и никаких проблем с разводкой разумеется

Цитата
про драйвер - да, из личного опыта. хоть то була не Linux, a FreeBSD

ааа... BSD, всё ясно, у Linux-а то более простые драйверы в плане написания, причем для упрощения и унификации нередко могут ядро перепахать от и до, да и литературы больше - вот у меня в подписи - бесплатные обучающие слайды sm.gif там вообще по всем подсистемам, например PCI или USB - разжевано досконально, а иди попробуй на голом железе USB-host драйвера написать или адаптировать демку от разработчиков - реально тяжелее

у windows конечно вообще жуть дрова писать - приходилось знакомиться с сим процессом

Цитата
возьмем простую задачу
не, ну такие простые задачи мы не рассматриваем, там действительно проще самому напахать на голом железе


--------------------
Go to the top of the page
 
+Quote Post
brag
сообщение Jun 20 2012, 01:14
Сообщение #153


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 2-12-06
Из: Kyiv, Ukraine
Пользователь №: 23 046



та все так, согласен.. а простые задачи рассматриваем тк там тоже уместен C++ и много чего другого wink.gif
Go to the top of the page
 
+Quote Post
sasamy
сообщение Jun 20 2012, 05:48
Сообщение #154


Знающий
****

Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858



Цитата(brag @ Jun 20 2012, 02:38) *
про время освоения: возьмем простую задачу - сделать какой-нибудь умный терморегулятор,многоканальный пусть будет(ну или там какой-то источник питания управляемый умный, что кому по вкусу) с маленьким дисплейчиком и несколькими кнопочками.


проще купить готовые китайские - намного дешевле и быстрей будет, а то пока вы С++ выучите ждать не охота sm.gif
Go to the top of the page
 
+Quote Post
KRS
сообщение Jun 20 2012, 06:38
Сообщение #155


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



AVR,
а вам встречались industrial варианты PoP?
Go to the top of the page
 
+Quote Post
dxp
сообщение Jun 20 2012, 06:40
Сообщение #156


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



QUOTE (AVR @ Jun 20 2012, 03:34) *
не совсем понял, это скорее намек или вопрос? я полагаю что энергопотребление при работе Linux и Qt будет несколько выше

Это вопрос. Неспешно оцениваем возможность применения толстой платформы для закрытия таких мест, как GUI (на Qt поприятнее это делать, нежели голом железе), работа с флешь накопителями и прочее. Но вопрос энергопотребления стоит довольно жестко, поэтому вопрос не праздный.

QUOTE (AVR @ Jun 20 2012, 03:34) *
я сравнивал официальные отчеты от Ti для OMAP3 - при максимальной нагрузке - разницы между потреблением с ОС и без нее - не нашел, при отсутствии нагрузки - да, у Linux было процентов на 15 выше, не более

Интересно было бы узнать в мВт. sm.gif

QUOTE (AVR @ Jun 20 2012, 03:34) *
да и сама ОС Linux жрет скорее оперативку, чем процессор - что приятно

Это радует.

QUOTE (AVR @ Jun 20 2012, 03:34) *
P.S.
понимаю какое отвращение могут вызвать мои слова у профессионалов, пишущих на голом железе для экономии энергии, но мне-то хорошо - ценой некоторого потребления и стоимость DDR2 - получаю платформу для легкой и быстрой разработки

Никакого отвращения - все средства хороши к месту. Ресурсы и дальше будут расти и дешеветь, а время, затрачиваемое на разработку и поддержку, наоборот уменьшаться (количество задач растёт) и дорожать. Целесообразность рулит, а рассуждения "тру (Ъ) - не тру" - досужее.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
brag
сообщение Jun 20 2012, 09:44
Сообщение #157


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 2-12-06
Из: Kyiv, Ukraine
Пользователь №: 23 046



Цитата
Интересно было бы узнать в мВт.

при выполнении реального приложения, а не тупого висения голой ОС в спячке.

Цитата
Это радует.

любая ос такой должна быть sm.gif

Цитата
проще купить готовые китайские - намного дешевле и быстрей будет, а то пока вы С++ выучите ждать не охота

если возможность есть, то однозначно проще.
Go to the top of the page
 
+Quote Post
AVR
сообщение Jun 20 2012, 10:53
Сообщение #158


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Цитата(dxp @ Jun 20 2012, 10:40) *
Это вопрос. Неспешно оцениваем возможность применения толстой платформы для закрытия таких мест, как GUI (на Qt поприятнее это делать, нежели голом железе), работа с флешь накопителями и прочее. Но вопрос энергопотребления стоит довольно жестко, поэтому вопрос не праздный.

Интересно было бы узнать в мВт. sm.gif

по этой ссылке есть оценки потребления для AM335x Cortex-A8) подробно в мВт - я так понимаю что AM335X родственник OMAP3 но без DSP ядра, но зато с 3D, типа Freescale iMX (да, кстати, как OpenGL-то без полновесной ОС юзать? sm.gif )
+ есть платка для оценки этого проца - это опенсорсный проект (так что тут никакой рекламы), есть исходники чертежа платы и всего прочего

No OS : DDR Access = 455.31 mWt
No OS : Static Image Display = 419.36 mWt
Linux PSP : No application running after boot = 486.51 mWt

т.е. ценой 30-65 мВт мы получаем полновесную ОСь, которая хоть и полновесная, но не грузит процессор и позволяет уходить в режим глубокого сна

дабы не сочли рекламой Ti, могу сказать что эти оценки можно смело применить для многих других ARM различных происзводителей и к Atmel и прочим

равно как и обучающие материалы у меня в подписи - распространяются под лицензией Creative Commons Attribution-ShareAlike 3.0, т.е. свободные бесплатные материалы, где все доходчиво и досконально разжевано

ЗЫ
пиарю за идею, просто нравится ОС Linux sm.gif


--------------------
Go to the top of the page
 
+Quote Post
nicks80
сообщение Jun 20 2012, 11:30
Сообщение #159


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

Группа: Участник
Сообщений: 97
Регистрация: 18-10-07
Пользователь №: 31 485



Цитата(andrewlekar @ Jun 22 2011, 08:57) *
Расказ про ООП конечно увлекательный, но стоит учитывать, что как только вы вылезете за область применения, описанную dxp (наследование от интерфейса и поточная обработка), то тут же вся система станет крайне неустойчивой. Конкретно: множественное наследование сразу ставит крест на проекте, перегрузка функций и операторов приводит к очень хитрым багам, развесистая иерархия наследования приводит к хрупкости системы - очень высокая связность элементов... Использование паттернов не имеет отношения к С++, но в микроконтроллерах не имеет особого смысла. Куда можно в AVR засунуть синглтон?! Использование шаблонов С++ сильно тормозит компиляцию и плохо контролируется по расходу памяти.
В общем, это неправда, что С++ оправдан везде, где оправдан С.


Точно и сразу зарплата этого программиста вырастает ).
Задача всегда такая. Как сделать быстро, качественно, надежно, поддерживаемо и дешево. И ОПП впишется наверно в единичные случаи без MMU.
Go to the top of the page
 
+Quote Post
Axel
сообщение Jun 20 2012, 11:53
Сообщение #160


Местный
***

Группа: Свой
Сообщений: 480
Регистрация: 21-11-04
Пользователь №: 1 188



Цитата(AVR @ Jun 20 2012, 13:53) *
No OS : DDR Access = 455.31 mWt
No OS : Static Image Display = 419.36 mWt
Linux PSP : No application running after boot = 486.51 mWt

А если "No OS" и "No DDR" то сразу на 200mWt меньше...
Go to the top of the page
 
+Quote Post
sasamy
сообщение Jun 20 2012, 13:10
Сообщение #161


Знающий
****

Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858



Цитата(Axel @ Jun 20 2012, 15:53) *
А если "No OS" и "No DDR" то сразу на 200mWt меньше...


То что реализовано даже в базовом образе того же андроида вы и ваша фирма не реализуете за всю жизнь - так что милливатты хоть и играют роль но стоят где-то на последнем месте в современном мире sm.gif пусть чипмейкеры заботятся о милливаттах.

Сообщение отредактировал sasamy - Jun 20 2012, 13:26
Go to the top of the page
 
+Quote Post
AVR
сообщение Jun 20 2012, 15:28
Сообщение #162


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Цитата(Axel @ Jun 20 2012, 15:53) *
А если "No OS" и "No DDR" то сразу на 200mWt меньше...
откуда вязалсь цифра на 200 mWt меньше? это есть по моей ссылке или это Ваши измерения?


--------------------
Go to the top of the page
 
+Quote Post
Axel
сообщение Jun 21 2012, 02:25
Сообщение #163


Местный
***

Группа: Свой
Сообщений: 480
Регистрация: 21-11-04
Пользователь №: 1 188



Цитата(AVR @ Jun 20 2012, 18:28) *
откуда вязалсь цифра на 200 mWt меньше? это есть по моей ссылке или это Ваши измерения?

Из datasheet-ов на DDR чипы и собственных измерений - сопоставлял потребление EVB, на которых DDR память была и своих устройств, где ее не было.
Go to the top of the page
 
+Quote Post
brag
сообщение Jun 21 2012, 09:47
Сообщение #164


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 2-12-06
Из: Kyiv, Ukraine
Пользователь №: 23 046



Цитата
И ОПП впишется наверно в единичные случаи без MMU.

идет на ура даже на avr. после некоторого времени на освоение и наработки библиотек процесс проектирования стал проще, быстрее и интереснее. скорость добавления новых фич возрасла раз в 3-10. Еще руки не дошли ось переписать на c++, тогда еще вкуснее станет
Go to the top of the page
 
+Quote Post
brag
сообщение Jul 5 2012, 00:34
Сообщение #165


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 2-12-06
Из: Kyiv, Ukraine
Пользователь №: 23 046



Как бы красиво и безопасно реализовать такую штуку: обьект должен иметь возможность независимо добавлятся/удалятся в несколько связанных списков. И чтобы можно было к нему обратится через эти списки.
Типа так (прямое обращение к приватам с целью сокращения строк кода, не обращайте внимания):
CODE
class CdllNode{
public:
void Enqueue(CdllNode *node);
...
private:
CdllNode *next;
CdllNode *prev;
};

class SomeClass{
public:
virtual void someMethod();
private:
CdllNode n1;
CdllNode n2;
CdllNode n3;
};

CdllNode queue1;
CdllNode queue2;
CdllNode queue3;
SomeClass someobj;

void f(){
queue1.Enqueue(&someobj.n1);
queue2.Enqueue(&someobj.n2);
queue3.Enqueue(&someobj.n3);
}

Адресоватся в итоге нужно как-то так просто
Код
void f1(){
    SomeClass *body=queue2.next;
    body->someMethod();
}

Пока работает на offsetof(), но это не безопасно и вообще запрещено стандартом для nonPOD-классов (хотя именно такая реализация на данный момент работает).
Добавлять в класс CdllNode указатель на обьект SomeClass'а не конает - embedded,мало памяти,все дела.. так же, как и использование множественного виртуального наследования. тоесть должно быть максимум оптимизировано по быстродействию и обьему оперативной памяти.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 17:08
Рейтинг@Mail.ru


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