Адские скетчи
- Войдите на сайт для отправки комментариев
Сб, 05/10/2019 - 00:25
Поставил себе систему программирования для AVR на Ада. Просто "на попробовать".
Вот блинк (на "нане" вполне себе добротно мигает):
with AVR, AVR.MCU, AVR.WAIT, Interfaces; use AVR, AVR.MCU, AVR.WAIT, Interfaces; procedure Main is LED_BUILTIN: boolean renames PORTB_Bits(5); LEDCONF: boolean renames DDRB_Bits(5); OUTPUT: constant boolean := True; DelayVal: Unsigned_16 := 500; procedure DelayMS is new Generic_Busy_Wait_Milliseconds(Crystal_hertz => 16_000_000); begin LEDCONF := OUTPUT; -- конфигурация пина loop LED_BUILTIN := High; DelayMS(DelayVal); LED_BUILTIN := Low; DelayMS(DelayVal); end loop; end Main;
Занимает 190 байтов программной памяти и 0 байтов памяти данных.
Есть библиотеки для OneWire, USART, SPI, I2C, RTC, далласов, LCD и ещё много. Не так много, как для С++, но в общем, тоже хватает. Поддерживаются прогмем и прочие фишки.
Кто-то пользовал? Или кому-то интересно?
Я только за новую движуху. Только нифига не понимаю в этом языке и зачем оно. Просто съэкономить ресурсы мк?
Блеатт... Ощенянама пахож на древний турба-паскакалЪ :)))
в этом языке и зачем оно.
Ну, там много чего. Начнём с того, что язык создавался специально для разработки систем управления в реальном времени (бортовых, например) и сейчас в авионике активно используется.
А из языковых фишек - например, параноидальная типизация, защищённые типы, управление видимостью и т.п. Но это не про нас. Это начинает давать положительный эффект на проектах такого размера, который в восьмиразрядную АВР-ку просто не полезет. А в маленьких проектах это выглядит излишеством и неоправданным усложнением.
Вот зачем я его ставил - в этом языке есть родная (именно языковая) мультизадачность, причём очень неплохая. Я хотел попробовать запустить два блокирующих блинка параллельно и посмотреть как он выкрутится. Но тут облом. В опциях "из коробки" мультизадачность оказалась выключенной, а когда я включил, компилятор стал требовать какие-то доп. файлы, которых у него не оказалось. Не стал разбираться - не очень-то и хотелось. Час я на это потратил, а больше - жалко.
А из языковых фишек - например, параноидальная типизация, защищённые типы, управление видимостью и т.п. Но это не про нас. Это начинает давать положительный эффект на проектах такого размера, который в восьмиразрядную АВР-ку просто не полезет...
Однако же во время 8-ми битных ОС вполне себе использовалось. Вон см. у нашего ретрограда http://arduino.ru/forum/proekty/arduino-nano-emulyator-kompyutera-pod-upravleniem-os-cpm#comment-278170
Ну и суровые у вас, конечно, субботние развлечения, я вот шкафы таскал, а кто-то ставил аду для avr :)))
я вот шкафы таскал, а кто-то ставил аду для avr :)))
Это чтобы откосить от "таскания шкафов". Типа я тут за компутером занят сильно и газон стричь не могу :)))
не понимаю в этом языке и зачем оно.
Обратите внимание на строку №5, например.
Здесь бит 5 порта B назначается булевой переменной LED_BUILTIN. Теперь можно работать с этой переменной (пихать что-нибудь) и это будет работа с портом.
Разве не изящно?
"...из программы, написанной на языке Ада, сделать демона Linux. В первой части мы рассмотрим основы демонизации процесса."
Не так страшна демонизация процесса, как его зомбификация...
изыди сотона!