nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 08:07



Reply to topic  [ 38 posts ]  Go to page Previous  1, 2, 3  Next
Новая версия NedoPC-90.AVROS 
Author Message
Doomed

Joined: 16 Apr 2005 22:35
Posts: 492
Location: Томск
Reply with quote
Post 
Shaos wrote:
Можно сделать один общий файл, например system/defs.h в котором будут написаны все разрешающие дефайны (закомментированные и раскомментированные), который будет инклудиться в каждый файл каталога system - в нем же можно будет обрабатывать условные варианты, типа для индикатора нужен NI-15 и т.д.


Можно конечно. Короче хочешь автоматом зависимости обрабатывать ? Я пока продумываю этот вариант. Но для конфига каждого отдельного устройства (адреса портов, режимы работы и т.п.) лучше иметь отдельный файл. Удобнее искать.

Наверное сделаю так. Структуру каталога system оставлю неизменной. Просто добавлю некий файл с описанием зависимостей, чтобы он при надобности включал то, чего не хватает. Подумаю и рожу чтонибудь.


19 Jul 2005 23:01
Profile
Doomed

Joined: 16 Apr 2005 22:35
Posts: 492
Location: Томск
Reply with quote
Post 
Итак - новая версия! NedoPC-90.AVROS.v0.1.4.

Лежит все тут же: http://www.nedopc.org/nedopc/upload/NedoPC-90.AVROS.v0.1.4.tar.bz2
Версия оттестирована на AT90S8535 и ATMega128. При тестировании на ATMega128 была сохранена совместимость по ногам с интерфейсом NI-15. То есть теперь можно в модуль NedoPC-90.8535 смело втыкать ATmega128. Все будет пахать. Новый модуль назовем, скажем NedoPC-90.m128.

Состав модуля:
- центральный процессор - ATmega128.
- интерфейс NI-15. (через него цепляется, например, индикатор WP1602 как я писал ранее).
- порт RS232-0.
- порт RS232-1.(*)
- флешка AT45DB081 (1Mбайт) (*), цепляется по SPI.
- Матричная клавиатура 4х4 (16 кнопок)(*).

* - новое по сравнению с модулем NedoPC-90.8535.

Список изменений в NedoPC-90.AVROS.v0.1.4 по сравнению с NedoPC-90.AVROS.v0.1.3:

1. Добавлена возможность использования стандартными функциями printf() для печати на индикатор WP1602 (см. файл ../upl/main.c - там для этого надо раскомментировать две строчки).

2. Прддержка SPI-интерфейса. Файлы ../system/res_spi.h ../hl/spi.c ../hl/spi.h

3. Поддержка работы с FLASHкой AT45DB081. Файлы ../system/res_at45db081.h ../hl/at45db081.c ../hl/at45db081.h

4. Поддержка работы с клавиатурой (цепляется в моей версии на порт F, но можно конечно переопределить). Файлы ../system/res_key16.h ../hl/key16.c ../hl/key16.h

5. Добавлена поддержка второго UARTа. Теперь можно одновременно использовать UART0 и UART1. Настройки для каждого - абсолютно независимы, но находятся все в одном файле ../system/res_uart.h
Так же (поскольку UARTа теперь два) файл ../hl/uart.с превратился в два файла ../hl/uart0.с ../hl/uart1.с, файл ../hl/uart.h превратился в два файла ../hl/uart0.h ../hl/uart1.h.

6. Появился каталог ../fuses/
В нем хранятся файлы для тех процессоров, которые при стандартных fuse-битах не могут полноценно работать. Файлы с fuse-битами должные иметь имя ../fuses/fuse_<имя процессора>.hex. Если файл для процессора отсутствует, то fuse-биты не изменяются при программировании.

Ну вот вроде и все. Пользуйтесь, однако :)


18 Sep 2005 19:09
Profile
God
User avatar

Joined: 29 Dec 2003 01:00
Posts: 1101
Location: Москва
Reply with quote
Post 
Интересная сцылка http://cbsie.narod.ru/.
Видимо бывшие спектрумисяты на AVRах отрываются - оси пишут :).


09 Oct 2005 05:57
Profile ICQ WWW
Doomed

Joined: 16 Apr 2005 22:35
Posts: 492
Location: Томск
Reply with quote
Post 
CHRV wrote:
Видимо бывшие спектрумисяты на AVRах отрываются - оси пишут :).


Ну я точно не с "отрыва" начал - по работе для авр-ок приходилось много писать. Все это пришло в некоторую систему, которую я потом причесал в единообразный вид и получилось нечто вроде ОС. В работе мне это помогало довольно сильно. Теперь я аврками по работе почти не знаимаюсь... Но не пропадать же коду ? Да и мне интересно поучавствовать в создании модулей типа того, что обсуждается в соседней теме.


09 Oct 2005 18:31
Profile
Doomed

Joined: 16 Apr 2005 22:35
Posts: 492
Location: Томск
Reply with quote
Обновил линукс (у меня ALT стоит) и вместе с осталными пакетами обновились пакеты для AVR.

В связи с этим выяснилось, что avr-libc-1.2.5 не поддерживает некоторые макросы более старых версий avr-libc. В частности - макросы определенные в ina90.h. Этот файл там есть, но (как я понимаю) только для обратной совместимости и, в будущих версиях, от него скорее всего вообще откажутся.

Сейчас работаю над библиотекой обратной совместимости для того, чтобы NedoPC.AVROS собиралась на библиотеках, не ниже чем avr-libc-1.0.4. Думаю что день-другой на обкатку этого уйдет.

Параллельно пытаюсь освоить 40кнопочную клавиатуру, что прислал мне Shaos. Как все с ней выясню - напишу ее поддержку и выложу новую версию ОС. Ну и схему подключения клавиатуры к 5-вольтовым цепям заодно.

Правда тяжелый рок вчера скинул на меня новое испытание - сломавшийся смеситель в ванной и еще коечто из сантехники - так что придется наверное пол-вечера на починку потратить. Но это мелочи. Главное - процесс ползет.


06 Dec 2005 19:18
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
SfS wrote:
Обновил линукс (у меня ALT стоит) и вместе с осталными пакетами обновились пакеты для AVR.

В связи с этим выяснилось, что avr-libc-1.2.5 не поддерживает некоторые макросы более старых версий avr-libc. В частности - макросы определенные в ina90.h. Этот файл там есть, но (как я понимаю) только для обратной совместимости и, в будущих версиях, от него скорее всего вообще откажутся.

Сейчас работаю над библиотекой обратной совместимости для того, чтобы NedoPC.AVROS собиралась на библиотеках, не ниже чем avr-libc-1.0.4. Думаю что день-другой на обкатку этого уйдет.

Параллельно пытаюсь освоить 40кнопочную клавиатуру, что прислал мне Shaos. Как все с ней выясню - напишу ее поддержку и выложу новую версию ОС. Ну и схему подключения клавиатуры к 5-вольтовым цепям заодно.

Правда тяжелый рок вчера скинул на меня новое испытание - сломавшийся смеситель в ванной и еще коечто из сантехники - так что придется наверное пол-вечера на починку потратить. Но это мелочи. Главное - процесс ползет.


И это замечательно! :)

_________________
:dj: https://mastodon.social/@Shaos


06 Dec 2005 20:15
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Post 
SfS wrote:
Shaos wrote:
Вот задаю я запуск разных задач по графику времен на разных уровнях - чем принципиально отличаются /upl/rtl_mac.h, rtl/hl_mac.h и osl/rtl_mac.h?


Почти ничем, это введено скорее для удобства. НО! В файле /upl/rtl_mac.h есть макросы типа T_INT_MAX_xx, которые вешают на прерывание процедуру, которая вызывыается с максимальной частотой (обычно - 1/256) тактовой. Минимальная же дискретность других уровней - 100мс.

Shaos wrote:
Если конец одной задачи заползает на начало другой, она прервется? Или это зависит от уровня задачи, которая должна будет выполнится в этот момент?


Нет. Задачи одинаковые, по периоду вызова - равноправны. Но сущестыует защита от повторного вхождения. И еще - более быстрые задачи прерывают более медленные.


Странно ведёт себя счётчик прицепленный к 100 мс прерыванию - если программа крутится в цикле с getch и printf, то вроде считает правильно, а если программа крутится в циклах где одна арифметика создаётся ощущение, что счётчик вообще не вызывается - многозадачность чтоли кооперативная?

_________________
:dj: https://mastodon.social/@Shaos


07 Mar 2007 23:58
Profile WWW
Doomed

Joined: 16 Apr 2005 22:35
Posts: 492
Location: Томск
Reply with quote
Post 
Shaos wrote:
Странно ведёт себя счётчик прицепленный к 100 мс прерыванию - если программа крутится в цикле с getch и printf, то вроде считает правильно, а если программа крутится в циклах где одна арифметика создаётся ощущение, что счётчик вообще не вызывается - многозадачность чтоли кооперативная?


Как таковой "многозадачности" там вообще нет.
Просто в процедуре обработки прерывания таймера стоят счётчики. Они отсчитывают 100мс, 1с и так далее. И как отсчитают - вызывают процедуры (если они определены дефайнами). Так что любая очень длинная по времени процедура может завалить программу.

Вешать обильную арифметику (особенно с плавающей точкой) в перывание вообще не стоит в этой системе. Лучше выставлять флаги и обрабатывать объёмные вычисления в основном цикле.


19 Jun 2007 21:56
Profile
Doomed

Joined: 16 Apr 2005 22:35
Posts: 492
Location: Томск
Reply with quote
Post 
После долгих и мучительный страданий от сгорания платы, решил выложить поправленную версию:

NedoPC-90.AVROS.v0.1.7

http://www.nedopc.org/nedopc/upload/NedoPC-90.AVROS.v0.1.7.tar.bz2

Список поддерживаемых (то есть протестированных) устройств и модулей:

-------------------------------------------------------------------------------
Поддерживаемые контроллеры (на которых тестировалась система):

AT90S8535
AT90S8515
ATiny2313
ATMega8515
ATMega8535
ATMega128
-------------------------------------------------------------------------------
Поддержка устройств:
-------------------------------------------------------------------------------
Встроенные:
TC0, TC1 (таймеры-счётчики)
UART0, UART1 (RS232)
PWM (ШИМ)
SPI (мастер)
I2C (мастер)
INT0 (прерывание)
ADC (АЦП)
EXTMEM (Контроллер внешнего ОЗУ)
-------------------------------------------------------------------------------
Внешние (имена модулей):
at45db081 (флеш 1Мбайт, через SPI).

key16 (матричная клавиатура 16 кнопок, подключается к встроенному
порту ввода-вывода).

keypad40 (40-кнопочная клавиатура от Shaos'a, выход - последовательный,
9600.
Может работать как с программным UART (используется TC1 и
INT0), так и с аппаратным UART на 9600).

ni_15 (шина NI-15. Работает с шиной, расположенной в адресном
пространстве внешней памяти с помощью модуля extmem или
эмулирует шину NI-15 с помощью встроенных портов ввода-вывода).

wp1602_ni15 (индикатор текстовый 2х16 символов, работает по шине NI-15).
-------------------------------------------------------------------------------
Модули аппаратно-независимые (или почти независимые :-) :
editor (строка редактирования, тестировалась на терминале и wp1602_ni15).
menu (меню, тестировалось на терминале и wp1602_ni15).
mlan и mlans (однопроводный интерфейс, мастер и слэйв соответственно.
ЭТО НЕ MICROLAN!!! Времянки - другие!
Но позволяет связываться по 5вольтовой линии метров на 200.).
-------------------------------------------------------------------------------


19 Jun 2007 22:57
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Post 
Круто! Будем смотреть...

_________________
:dj: https://mastodon.social/@Shaos


20 Jun 2007 04:07
Profile WWW
Novelist

Joined: 08 Dec 2008 14:08
Posts: 39
Location: Finland
Reply with quote
Post 
А на чем вы запускаете эту недоОСЬ? В смысле - что за платформа? Или на бредовой доске что-то собрано?


10 Dec 2008 15:24
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Post 
Freshman wrote:
А на чем вы запускаете эту недоОСЬ? В смысле - что за платформа? Или на бредовой доске что-то собрано?


Я вот на этом запускал:

Image

_________________
:dj: https://mastodon.social/@Shaos


12 Dec 2008 05:48
Profile WWW
Novelist

Joined: 08 Dec 2008 14:08
Posts: 39
Location: Finland
Reply with quote
Post 
Понятно. А на Atmega32 пойдет?


13 Dec 2008 09:22
Profile
Novelist

Joined: 08 Dec 2008 14:08
Posts: 39
Location: Finland
Reply with quote
Post 
В связи с вялотекущим проектом (переделка игрушки сына - "тупого робота" в робота продвинутого - на сервоприводах) мне нужна многозадачная ОСь, как можно проще. Что можете посоветовать?


13 Dec 2008 09:32
Profile
Doomed

Joined: 16 Apr 2005 22:35
Posts: 492
Location: Томск
Reply with quote
Post 
Freshman wrote:
В связи с вялотекущим проектом (переделка игрушки сына - "тупого робота" в робота продвинутого - на сервоприводах) мне нужна многозадачная ОСь, как можно проще. Что можете посоветовать?


Если нет привязки к AVR, то лучше глянь тему про ARM. NedoPC.ARMOS - предназначена для серии AT91SAM7xx.

http://www.nedopc.org/forum/viewtopic.php?t=8824

Цена от жирных АВРок не отличается существенно, но встроенные 64К ОЗУ, 256К флешки, десятки МГЦ и куча ног - это преимущества.
Ну и плюс там у меня многозадачность сделана гораздо лучше. Есть таймеры, блокировки и прочее.

В общем - гораздо приятнее программировать, чем AVROS.


02 Jan 2009 19:42
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 38 posts ]  Go to page Previous  1, 2, 3  Next

Who is online

Users browsing this forum: No registered users and 7 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.