Разработка, производство и продажа радиоэлектронной аппаратуры
|
Карта сайта
|
Пишите нам
|
В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:
jobsmp@pochta.ru
Телесистемы
|
Электроника
|
Конференция «Микроконтроллеры и их применение»
Мда, хорошый пример того, как не надо писать программы.. :-)))))))
Отправлено
провинцыалекс
(81.25.57.242)
05 ноября 2010, г. 13:46
В ответ на:
Тут просматривал свои древние коды. Раньше блин ничего не боялся. Адреса возврата подменял аки... не знаю хто. Бес каких либо негативных последствий, значит башкой се же работал куда можно сунуть. Иногда возникают здесь подобные вопросы. Не призываю но типо вот так >>
отправлено
VasilyS
05 ноября 2010, г. 12:31
Составить ответ
|
Вернуться на конференцию
Ответы
Каждый практикующий эмбедер (конечно кто не страдает защемлением межушного ганглия) рано или поздно сталкивается с подменой адресов возврата. Женщина беспорно лучше осла, но бывают в Каракумах разные ситуации :-)
-
VasilyS
(05.11.2010, 14:02:20
80.92.96.25
,
пустое
)
set_jump для таких извратов есть. Я кстати никогда сталкивался с такой проблемой
-
DASM
(05.11.2010, 14:06:46
78.36.80.95
,
пустое
)
"Есть. Осталось сп*здить да принесть". Из прерывания не пробовал выходить longjmpом? СоскиИ вы еще, как я погляжу...
-
VasilyS
(05.11.2010, 14:10:18
80.92.96.25
,
пустое
)
из прерывания выхожу по reti (вернее это делает операционка ). А вот за такие подмены возратов - гнать вшею надо. Непереносимо, нечитабельно и совершенно бессмысленно
-
DASM
(05.11.2010, 14:13:38
78.36.80.95
,
пустое
)
За тебя все кто-то должен делать - папа, мама, операционка... А настоящие поцаны не боятся расширять ягодицы компилятору.
-
VasilyS
(05.11.2010, 14:17:5
80.92.96.25
,
пустое
)
потом тебе клиенты "расширят ягодицы"
-
DASM
(05.11.2010, 14:19:41
78.36.80.95
,
пустое
)
Клиент дал мне на машину заработать и до сих пор иногда обращается. :-))
-
VasilyS
(05.11.2010, 14:25:24
80.92.96.25
,
пустое
)
подмена возврата это чисто ассемблерное мышление, можно конечно и на сях использовать, но лучше перепродумать моторчик программы, чтоб не нужно было так извращаться. И потом, иди знай как такие конструкции будут поддерживаться следующими версиями компилятора, вдруг прийдется когданибудь чтото изменить, по сему код должен быть без извращений.
-
колян безпарольный
(05.11.2010, 14:32:45
193.200.150.125
,
пустое
)
Каждый сам себе Рабинович. Это как раз тот период когда я вылезал из асма и пробовал плавать "по дну руками" на Си :-) Тем не менее ты наверно подобные вопросы здесь сам видел - как это сделать. Вон goto тоже не приветствуется.
-
VasilyS
(05.11.2010, 14:37:6
80.92.96.25
,
пустое
)
Не приветствуется, но иногда не есть: "запрещено". "Мгновенная Телепортация" т.с. ;)
-
Макаров
(05.11.2010, 14:56:44
95.107.112.240
,
пустое
)
goto - стандартная конструкция языка. mov sp , (int)foo - нет
-
DASM
(05.11.2010, 15:02:27
78.36.80.95
,
пустое
)
Стандарт говоришь...Хочешь расскажу как я на "документированной конструкции" longjmp накололся? Посмотри, может сейчас на новых версиях он RAMPZ восстанавливает - давно не пробовал.
-
VasilyS
(05.11.2010, 15:09:30
80.92.96.25
,
пустое
)
что такое RAMPZ ? Ты еще скажи что это стандарт, а АВР - микропроцессор
-
DASM
(05.11.2010, 15:25:45
78.36.80.95
,
пустое
)
Ты гонишь что ли или сурьезно? Ты и герлянду на 32разряднике будешь городить? АВР это Т-34 сегодня.
-
VasilyS
(05.11.2010, 15:28:39
80.92.96.25
,
пустое
)
с точки зрения кустаря- да. С точки зрения разработки и серийного производства- разрядность процессора дело стопицотое, мы ставим lpc там где даже тини13 избыточна.
-
колян безпарольный
(05.11.2010, 16:11:50
193.200.150.152
,
пустое
)
Или квалификатор __eeprom для ИАР меги безопасен? Однако применяют же. Путена бояться в сортир не ходить(с)
-
VasilyS
(05.11.2010, 15:14:15
80.92.96.25
,
пустое
)
меньше под ARM926 и Linux не пишу. А что такое __eeprom ?
-
DASM
(05.11.2010, 15:23:18
78.36.80.95
,
пустое
)
Квалификатор для определения в какой памяти разместить. Гарвард же, не хухры-мухры.
-
VasilyS
(05.11.2010, 15:26:59
80.92.96.25
,
пустое
)
я тоже делал подмену возврата на сях, на тот момент мне это казалось шибко круто. В последствии огреб гимароя при попытке портировать проект, пришлось заново моторчик переписывать. В долгоиграющих проектах, с версиями,с возможной сменой элемнтарной базы итд- программерские извращения это могила.
-
колян безпарольный
(05.11.2010, 14:46:45
193.200.150.125
,
пустое
)
да и на 30 строках можно заработать, шахиду девайс продать. только не надо говорить - что так надо программировать и это круто
-
DASM
(05.11.2010, 14:27:26
78.36.80.95
,
пустое
)
Почитай корневой пост, где я призываю-то? Эхма, вся беда от неумения читать.
-
VasilyS
(05.11.2010, 14:30:12
80.92.96.25
,
пустое
)
а зачем выкладывать рекомендации (примеры) вырезания гланд через жопу?
-
DASM
(05.11.2010, 14:44:20
78.36.80.95
,
пустое
)
Примеры или рекомендации - это не одно и то же, ты определись. Этот пример ничуть не хуже встречи группы команд #asm("...") посреди Сишного кода. Почему дал? Чтоб знали, что Си мощный и гипкий. И стоит чтобы с асма на него перелезать.
-
VasilyS
(05.11.2010, 14:52:57
80.92.96.25
,
пустое
)
ты использовал недокуменированные ф-ции. SP в расширении языка может и не быть. И тем более неясно зачем вызывая одну ф-цию возвращаться из другой
-
DASM
(05.11.2010, 14:56:53
78.36.80.95
,
пустое
)
Опять говорю: читай. Только что про #asm сказал. Там что, детерминировано что ты напишешь? Документировано какие регистры есть у какого МК? А #asm применяют вовсю в Апнотах. Да я тебе таких граблей сейчас на "отлично документированных" Си-нфункциях наделаю - только успевай исправлять. :-)
-
VasilyS
(05.11.2010, 15:05:2
80.92.96.25
,
пустое
)
в том, что граблей ты СЕБЕ наделаешь - не сомневаюсь. Засим перепалку прошу закончить
-
DASM
(05.11.2010, 15:08:35
78.36.80.95
,
пустое
)
У меня и с подменой адресов все шито-крыто. Без проблем, чего и вам желаю :-)
-
VasilyS
(05.11.2010, 15:11:7
80.92.96.25
,
пустое
)
Ты наверное даже на пропитание ещё не зарабатываешь ымбеддерством, я уж не говорю "на жызнь", а гонору-то.. :-)))))))))))
-
провинцыалекс
(05.11.2010, 14:19:12
81.25.57.242
,
пустое
)
Кушаю хорошо. Гонор это когда с порога отметают то, в чем некопенгаген. Мне приходилось выезжать из функций на кривой козе. Чесно говоря не жалею об этом опыте.
-
VasilyS
(05.11.2010, 14:22:49
80.92.96.25
,
пустое
)
нех ездить на кривой козе. развелось блин ASSемблрщиков , код вообще нечитаемый и опасный
-
DASM
(05.11.2010, 14:25:1
78.36.80.95
,
пустое
)
Чё, ты и ассемблер не уважаешь? Тогда что говорить с убогим...
-
VasilyS
(05.11.2010, 14:26:56
80.92.96.25
,
пустое
)
не уважаю, только бутлоадеры на нем пишу, но не хвастаю на всю конфу
-
DASM
(05.11.2010, 14:28:47
78.36.80.95
,
пустое
)
Знаешь, жену можно и не любить. Ничего... Но когда ее и не уважаешь это вообще швах. Уважать надо то что сопряжено с твоим промыслом.
-
VasilyS
(05.11.2010, 14:31:35
80.92.96.25
,
пустое
)
Ты слишком малоопытен, чтобы говорить за всех.. :-)))))
-
провинцыалекс
(05.11.2010, 14:04:12
81.25.57.242
,
пустое
)
А я как видишь не про всех говорю. Защемленным тихо курить в сторонке :-)
-
VasilyS
(05.11.2010, 14:12:23
80.92.96.25
,
пустое
)
Отправка ответа
Имя*:
Пароль:
E-mail:
Тема*:
Сообщение:
Ссылка на URL:
URL изображения:
если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
отымите от 2 единицу:
Перейти к списку ответов
|
Конференция
|
Раздел "Электроника"
|
Главная страница
|
Карта сайта
Web
telesys.ru