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

 
 
> Нужны ли вложенные прерывания?
Altemir
сообщение Jul 31 2009, 21:45
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 249
Регистрация: 2-05-06
Из: Россия, Поволжье
Пользователь №: 16 686



Уважаемые, подскажите, пожалуйста.

Проц LPC2214. Есть задача по прерыванию таймера сразу же производить чтение по I2C с девайса. Алгоритм работы по I2C сделан тоже на прерываниях. Необходима синхронность чтения данных с таймером. Следует ли в данном случае использовать вложенные прерывания или можно каким-то образом обойти? Переделать работу с I2C без прерываний? Объём записывемых/считываемых данных из девайса не более 20Байт.
Go to the top of the page
 
+Quote Post
3 страниц V   1 2 3 >  
Start new topic
Ответов (1 - 36)
aaarrr
сообщение Jul 31 2009, 22:05
Сообщение #2


Гуру
******

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



ИМХО, шина I2C вообще не предполагает работу с жесткими привязками ко времени.

И зачем вложенные прерывания? Нельзя просто запустить передачу по прерыванию от таймера и продолжить на прерываниях I2C?
Go to the top of the page
 
+Quote Post
Altemir
сообщение Jul 31 2009, 22:27
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 249
Регистрация: 2-05-06
Из: Россия, Поволжье
Пользователь №: 16 686



Цитата(aaarrr @ Aug 1 2009, 02:05) *
ИМХО, шина I2C вообще не предполагает работу с жесткими привязками ко времени.

Шина - да, а вот получаемые/принимаемые данные очень сильно привязаны

Цитата
Нельзя просто запустить передачу по прерыванию от таймера и продолжить на прерываниях I2C?

Как вариант - можно. Тогда в моём случае надо будет передать алгоритму старта работы с I2C указатель на функцию, которую следует вызвать по окончании цикла обмена с девайсом. Подумаю, может, так и сделаю.
Go to the top of the page
 
+Quote Post
defunct
сообщение Jul 31 2009, 23:55
Сообщение #4


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(Altemir @ Aug 1 2009, 01:27) *
Шина - да, а вот получаемые/принимаемые данные очень сильно привязаны

Так отвяжите. Банально добавьте в I2C пакет метку времени.
Go to the top of the page
 
+Quote Post
Altemir
сообщение Aug 1 2009, 09:36
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 249
Регистрация: 2-05-06
Из: Россия, Поволжье
Пользователь №: 16 686



Цитата(defunct @ Aug 1 2009, 03:55) *
Так отвяжите. Банально добавьте в I2C пакет метку времени.

Собственно, эту метку времени и нужно считать из девайса для синхронизации времени на мастере с точностью до 2-5мс
Go to the top of the page
 
+Quote Post
IgorMarx
сообщение Aug 1 2009, 12:44
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 61
Регистрация: 5-10-05
Из: Зеленоград
Пользователь №: 9 268



Ответ таков: если вы не планируете выйти из обработчика таймера, пока не закончите обмен по шине I2C, то вам действительно будут нужны вложенные прерывания, но как раз не для I2C, а для остальной периферии. Что касается I2C, то я бы прерывания делать не стал без явной необходимости - архитектурно программный модуль I2C получается проще, надёжнее и портабельнее (т.е. этот модуль можно удобно использовать для других проектов), когда регистры опрашиваются в цикле. Но это при условии, что ядру в этот момент совсем делать нечего.
Go to the top of the page
 
+Quote Post
smac
сообщение Aug 1 2009, 14:38
Сообщение #7


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

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



Цитата(Altemir @ Aug 1 2009, 13:36) *
Собственно, эту метку времени и нужно считать из девайса для синхронизации времени на мастере с точностью до 2-5мс

Я бы применил следующий ход
0. Организовал бы системные часы на каком-либо таймере с тиком 200 - 500 мкс.
1. При приеме пакета I2C брал бы временнУю метку этого события Ti2c.
2. При входе в процедуру синхронизации также брал бы временнУю метку Tsynchro.
3. Имея метки Ti2c и Tsynchro, а также время time, пришедшее в пакете I2C подстраивал бы часы (local_time) так: local_time = time + (Tsyncro - Ti2c). Естественно предполагается, что синхронизация локальных часов происходить после приема данных о времени по i2c.
Go to the top of the page
 
+Quote Post
Altemir
сообщение Aug 1 2009, 15:45
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 249
Регистрация: 2-05-06
Из: Россия, Поволжье
Пользователь №: 16 686



Цитата(smac @ Aug 1 2009, 18:38) *
Я бы применил следующий ход...

Да, тоже думал об этом. Как ближайший вариант реализации учту. Спасибо.
Go to the top of the page
 
+Quote Post
defunct
сообщение Aug 1 2009, 23:25
Сообщение #9


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(Altemir @ Aug 1 2009, 18:45) *
Да, тоже думал об этом. Как ближайший вариант реализации учту. Спасибо.

Почитайте про RTCP. реализовывать весь нет смысла конечно, но вот оценка inter-arrival jitter'a и transit delay'я оттуда вам пригодится.
Go to the top of the page
 
+Quote Post
singlskv
сообщение Aug 1 2009, 23:56
Сообщение #10


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(IgorMarx @ Aug 1 2009, 16:44) *
Что касается I2C, то я бы прерывания делать не стал без явной необходимости - архитектурно программный модуль I2C получается проще, надёжнее и портабельнее (т.е. этот модуль можно удобно использовать для других проектов), когда регистры опрашиваются в цикле. Но это при условии, что ядру в этот момент совсем делать нечего.
Ерунду Вы пишете полную...
Если Вашему процу делать нечего настолько что Вы готовы сидеть в цикле и опрашивать - Вы выбрали не тот проц...
I2C это самый типичный пример для interrupt driven transfer...
Go to the top of the page
 
+Quote Post
beer_warrior
сообщение Aug 2 2009, 07:01
Сообщение #11


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

Группа: Свой
Сообщений: 1 065
Регистрация: 8-10-05
Из: Kiev, UA
Пользователь №: 9 380



А зачем такиие сложности с вложенным прерыванем?
Таймерное прерывание делает свое грязное дело - инкрементирует/декрементирует счетчики, а после этого выставляет флажки для функций вызываемых по этому прерыванию.
В главном цикле проверяется эти флажки, и по их наличию запускается I2C и/или любая другая interrupt driven передача.
Таким образом таймерное прерыване удлинняется на пару тройку машиинных команд, а не на ожданиие окончание цикла обмена по шине.

Вот здесь про такой подод подробнее http://tldp.org/LDP/lkmpg/2.4/html/x1210.html


--------------------
Вони шукають те, чого нема,
Щоб довести, що його не існує.
Go to the top of the page
 
+Quote Post
Step_ARM
сообщение Aug 3 2009, 06:02
Сообщение #12


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

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



Цитата(IgorMarx @ Aug 1 2009, 16:44) *
Ответ таков: если вы не планируете выйти из обработчика таймера, пока не закончите обмен по шине I2C, то вам действительно будут нужны вложенные прерывания, но как раз не для I2C, а для остальной периферии. Что касается I2C, то я бы прерывания делать не стал без явной необходимости - архитектурно программный модуль I2C получается проще, надёжнее и портабельнее (т.е. этот модуль можно удобно использовать для других проектов), когда регистры опрашиваются в цикле. Но это при условии, что ядру в этот момент совсем делать нечего.

Это как это не планируете выйти из обработчика прерывания????
Зашел в прерывание таймера и сидишь там пока И2С ковыряет там байтики?
Странно как-то.


Цитата(Altemir @ Aug 1 2009, 01:45) *
Уважаемые, подскажите, пожалуйста.

Проц LPC2214. Есть задача по прерыванию таймера сразу же производить чтение по I2C с девайса. Алгоритм работы по I2C сделан тоже на прерываниях. Необходима синхронность чтения данных с таймером. Следует ли в данном случае использовать вложенные прерывания или можно каким-то образом обойти? Переделать работу с I2C без прерываний? Объём записывемых/считываемых данных из девайса не более 20Байт.

Чего-то как-то туманно :-)
Нельзя ли поподробнее?
Go to the top of the page
 
+Quote Post
Altemir
сообщение Aug 3 2009, 11:00
Сообщение #13


Местный
***

Группа: Свой
Сообщений: 249
Регистрация: 2-05-06
Из: Россия, Поволжье
Пользователь №: 16 686



Всем спасибо за предложения. Всё сделал, проверил, работает как надо.
Необходимо было с внешнего девайса получать периодически синхронизацию времени (сек и мс) с точностью +-2..5мс.
Сделал просто: по прерыванию 1мс таймера инкрементировал локальный счётчик мс, при равенстве его 1000, сбрасывал и вызывал процедуру чтения/синхронизации времени и коррекции этого мс счётчика. Процедуру чтения по I2C из внешнего девайса сделал по поллингу I2CONSET_SI. Ещё одна особенность - синхронизация времени должна была проходить ВНУТРИ прерывания, чтобы ни одна из процедур основного кода не получила расходящиеся значения времени. В готовый код потребовалось добавить всего 8 строчек кода.
Go to the top of the page
 
+Quote Post
Troll
сообщение Aug 3 2009, 12:57
Сообщение #14


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

Группа: Участник
Сообщений: 104
Регистрация: 30-06-05
Из: С-Петербург
Пользователь №: 6 406



Цитата(Altemir @ Aug 3 2009, 15:00) *
Ещё одна особенность - синхронизация времени должна была проходить ВНУТРИ прерывания, чтобы ни одна из процедур основного кода не получила расходящиеся значения времени. В готовый код потребовалось добавить всего 8 строчек кода.

Хрень какая-то...
Может объясните, что Вы хотели сказать этой фразой.


--------------------
Hemos Pasado
Go to the top of the page
 
+Quote Post
Step_ARM
сообщение Aug 4 2009, 03:54
Сообщение #15


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

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



Цитата(Troll @ Aug 3 2009, 16:57) *
Хрень какая-то...
Может объясните, что Вы хотели сказать этой фразой.

Да темнит что-то человече... Сам себя перемудрил.
Go to the top of the page
 
+Quote Post
IgorMarx
сообщение Aug 7 2009, 17:03
Сообщение #16


Участник
*

Группа: Участник
Сообщений: 61
Регистрация: 5-10-05
Из: Зеленоград
Пользователь №: 9 268



Цитата(singlskv @ Aug 2 2009, 03:56) *
Ерунду Вы пишете полную...
Если Вашему процу делать нечего настолько что Вы готовы сидеть в цикле и опрашивать - Вы выбрали не тот проц...
I2C это самый типичный пример для interrupt driven transfer...


Я 100% знал, что кто-нибудь придерётся и написал - "без явной необходимости".

Цитата(Altemir @ Aug 3 2009, 15:00) *
синхронизация времени должна была проходить ВНУТРИ прерывания, чтобы ни одна из процедур основного кода не получила расходящиеся значения времени.


А теперь вопрос - чем ещё заниматься в прерывании кроме как ждать битов статуса, если вот так вот задача поставлена, а? Повторяю - для остальной периферии возможно потребуются вложенные прерывания.

singlskv, читайте внимательнее. Мы тут знаниями делимся, а не соревнуемся кто умнее. Не нравится совет - придумайте более дельный.

Сообщение отредактировал IgorMarx - Aug 7 2009, 17:12
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 7 2009, 18:28
Сообщение #17


Гуру
******

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



Цитата(singlskv @ Aug 2 2009, 02:56) *
Ерунду Вы пишете полную...
....
I2C это самый типичный пример для interrupt driven transfer...

Поддерживаю.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Aug 7 2009, 19:19
Сообщение #18


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(singlskv @ Aug 2 2009, 02:56) *
Ерунду Вы пишете полную...
Если Вашему процу делать нечего настолько что Вы готовы сидеть в цикле и опрашивать - Вы выбрали не тот проц...
I2C это самый типичный пример для interrupt driven transfer...

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

biggrin.gif

Ну не стоит обобщать, в самом то деле. В среднестатистическом устройстве (среди моих - 100%) обращение по I2C (запись в EEPROM) связана с определенными действиями по интерфейсу пользователя, сменой состояний основного процесса, а все, что нужно для функционирования прибора, запихано в свои прерывания, вовсе необязательно вложенные.

Кстати, по вложенности прерывания несколько недель назад было обсуждение в группе LPC2000 на YAhoo.


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
IgorMarx
сообщение Aug 7 2009, 20:22
Сообщение #19


Участник
*

Группа: Участник
Сообщений: 61
Регистрация: 5-10-05
Из: Зеленоград
Пользователь №: 9 268



А кто против прерываний? Да ради бога. Всё от задачи зависит. Просто приведу вам пример из свой практики, когда это не нужно. И процу действительно нечем заняться. Flashloader. Надеюсь, там знакомая. Я написал flashloader. В RAM загружается код, который шьёт flash и плюс EEPROM по шине 2IC. Попробуйте теперь меня убедить, зачем мне это делать не в цикле и что я не тот камень выбрал.

Я это не придумал, это реальный код, и вы бы поступили так же (почитали доку framework, где прерывания, мягко говоря, не предусмотрены) - сделали цикл. Если у кого-то не встречалась ситуация, когда этого делать не нужно, - может, просто опыта недостаточно?

Кстати, вложенность прерываний я и сам использую.

Приведу ещё пример. EEPROM - съёмная энергонезависимая память в устройстве. Предположим, инициализация этого устройства при включении питания зависит от содержимого этой памяти. Например, бутлоадер девайса проверяет что воткнули и не нужно ли скопировать новую прошивку во внутреннюю флешь. Если версия новее - копируем, иначе стартуем исполняемый код, обработчик прерываний которого понятия не имеет ни про какие I2C EEPROM. Каким боком тут прерывания? Ещё пример - сохранение контекста работы устройства (по немаскируемому прерыванию!) и восстановление при включении питания. И много чего ещё.

Цитата(Dog Pawlowa @ Aug 7 2009, 23:19) *
В среднестатистическом устройстве (среди моих - 100%) обращение по I2C (запись в EEPROM) связана с определенными действиями по интерфейсу пользователя, сменой состояний основного процесса, а все, что нужно для функционирования прибора, запихано в свои прерывания, вовсе необязательно вложенные.


Это точно. Вот бьюсь сейчас - GSM модем делает задержки более секунды при обращениях, а опрашивать MDB шину и поддерживать протокол нужно с периодом этак 0.1 сек... Не то мне дополнительный поток делать с диспетчеризацией, не то обрабатывать весь протокол MDB в прерываниях sad.gif

Сообщение отредактировал IgorMarx - Aug 7 2009, 20:04
Go to the top of the page
 
+Quote Post
singlskv
сообщение Aug 7 2009, 23:15
Сообщение #20


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(IgorMarx @ Aug 7 2009, 21:03) *
А теперь вопрос - чем ещё заниматься в прерывании кроме как ждать битов статуса, если вот так вот задача поставлена, а?
Вы вобще в курсе что I2C полностью статическая шина ? Если что будем сидеть в прерывании до конца ?
Поллинг в прерывании это вобще новое слово в программировании... то есть конечно допустим для некоторых интерфейсов(например
SPI в режиме мастера), но для I2C это просто бред...
И не удивительно что при таком подходе "вдруг" становятся нужными вложенные прерывания...
Цитата
Повторяю - для остальной периферии возможно потребуются вложенные прерывания.
smile.gif


Цитата(Dog Pawlowa @ Aug 7 2009, 23:19) *
Вы выбрали ..хм... не тот род занятий.
Спасибо конечно за помощь в выборе рода занятий,
но вот согласитесь ли Вы со мной поспорить на конкретном примере(то есть поспорить на конкретной реализации) ?
Цитата
I2C это самый типичный пример для включения в основной цикл.
Задачки разные бывают...
Сможете гарантировать передачу 6-8 байт за 1мс при скорости i2c ~100кбит
и обслуживании обмена в основном цикле ?(обмен между 2 процами)
При том что основной цикл считает плавучку с неадекватными временами реакции...



Цитата(IgorMarx @ Aug 8 2009, 00:22) *
А кто против прерываний? Да ради бога. Всё от задачи зависит. Просто приведу вам пример из свой практики, когда это не нужно. И процу действительно нечем заняться. Flashloader. Надеюсь, там знакомая. Я написал flashloader. В RAM загружается код, который шьёт flash и плюс EEPROM по шине 2IC. Попробуйте теперь меня убедить, зачем мне это делать не в цикле и что я не тот камень выбрал.

Я это не придумал, это реальный код, и вы бы поступили так же (почитали доку framework, где прерывания, мягко говоря, не предусмотрены) - сделали цикл. Если у кого-то не встречалась ситуация, когда этого делать не нужно, - может, просто опыта недостаточно?
Это все очень "своевременные" замечания, но топик таки называется "Вложенные прерывания" ....
Go to the top of the page
 
+Quote Post
IgorMarx
сообщение Aug 8 2009, 04:38
Сообщение #21


Участник
*

Группа: Участник
Сообщений: 61
Регистрация: 5-10-05
Из: Зеленоград
Пользователь №: 9 268



Цитата(singlskv @ Aug 8 2009, 03:15) *
но вот согласитесь ли Вы со мной поспорить на конкретном примере(то есть поспорить на конкретной реализации) ?
...
Это все очень "своевременные" замечания, но топик таки называется "Вложенные прерывания" ....



На конкретном примере - я его привёл. А насчёт темы топика Вы правы. За сим и откланиваюсь, ибо аргументы Ваши слабы, да и спорить в общем-то не о чем.

Извините, спойлер не сработал (?), получилась длинная колбаса. Все исходники пришлось вытереть из этого сообщения.

Сообщение отредактировал IgorMarx - Aug 8 2009, 04:42
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Aug 8 2009, 05:45
Сообщение #22


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(singlskv @ Aug 8 2009, 02:15) *
Спасибо конечно за помощь в выборе рода занятий,
но вот согласитесь ли Вы со мной поспорить на конкретном примере(то есть поспорить на конкретной реализации) ?
Задачки разные бывают...
Сможете гарантировать ...

Не за что.

Ну вот мы и пришли - Ваши задачи против моих задач. И что? Позовем третьего с другими задачами?
Просто не обобщайте, и будет консенсус. По крайней мере я соглашусь smile.gif

А возвращаясь с теме вложенности. Поразительно, 20-15 лет назад на 8080/8086 вложенность и приоритетность прерываний были естественным свойством системы. Убогость контроллеров, к счастью, уходящих сейчас, сделали это чем-то необычным.


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 8 2009, 06:12
Сообщение #23


Гуру
******

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



Цитата(Dog Pawlowa @ Aug 8 2009, 08:45) *
Поразительно, 20-15 лет назад на 8080/8086 вложенность и приоритетность прерываний были естественным свойством системы. Убогость контроллеров, к счастью, уходящих сейчас, сделали это чем-то необычным.

Не так - убогость средств программирования, убогость операционных систем, и в первую очередь убогость программистов делало 20 лет назад вложенность "полезной". Хрен в под тем-же DOS организуешь "многозадачность" и выживешь при дисковых операциях без вложенных прерываний. Лично пользовал в прошлом широко. Однако при сколь-нибудь нормальном подходе к делу, вложенность, как минммум, бесполелезна в абсолютно подавляющем числе случаев. Причины "возрождения" поддержки вложенности на данном этапе развития контроллеростроения очень простые - пусть будет до кучи - ресурсы есть. А уровень программирования, опять, зачастую на уровне плинтуса. Массовость, однако.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Aug 8 2009, 20:12
Сообщение #24


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(zltigo @ Aug 8 2009, 09:12) *
Не так - убогость средств программирования, убогость операционных систем, и в первую очередь убогость программистов делало 20 лет назад вложенность "полезной"...

А я согласен с Dog Pawlowa, - не надо обобщать. И не надо переносить свойства контроллеров общего назначения на МК для встроенных приложений.

И для I2C тоже самое.
Представим, что у нас поступает какая-то инфа по I2C и от этого крутится голова. Ну и какая разница, буду ли я ждать пока "буфер приёма не пуст" или я буду прямо сидеть на приёме? Если это попутный фоновый процесс, то тогда реализация "по прерываниям" - предпочтительней.
Go to the top of the page
 
+Quote Post
singlskv
сообщение Aug 9 2009, 00:21
Сообщение #25


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(SasaVitebsk @ Aug 9 2009, 00:12) *
А я согласен с Dog Pawlowa, - не надо обобщать. И не надо переносить свойства контроллеров общего назначения на МК для встроенных приложений.
И для I2C тоже самое.
Представим, что у нас поступает какая-то инфа по I2C и от этого крутится голова. Ну и какая разница, буду ли я ждать пока "буфер приёма не пуст" или я буду прямо сидеть на приёме? Если это попутный фоновый процесс, то тогда реализация "по прерываниям" - предпочтительней.
Я совсем не против работы по i2c без прерываний, более того, в моих проектах часто бывает что один проц(главный)
работает с i2c по прерываниям(по другому никак из-за большого числа разных задач),
а другой(переферийный) проц работает по опросу(опять же по другому никак из-за необходимости иметь только 1 прерывание
в системме для предсказуемого джиттера).
Я против попыток ожидания флагов i2c в прерываниях....(и вложенных прерываниях как костыль...) как предлагал один из авторов...
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Aug 9 2009, 05:17
Сообщение #26


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(zltigo @ Aug 8 2009, 09:12) *
Однако при сколь-нибудь нормальном подходе к делу, вложенность, как минммум, бесполелезна в абсолютно подавляющем числе случаев.

Возможно.
Из проектов последних пяти лет она мне понадобилась для реализации программного IrDA SIR.
Теоретически ее можно рассматривать как некоторую альтернативу RTOS.


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
Step_ARM
сообщение Aug 10 2009, 04:02
Сообщение #27


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

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



Цитата(zltigo @ Aug 8 2009, 10:12) *
А уровень программирования, опять, зачастую на уровне плинтуса. Массовость, однако.

Весь этот вопрос о вложенных прерываниях яйца выеденного не стоит. :-) Тем более , что человек уже как-то решил свою тайную проблему.
Кто как хочет, тот так и двигает левой рукой(вариант -- правой)?

Но Ваша фраза об уровне меня заинтересовала. Как можно оценить уровень программирования?
Массовость??? Откуда она взялась???? У нас так много ВУЗов, которые готовят специалистов по программированию (в частности МК)????
Большинство из тех , кто здесь бывает и не бывает сами осваивали эту область.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 10 2009, 04:10
Сообщение #28


Гуру
******

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



Цитата(Step_ARM @ Aug 10 2009, 07:02) *
Кто как хочет, тот так и двигает левой рукой(вариант -- правой)?

Понятно. Подход "радиогубителя" - слепил что-то и "у меня работает".
Цитата
Но Ваша фраза об уровне меня заинтересовала. Как можно оценить уровень программирования?

Спросить оценки у других.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Step_ARM
сообщение Aug 10 2009, 05:04
Сообщение #29


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

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



Цитата(zltigo @ Aug 10 2009, 08:10) *
Понятно. Подход "радиогубителя" - слепил что-то и "у меня работает".

Спросить оценки у других.

Хлоп, штампик поставил... Точно старый усталый программер.
Как всегда -- я Д"Артаньян , а Вы все ...
Я-то хотел той фразой сказать ,что путей решения очень много.

А если я хочу оценить кого-то при приеме на работу?
Я не настолько велик, чтобы кому-то давать оценку, а таких "гигантов " как Вы рядом нет. Как быть? Критерии все же нужны...
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Aug 10 2009, 08:01
Сообщение #30


Гуру
******

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



Цитата(Step_ARM @ Aug 10 2009, 09:04) *
Как быть? Критерии все же нужны...

Все очень просто, ИМХО: грамотный специалист всегда может аргументировать, почему было применено то или иное решение. В отличие от любителя, код пишет лаконичный, без лишних действий и затычек - это заметно даже при беглом просмотре.
Go to the top of the page
 
+Quote Post
Step_ARM
сообщение Aug 13 2009, 05:00
Сообщение #31


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

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



Цитата(aaarrr @ Aug 10 2009, 12:01) *
Все очень просто, ИМХО: грамотный специалист всегда может аргументировать, почему было применено то или иное решение. В отличие от любителя, код пишет лаконичный, без лишних действий и затычек - это заметно даже при беглом просмотре.

Вы говорите о технике программирования. Но ведь если человек не понимает ЧТО писать или неправильно ставит задачу, то никакая техника не спасет.
У меня один знакомый был -- уехал к шведам. Он прекрасный математик. Но в программировании не силен. Однако это не помешало ему заключить неплохой контракт за границей именно как прграммеру. Хочу сказать , что техника приходит с опытом, а умишко заложен генетически -- кому больше, кому меньше. Мне вот совсем ничего не отмерили, в отличие от zltigo :-)
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 13 2009, 05:52
Сообщение #32


Гуру
******

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



Цитата(Step_ARM @ Aug 10 2009, 07:04) *
А если я хочу оценить кого-то при приеме на работу?
Я не настолько велик, чтобы кому-то давать оценку, а таких "гигантов " как Вы рядом нет. Как быть? Критерии все же нужны...

Так пусть это будут любые, НО ВАШИ критерии, а не какие-то "чужие", пусть и рекламируемые, как умные.


Цитата(Step_ARM @ Aug 13 2009, 07:00) *
Однако это не помешало ему заключить неплохой контракт за границей именно как прграммеру.

Заграница, она такая smile.gif, а программирование давно уже участь домохозяек. Знакомая учительница жимии, предпенсионого возраста, повторно выщла замуж за иландского пенсионера, работы, соответственно, там не нашла. На курсах безработных освоила новую специальность "программиста" - работает. Погагаю, что с Российской колокольни, порядка 20 тысяч евро в год это уже "неплохой контракт". Практически аналогичная история в Штатах. Подбросить могу и примеры из жизни прогаммистов на Бейсике а Англии.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Step_ARM
сообщение Aug 13 2009, 06:50
Сообщение #33


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

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



Цитата(zltigo @ Aug 13 2009, 09:52) *
Так пусть это будут любые, НО ВАШИ критерии, а не какие-то "чужие", пусть и рекламируемые, как умные.



Заграница, она такая smile.gif, а программирование давно уже участь домохозяек. Знакомая учительница жимии, предпенсионого возраста, повторно выщла замуж за иландского пенсионера, работы, соответственно, там не нашла. На курсах безработных освоила новую специальность "программиста" - работает. Погагаю, что с Российской колокольни, порядка 20 тысяч евро в год это уже "неплохой контракт". Практически аналогичная история в Штатах. Подбросить могу и примеры из жизни прогаммистов на Бейсике а Англии.

Наверное Вы правы... Но... Есть тут у меня человек один. Пишет для всего, что угодно. Как-то даже ключ для протокола обмена с блоком управления двигателем взломал за пару часов. А вот элементарный сигма-дельта АЦП на компараторе месяц ковырял пока нормально измерил. Как так? По моим критериям не есть хорошо, но ведь ключикто как-то получил...
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 13 2009, 06:57
Сообщение #34


Гуру
******

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



Цитата(Step_ARM @ Aug 13 2009, 08:50) *
Как-то даже ключ для протокола обмена с блоком управления двигателем взломал за пару часов. А вот элементарный....

Интернет он большой, вот и появляются "юные хакеры" скачавшие что-то и нажавшие кнопку мышкой и получившие "результат". Что-то вроде "мартышек" с гранатами - уделают любого морпеха smile.gif за счет найденой гранаты. Вопрос только мастерство-ли это?


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Step_ARM
сообщение Aug 13 2009, 12:59
Сообщение #35


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

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



Цитата(zltigo @ Aug 13 2009, 10:57) *
Интернет он большой, вот и появляются "юные хакеры" скачавшие что-то и нажавшие кнопку мышкой и получившие "результат". Что-то вроде "мартышек" с гранатами - уделают любого морпеха smile.gif за счет найденой гранаты. Вопрос только мастерство-ли это?

Не тот случай -- в интернете это не найдешь...
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 13 2009, 13:11
Сообщение #36


Гуру
******

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



Цитата(Step_ARM @ Aug 13 2009, 14:59) *
в интернете это не найдешь...

smile.gif


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
sasamy
сообщение Aug 27 2009, 19:15
Сообщение #37


Знающий
****

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



Цитата(zltigo @ Aug 8 2009, 09:12) *
убогость операционных систем... Однако при сколь-нибудь нормальном подходе к делу, вложенность, как минммум, бесполелезна в абсолютно подавляющем числе случаев.


мне кажется вложенность прерываний в совокупности с приоритетами как минимум полезна для rtos, а если программист не использует аппаратные возможности платформы и изобретает софтовый велосипед причем медленный, это и есть проявление непрофессионализма.
Go to the top of the page
 
+Quote Post

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

 


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


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