Программистам микроконтроллеров (Atmega128), и тем Как заработать ?!
Добрый день(вечер)!
Я программирую на микроконnрроллер Atmega128 пользуясь
IAR Embedded Workbench 2.31E
Есть еще такое средство разработки как
IAR visualSTATE Navigator 5.0 (Demo)
File version: 5.0.4.96
Подскажите пожалуйста как сломать visualSTATE,
где скачать русскую документацию или русскую версию
этой проги. Подойдут также рабочие (с кряками) аналоги
visualSTATE, желательно руссифицированные.
Оболочки должны поддерживать Atmega128,Atmega8,
желательна поддержка Atmega 256.
Для непросвещенных visualSTATE это типа
Builder после Borland C3.11 :-)
Русские доки и интерфейс необходимы в связи с нехваткой времени на
освоение программы.
По специфике софта, которым я занимаюсь мне пришлось
написать некое подобие операционной системы, но она не имеет системы
приоритетов и в дальнейшем, как я вижу из-за ограниченности аппаратных
ресурсов придется оптимизировать код по времени. Что бы этим не
заниматься хотелось бы пользовать РАБОЧУЮ (проверенную) многозадачную
ОС с распределением приоритетов задач.
//*************************************************
Я уже достаточно долго слежу за рубрикой (Как заработать?!) и хотел бы
поделиться опытом.
Я работаю в группе, причем члены группы программистов зачастую ведут
разные программные проекты (уточняю программируем на АSM, C/C++ под MCS-51
и AVR (Atmega)). В процессе совместной работы были выработаны некие
правила:
1. Составляется ТЗ проекта (один автор собирает идеи от
заинтерисованных в соавторстве, выделяя суть).
2. В процессе написания ТЗ выделяются некие программные модули, на
каждый из составляется свое ТЗ, включающее в себя:
2.1 Функции, реализуемые модулем (назначение модуля);
2.2 Описание констант.
2.3 Описание функций, обязательно входящих в данный модуль в следующем виде:
2.3.1 Прототип (тип название (список параметров))
2.3.2 Краткое описание назначение функции в текстовом виде, например
//extern void set_sound(unsigned char time_1, unsigned char time_2,unsigned int
freq_1,unsigned int freq_2, signed int count)
Запускает последовательное включение звука последовательно частотой freq_1, затем
частотой freq_2.
time_1 - время звучания частотой freq_1. Минимальное время звучания 0,1 сек;
time_2 - время звучания частотой freq_2. Минимальное время звучания 0,1 сек;
freq_1, freq_2 - частота звучания от 0 до 12000 Гц:
рекомендуемая частота 1000 Гц;
0 - выключить звук.
count - количество повторений звука.
После вызова функции динамик будет попеременно выдавать звук частотой freq_1,
затем через время time_1, частотой freq_2, затем частотой freq_1 и т.д. до тех
пор пока процедура попеременного звучания не повторится count раз.
//3. ТЗ модуля выставляется на конкурс, в котором свободные участники
проекта оценивают трудоемкость написания (за какое бы время я это
сделал ?)
4. ТЗ выдается в работу свободному программисту, который в состоянии
реализовать все функции модуля, затратив минимальное время.
5. В процессе составления ПО модуля может оказаться необходим некий
набор функций, которые необходимо применить при составлении данного
модуля, составитель ПО данного модуля может выставить ТЗ на моджуль,
обладающий необходиммыми функциями и т.д.(из практики программирования
не более 2 порядка).
6. (ОЧЕНЬ ВАЖНО), по завершении написания модуля, его автор ОБЯЗАН
составить документ с условным названием ФУНКЦИИ МОДУЛЯ (похож на ТЗ),
в котором он должен четко оговорить особенности применения его модуля,
с приведением примеров применения функций, реализуемых модулем:
6.1 Функции, реализуемые модулем (назначение модуля);
6.2 Требования к ПО, в состав которого будет включен модуль, некие
ограничения, например список констант, и других модулей, которые
должны быть включены в проект для работоспособности модуля в данном
проекте.
6.3 Описание функций, реализующих интефейс с модулем в следующем виде:
6.3.1 Прототип (тип название (список параметров))
6.3.2 Краткое описание назначение функции в текстовом виде, например
//extern char add_timer_proc(long time,long (* time_proc)(long));
Добавляет функцию time_proc в список функций, вызываемых операционной системой.
time - время вызова time_proc с момента добавления в список, также time определяет
периодичность вызова time_proc.
Возвращает ненулевое значение в случае успешного добавления функции, возвращает
нулевое значение в случае нехватки памяти для добавления функции.
Вызываемой функции time_proc передается установленное значение периодичности
вызова. Функция time_proc должна возвращать значение времени(периодичности),
через которое необходимо осуществить следующий вызов, или ноль, в случае отсутствия
необходимости изменять установленную периодичность вызова.
//6.3.3 Если есть какие-либо особенности работы с функцией, то их
необходимо указать:
//НЕ РЕКОМЕНДУЕТСЯ добавлять функцию повторно, если она не была до этого удалена
при помощи del_timer_proc. Т.е. для того чтобы изменить периодичность вызова
какой либо функции ее необходимо сначала удалить, а затем добавить с установкой
новой периодичности вызова.
Объем выделяемой памяти под одну функцию, байт 10.
//6.3.4 ОБЯЗАТЕЛЬНО пример использования функции
//Пример:
long proc1(long time)
{
printf("Через 1 секунду");
return(0);
}
long proc2(long time)
{
printf("Первый через 1 секунду, последующие через 2 секунды");
return(200);
}
if(!add_timer_proc(100,proc1)) printf("нет памяти под proc1");
if(!add_timer_proc(100,proc2)) printf("нет памяти под proc2");
....
//7. Исходники и описание функций модуля кладутся в общую папку (в вашем
случае на FTP) со свойством "отладочный", работа над модулем считается
завершенной и составитель готов принять следующее задание.
8. Через некоторое время после применеия модуля и подтверждения его
работоспособности с него снимается свойство "отладочный".
9. В случае сбоев при работе функций модуля, несовпадения функций реализуемых
модулем с их описанием
(от составителя модуля), или с ТЗ, за исправление ошибок берется составитель
модуля. В случае отказа, или покидания группы отладка модуля (описание
ТЗ готового модуля, список обнаруженных глюков, язык программирования)
выставляется на конкурс.
В заключении.
В дальнейшем происходит накопление базы данных
работоспособных модулей, которые можно применить в других проектах.
Желаю удачи в ваших начинаниях Albert (AAE).