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

 
 
> х51
Egel
сообщение Jul 29 2008, 09:21
Сообщение #1


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

Группа: Свой
Сообщений: 162
Регистрация: 28-07-08
Из: Химки
Пользователь №: 39 244



На каких МК стоит начать учиться, с каким языком работать и в какой среде сейчас осуществляется программирование(я знаю, что для х51 семейства программировали под DOS на TASM например )???
Еще очень интересно есть ли какие-то симмуляторы МК(не аппаратные) и как вообще лучше начать обучение в этой области?
Заранее огромное спасибо
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
rv3dll(lex)
сообщение Jul 30 2008, 04:15
Сообщение #2


Полное ничтожество
*****

Группа: Banned
Сообщений: 1 991
Регистрация: 20-03-07
Из: Коломна
Пользователь №: 26 354



ассемблер рулит

кейл генерирует сильно кривой код - так как не знает что от него хотят
Go to the top of the page
 
+Quote Post
777777
сообщение Jul 30 2008, 04:31
Сообщение #3


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

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Цитата(rv3dll(lex) @ Jul 30 2008, 08:15) *
кейл генерирует сильно кривой код

Вы просто не умеете его готовить smile.gif
Цитата(rv3dll(lex) @ Jul 30 2008, 08:15) *
так как не знает что от него хотят

Значит надо объяснить smile.gif
Go to the top of the page
 
+Quote Post
rv3dll(lex)
сообщение Jul 30 2008, 04:48
Сообщение #4


Полное ничтожество
*****

Группа: Banned
Сообщений: 1 991
Регистрация: 20-03-07
Из: Коломна
Пользователь №: 26 354



Цитата(777777 @ Jul 30 2008, 08:31) *
Вы просто не умеете его готовить smile.gif

Значит надо объяснить smile.gif


ага очень удобно объяснить что при делении многобайтных чисел всё зависит от разрядности результата.---- проходили уже!!!!!

и примерные операции - не законченные это вообще песня a14.gif
Go to the top of the page
 
+Quote Post
777777
сообщение Jul 30 2008, 04:50
Сообщение #5


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

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Цитата(rv3dll(lex) @ Jul 30 2008, 08:48) *
ага очень удобно объяснить что при делении многобайтных чисел всё зависит от разрядности результата.---- проходили уже!!!!!

и примерные операции - не законченные это вообще песня a14.gif


Ээ-э... А подробнее можно? А что такое "примерные операции"?
Go to the top of the page
 
+Quote Post
rv3dll(lex)
сообщение Jul 30 2008, 05:02
Сообщение #6


Полное ничтожество
*****

Группа: Banned
Сообщений: 1 991
Регистрация: 20-03-07
Из: Коломна
Пользователь №: 26 354



Цитата(777777 @ Jul 30 2008, 08:50) *
Ээ-э... А подробнее можно? А что такое "примерные операции"?


это когда точность расчёта зависит от оставшегося времени
по прерыванию например все данные уничтожаются - остаётся только результат
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 30 2008, 07:11
Сообщение #7


Гуру
******

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



Цитата(rv3dll(lex) @ Jul 30 2008, 07:02) *
по прерыванию например все данные уничтожаются - остаётся только результат

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


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
rv3dll(lex)
сообщение Jul 30 2008, 07:28
Сообщение #8


Полное ничтожество
*****

Группа: Banned
Сообщений: 1 991
Регистрация: 20-03-07
Из: Коломна
Пользователь №: 26 354



Цитата(zltigo @ Jul 30 2008, 11:11) *
Честно говоря даже комментировать не хочется ахинею sad.gif. Нет, я конечно понимаю, что через заднепроходное отверстие не прикладая ума можно получить любой "эффект", только вот зачем при этом пенять на компиляторы?


если не понимаешь не комментируй
для тебя умножение это

a <= b * c;

и это вне зависимости от того сколько разрядность чисел
если 2х байтные числа на 51 контроллере их за одну команду ассемблера не перемножишь
и займёт это десятки строк

бывают ситуации, когда неточный расчёт лучше, чем потеря данных

компиллятор ничего не знает поэтому на него надо пенять!!!! алгоритм его работы оптимален для большинства реализаций (он универсальный)

вот простой пример
чего бы не написал на си но при делении 32 разрядного числа на 32 разрядное на тексасе с помощью команды subd эта команда запустится 32 раза.

но елли результат не превышает 16 бит её жостаточно запустить 16 раз - ответ будет тот же самый.
проигрышь по производительности 2 раза

как компиллятору объяснить это?
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 30 2008, 08:02
Сообщение #9


Гуру
******

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



Цитата(rv3dll(lex) @ Jul 30 2008, 09:28) *
..если не понимаешь не комментируй

За десятилетия, так или иначе связанные с программированием на многих-многих ассеблерах, Fortran, Modula, С, .... Я понимаю очень многое smile.gif
Цитата
как компиллятору объяснить это?

Использовать явные преобразования типов, предварительное деление сдвигом для гробления точности, перед делением. Наконец, если критично, то и ASM функцию написать совсем не грех. Только вот кричать по незнанию/не владению инструментом о его непригодности явно глупо.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
rv3dll(lex)
сообщение Jul 30 2008, 08:16
Сообщение #10


Полное ничтожество
*****

Группа: Banned
Сообщений: 1 991
Регистрация: 20-03-07
Из: Коломна
Пользователь №: 26 354



Цитата(zltigo @ Jul 30 2008, 12:02) *
Использовать явные преобразования типов, предварительное деление сдвигом для гробления точности, перед делением. Наконец, если критично, то и ASM функцию написать совсем не грех. Только вот кричать по незнанию/не владению инструментом о его непригодности явно глупо.


преобразование типов чего и куда - число то 32 разрядное и дальше используется как 32 разрядное
там можно такого напреобразовывать lol.gif

то есть Вы УЖЕ согласились что в ответственных местах всёже компиллятор не обеспечивает экономичности ресурсов????
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 30 2008, 09:07
Сообщение #11


Гуру
******

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



Цитата(rv3dll(lex) @ Jul 30 2008, 10:16) *
то есть Вы УЖЕ согласились что в ответственных местах всёже компиллятор не обеспечивает экономичности ресурсов????

При умелом использовании от современных компиляторов получаем хорошо оптимизированный код.
Естествено, соревнование в ручной оптимизации, тем более на более чем старенькой 51 платформе, на уровне десятка-другого команд выграть у компилятора достаточно легко, хотя о сколь-нибудь впечатляющем выигрыше можно обычно говорить только на специально подобранных тестах smile.gif
Глобально, при сколь-нибудь разумных затратах времении говорить об эффективности программирования на ASM уже не приходится. За последние годы, если не считать сопровождения одного безмерно древнего sad.gif проекта на ASM размером под 200K кода, "ответсвенных мест" в которых я прибегал к использованию нескольких десятков строчек на ASM, пожалуй наберется штук 5-6.

Более того, где-то прошлой осенью пришлось столкнуться со старым изделием на 51. Разработчик тянул его много лет, вроде все работало, выпускалось, но как водится sad.gif после его ухода полезли очередные проблемы sad.gif Разбираться в 40K ASM кода совсем не хотелось, посему была просто портирована простенькая операционочка со 186 контроллера, поддержка однотипного железа, типовые протоколы и... уложившись в 30K получилося рабочий девайс не захлебываюшийся под нагрузкой, да и еще спокойно гонящий при этом в RS232 отладочную информацию. Честно говоря, предварительно морально был готов пару отработчиков прерываний на ASM писать, но не пришлось. Все стало работоспособным за счет более сложного построения системы а не тупого ускорения "ответственных мест".
По весне знакомый просил помочь с Тинькой - псевдонаучная поделка генерящая "волшебные" импульсы, впрочем к делу это отношения не имеет. Писали в ней софт вполне опытные ASM писатели, только вот результат получился странноватый - по верхней частоте/длительности чего-то не лотягивала до желаемого заказчиком, да и на анализаторе спектра что-то выглядило подозрительно очень - чего-то в алгоритме ошиблись явно. Переписывали сие уже много раз, писатели и заказчик находились в конфронтации.... Пришлось за несколько вечеров переписать на C. Тоже думал просто попробую (например на меге), а потом вылизывать придется - уж больно 2K флеша не впечатлили (отвык от малых форм smile.gif ), да и по скорости достаточно сурово все по началу смотрелось. И ничего - 1.6K кода вместо 1.8K у ассемблерописателей при большем функционале и красотулечках (приблуда для продаже через TV Shop smile.gif - важно) и двойной запас по девиации частоты вверх smile.gif. И вообще ни одной сторочки (ну кроме штатного cstatrup) на ASM.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
SIA
сообщение Jul 30 2008, 09:16
Сообщение #12


Местный
***

Группа: Свой
Сообщений: 462
Регистрация: 26-06-07
Пользователь №: 28 723



Великолепная иллюстрация того, что никакой "ручной код" не спасет от бездарности алгоритма. И наоборот, грамотная алгоритмика позволяет все сделать на нормальном языке.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Egel   х51   Jul 29 2008, 09:21
- - MrYuran   Вот это читал?   Jul 29 2008, 09:27
- - Egel   Вопрос впринципе исчерпан Спасибо   Jul 29 2008, 09:30
- - Egel   Здравствуйте Подскажите пожалуйста адрес хорошего ...   Jul 29 2008, 16:25
|- - lks   Цитата(Egel @ Jul 29 2008, 20:25) Здравст...   Jul 29 2008, 16:52
||- - Mik174   Цитата(lks @ Jul 29 2008, 20:52) Компилят...   Jul 29 2008, 20:09
||- - lks   Цитата(Mik174 @ Jul 30 2008, 00:09) Во-пе...   Jul 30 2008, 18:21
||- - 777777   Цитата(lks @ Jul 30 2008, 22:21) И чем же...   Jul 31 2008, 04:18
||- - rv3dll(lex)   Цитата(777777 @ Jul 31 2008, 08:18) Архит...   Jul 31 2008, 05:23
||- - Herz   Цитата(777777 @ Jul 31 2008, 06:18) Может...   Jul 31 2008, 07:19
||- - SIA   Цитата(777777 @ Jul 31 2008, 08:18) По бы...   Jul 31 2008, 10:13
|- - zltigo   Цитата(Egel @ Jul 29 2008, 18:25) Здравст...   Jul 29 2008, 17:07
|- - lks   Цитата(zltigo @ Jul 29 2008, 21:07) Ваш...   Jul 29 2008, 18:20
|- - zltigo   Цитата(lks @ Jul 29 2008, 20:20) Ваши сов...   Jul 29 2008, 20:13
- - Egel   На чем вообще лучше писать(из этих двоих я уже пон...   Jul 29 2008, 20:23
- - zltigo   Цитата(Egel @ Jul 29 2008, 11:21) ..я зна...   Jul 29 2008, 20:37
|- - Egel   Вы конечно опытнее меня, но вопрос был несколько в...   Jul 29 2008, 20:48
||- - zltigo   Цитата(Egel @ Jul 29 2008, 22:48) Про то ...   Jul 29 2008, 20:52
|||- - Egel   Образование прекрасное, кстати, а спрашивал то я с...   Jul 29 2008, 21:00
|||- - SIA   Цитата(zltigo @ Jul 30 2008, 00:52) Как с...   Jul 29 2008, 21:07
|||- - Egel   Я за вас очень рад. Не тем надо было заниматься до...   Jul 29 2008, 21:09
||- - SIA   Цитата(Egel @ Jul 30 2008, 00:48) Вы коне...   Jul 29 2008, 21:11
||- - Egel   Спасибо за совет   Jul 29 2008, 21:13
|||- - SIA   Цитата(Egel @ Jul 30 2008, 01:13) Спасибо...   Jul 29 2008, 21:20
||- - 777777   Цитата(SIA @ Jul 30 2008, 01:11) Легче вс...   Jul 30 2008, 04:08
|- - AHTOXA   Цитата(zltigo @ Jul 30 2008, 02:37) Цитат...   Jul 29 2008, 21:35
|- - zltigo   Цитата(AHTOXA @ Jul 29 2008, 23:35) Вообщ...   Jul 29 2008, 22:23
|- - AHTOXA   Цитата(zltigo @ Jul 30 2008, 04:23) Вообщ...   Jul 29 2008, 23:14
|- - Egel   Да вы не обращайте внимания, у него стиль такой   Jul 30 2008, 07:37
|- - MrYuran   Цитата(rv3dll(lex) @ Jul 30 2008, 12...   Jul 30 2008, 08:42
||- - rv3dll(lex)   Цитата(MrYuran @ Jul 30 2008, 12:42) Комп...   Jul 30 2008, 09:49
||- - blackfin   Цитата(rv3dll(lex) @ Jul 30 2008, 13...   Jul 30 2008, 10:48
||- - zltigo   Цитата(blackfin @ Jul 30 2008, 12:48) Ага...   Jul 30 2008, 11:08
|- - zltigo   Цитата(SIA @ Jul 30 2008, 11:16) И наобор...   Jul 30 2008, 09:21
- - ukpyr   еще есть басплатный SDCC : http://sdcc.sourceforge...   Jul 30 2008, 06:29
|- - SIA   Цитата(ukpyr @ Jul 30 2008, 10:29) еще ес...   Jul 30 2008, 08:38
|- - 777777   Цитата(SIA @ Jul 30 2008, 12:38) Если реч...   Jul 30 2008, 11:57
|- - rv3dll(lex)   Цитата(777777 @ Jul 30 2008, 15:57) (Про ...   Jul 30 2008, 12:01
|- - SIA   Цитата(777777 @ Jul 30 2008, 15:57) Неско...   Jul 30 2008, 13:22
- - Herz   Я вам так скажу. Компилятор - сложный программный ...   Jul 30 2008, 19:09
|- - Duplex   Цитата(Herz @ Jul 30 2008, 23:09) А уж ре...   Aug 1 2008, 16:15
|- - Огурцов   Цитата(Duplex @ Aug 1 2008, 16:15) Первый...   Aug 1 2008, 19:54
|- - Egel   Простите, но вам не приходило в голову посмотреть ...   Aug 1 2008, 20:26
- - rv3dll(lex)   пики в частности стоят почти во всех сигнализациях   Jul 31 2008, 08:09
- - MrYuran   И вообще: сводить выбор 8-битного контроллера, даж...   Jul 31 2008, 08:11
- - skripach   ЦитатаЕсть контроллер с ядром 8052, с USB портом и...   Aug 1 2008, 19:28
- - sergey sva   Много схем собирал на контроллерах MSC51, проблем ...   Aug 1 2008, 20:27


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

 


RSS Текстовая версия Сейчас: 4th August 2025 - 18:44
Рейтинг@Mail.ru


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