недо-оська для AVR

8-битные микроконтроллеры AVR (AT90, ATtiny, ATmega) от Atmel (в настоящий момент принадлежит Microchip)

Moderator: Shaos

SfS
Doomed
Posts: 491
Joined: 16 Apr 2005 22:35
Location: Томск

недо-оська для AVR

Post by SfS »

В общем залил ОС. Ее рабочее название AvrOS_1.

http://nedopc.org/nedopc/upload/NedoPC- ... S.v0.1.zip

Документация в каталоге doc/AvrOS_1.html. Она весьма неполная, зато с примерами.

Залитая ОС проверена с платой, которая теперь переименована в NedoAVR-90.8535. Так что все должно компилиться и работать.

Для работы ОС требуется (это то, чем пользуюсь я):

- Плата NedoAVR-90.8535.
- avr-gcc (GCC) 3.3.1 (но и на 2.96 вроде работает)
- avr-libc 1.0.4.

Помимо прочего, в ОС включены модули поддержки устройств, не имеющихся на плате NedoAVR-90.8535. Описание работы с этими модулями так же постараюсь сделать в будущем, но пока не знаю когда.

Все вопросы по непоняткам и траблам задавайте здесь.

Так же могу добавить, что я писал данную ОС для управления реальным технологическим оборудованием по очистке воды. Оборудование стоит и работает уже около трех лет, так что ОС рабочая, а не просто игрушка)))
SfS
Doomed
Posts: 491
Joined: 16 Apr 2005 22:35
Location: Томск

Post by SfS »

Кстати - вместо того, чтобы ругать схему (которая хоть и работает, но еще "в процессе"), поругайте недооську для AVRок которую я выложил тут http://nedopc.org/nedopc/upload/NedoPC- ... S.v0.1.zip

Это мне было бы гораздо нужнее.
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

SfS wrote:Кстати - вместо того, чтобы ругать схему (которая хоть и работает, но еще "в процессе"), поругайте недооську для AVRок которую я выложил тут http://nedopc.org/nedopc/upload/NedoPC- ... S.v0.1.zip

Это мне было бы гораздо нужнее.
Выглядит вполне занимательно :)
Я тут за главного - если что шлите мыло на me собака shaos точка net
SfS
Doomed
Posts: 491
Joined: 16 Apr 2005 22:35
Location: Томск

Post by SfS »

Поправил НодоОську и описание к ней.
Удалил ненужные пока модули. Добавил автоподключение модулей при компиляции. Оттестировал таймер и COM-порт.

Лежит тут. http://nedopc.org/nedopc/upload/NedoPC- ... v0.1.1.zip

В каталоге ../doc - описание и последний вариант схемы.

До понедельника можете разводить критику.
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

SfS wrote:Поправил НодоОську и описание к ней.
Удалил ненужные пока модули. Добавил автоподключение модулей при компиляции. Оттестировал таймер и COM-порт.

Лежит тут. http://nedopc.org/nedopc/upload/NedoPC- ... v0.1.1.zip

В каталоге ../doc - описание и последний вариант схемы.

До понедельника можете разводить критику.
Описание с расширением .sxw? Кем читать? ;)
Я тут за главного - если что шлите мыло на me собака shaos точка net
SfS
Doomed
Posts: 491
Joined: 16 Apr 2005 22:35
Location: Томск

Post by SfS »

Shaos wrote:
Описание с расширением .sxw? Кем читать? ;)
О мама мия ! Простите - сконвертировать забыл в html.
.sxw - документ OpenOffice.

Сконвертировал, выложил.

http://nedopc.org/nedopc/upload/NedoPC- ... v0.1.2.zip

Там и html и sxw.
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

SfS wrote:
Shaos wrote:
Описание с расширением .sxw? Кем читать? ;)
О мама мия ! Простите - сконвертировать забыл в html.
.sxw - документ OpenOffice.

Сконвертировал, выложил.

http://nedopc.org/nedopc/upload/NedoPC- ... v0.1.2.zip

Там и html и sxw.
Интересно! Предложение автору - написать простую доку где описывались бы программные и аппаратные средства для работы с девайсом (например мне интересно как и чем собирать AVROS и чем программировать железяку).
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

SfS wrote:Кстати - вместо того, чтобы ругать схему (которая хоть и работает, но еще "в процессе"), поругайте недооську для AVRок которую я выложил тут http://nedopc.org/nedopc/upload/NedoPC- ... S.v0.1.zip

Это мне было бы гораздо нужнее.
Имя AVROS кстати занято под гнушную оську для авров:

http://www.cdf.toronto.edu/~g2justin/avros.html

Если SfS является единственным автором предлагаемого программного продукта, то может переименовать оську в AVROSfS? :)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Собрал недо-оську изменив одну строчку в Makefile:
AVR-INC= -I. --include avr/io.h --include avr/ina90.h --include system/sysdef.h
и создав линк avr ссылающийся на /usr/local/avr/include
Я тут за главного - если что шлите мыло на me собака shaos точка net
SfS
Doomed
Posts: 491
Joined: 16 Apr 2005 22:35
Location: Томск

Post by SfS »

Shaos wrote:
Имя AVROS кстати занято под гнушную оську для авров:

http://www.cdf.toronto.edu/~g2justin/avros.html

Если SfS является единственным автором предлагаемого программного продукта, то может переименовать оську в AVROSfS? :)
Зачем ? То AVROS называется, а это NedoPC-90.AVROS - помоему очень отличные названия)
SfS
Doomed
Posts: 491
Joined: 16 Apr 2005 22:35
Location: Томск

Post by SfS »

Shaos wrote:Собрал недо-оську изменив одну строчку в Makefile:
AVR-INC= -I. --include avr/io.h --include avr/ina90.h --include system/sysdef.h
и создав линк avr ссылающийся на /usr/local/avr/include
Дело в том, что я не в /usr/local/include ставил прогу, а в /usr/include (из ALT-Linux - там кросссредства для AVR идут в дистрибе)

поэтому нужна ссылка.


Собрать то ты ее собрал. А работает ли ?
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

SfS wrote:
Shaos wrote:Собрал недо-оську изменив одну строчку в Makefile:
AVR-INC= -I. --include avr/io.h --include avr/ina90.h --include system/sysdef.h
и создав линк avr ссылающийся на /usr/local/avr/include
Дело в том, что я не в /usr/local/include ставил прогу, а в /usr/include (из ALT-Linux - там кросссредства для AVR идут в дистрибе)

поэтому нужна ссылка.

Собрать то ты ее собрал. А работает ли ?
Получились два файла:

main.hex

Code: Select all

:1000000010C02BC02AC029C028C027C026C025C0C8
:1000100024C02EC022C021C020C01FC01EC01DC0D1
:100020001CC011241FBE20E0A89521BD20E025BFE3
:10003000ECE3F4E0A0E6B0E020E003C0C895319620
:100040000D92A236B207D1F7A2E6B0E020E001C0DF
:100050001D92AC36B207E1F7E0C100C0189581E00F
:1000600083BF89B7816089BF88B7816088BF0895E1
:100070001F920F920FB60F9211242F933F934F931D
:100080005F936F937F938F939F93AF93BF93CF9320
:10009000EF93FF938091650090916600009729F09F
:1000A0000197909366008093650080916500909120
:1000B0006600892BB1F180916200909163000097F6
:1000C00029F0019790936300809362008091620011
:1000D00090916300892B69F582E19AE79093630020
:1000E000809362004BD180916400882319F0815085
:1000F00080936400809164008823D9F4CCE3C0939A
:1001000064004DD180916700882319F0815080935D
:10011000670080916700882361F4C093670050D125
:1001200008C085E39CE0909366008093650014D13D
:10013000C2CFFF91EF91CF91BF91AF919F918F91DE
:100140007F916F915F914F913F912F910F900FBED3
:100150000F901F90189580E090E02DD080E090E007
:1001600035D01EBC000000001FBC00000000089538
:1001700083E88FBD000000001DBC000000001CBC17
:100180000000000081E08EBD0000000081B38063AC
:1001900081BB00000000089580E090E00CD080E07A
:1001A00090E014D01EBC0000000081B38F7C81BBA6
:1001B000000000000895282F392F832F99278BBD29
:1001C000000000002ABD000000000895282F392FEC
:1001D000832F992789BD0000000028BD0000000082
:1001E00008958BB38D618D7F8BBB000000008AB3B7
:1001F0008F618ABB0000000014BA0000000008955F
:10020000282F392F8BB385608BBB0000000025BBE6
:10021000000000008FEF84BB000000008BB3826001
:100220008BBB000000008BB38D7F8BBB00000000F8
:1002300014BA000000008BB3876F8BBB0000000076
:1002400085B3982F8BB388608BBB00000000892F8B
:1002500099270895282F392F8BB38A6F8BBB000005
:10026000000025BB000000008FEF84BB00000000F1
:100270008BB382608BBB000000008BB38D7F8BBB88
:100280000000000014BA000000008BB3876F8BBB26
:100290000000000085B3982F8BB389608BBB0000F2
:1002A0000000892F99270895282F392F8BB3856057
:1002B0008BBB0000000025BB000000008FEF84BB5B
:1002C000000000008BB382608BBB000000008BB38A
:1002D0008D7F8BBB0000000065BB000000008BB36E
:1002E0008F6E8BBB000000008BB380618BBB000066
:1002F000000014BA000000000895282F392F8BB396
:100300008A6F8BBB0000000025BB000000008FEF50
:1003100084BB000000008BB382608BBB0000000038
:100320008BB38D7F8BBB0000000065BB000000001D
:100330008BB38F6E8BBB000000008BB380618BBBD7
:100340000000000014BA000000008BB381608BBB7A
:1003500000000000089508951F9380916B0088238A
:1003600049F481E080936B001FB77894F4DF1FBFDE
:1003700010926B001F91089538D008951F938091BB
:100380006900882349F481E0809369001FB778945D
:10039000F3DF1FBF109269001F91089508951F9306
:1003A00080916800882349F481E0809368001FB73A
:1003B0007894F4DF1FBF109268001F91089508958C
:1003C0001F9380916A00882349F481E080936A003A
:1003D0001FB77894F4DF1FBF10926A001F91089531
:1003E0003EDEB9DEFEDE78940895809160009927A4
:1003F00087FD9095880F991F8093600080311CF0D5
:1004000081E08093600098B39F6080916000809548
:10041000982398BB000000000895CFE5D2E0DEBF2E
:10042000CDBFDEDF88B38F6088BB0000000087B3DC
:0C0430008F6087BB00000000FFCFFFCFF3
:02043C000100BD
:00000001FF
main.map:

Code: Select all

Allocating common symbols
Common symbol       size              file

_1mvar              0x1               rtl/rtl.o
TIMER_1sec          0x2               hl/hl.o
_1svar              0x1               rtl/rtl.o
_1hvar              0x1               rtl/rtl.o
_100msvar           0x1               rtl/rtl.o
TIMER_1min          0x1               hl/hl.o
TIMER_100ms         0x2               hl/hl.o
TIMER_1hour         0x1               hl/hl.o

Memory Configuration

Name             Origin             Length             Attributes
text             0x00000000         0x00002000         xr
data             0x00800060         0x00000200         rw !x
eeprom           0x00810000         0x00000200         rw !x
*default*        0x00000000         0xffffffff

Linker script and memory map

LOAD /usr/local/lib/gcc-lib/avr/3.2.3/../../../../avr/lib/crts8535.o
LOAD hl/hl.o
LOAD rtl/rtl.o
LOAD osl/osl.o
LOAD upl/upl.o
LOAD /usr/local/lib/gcc-lib/avr/3.2.3/libgcc.a
LOAD /usr/local/lib/gcc-lib/avr/3.2.3/../../../../avr/lib/libc.a
LOAD /usr/local/lib/gcc-lib/avr/3.2.3/libgcc.a

.hash
 *(.hash)

.dynsym
 *(.dynsym)

.dynstr
 *(.dynstr)

.gnu.version
 *(.gnu.version)

.gnu.version_d
 *(.gnu.version_d)

.gnu.version_r
 *(.gnu.version_r)

.rel.init
 *(.rel.init)

.rela.init
 *(.rela.init)

.rel.text
 *(.rel.text)
 *(.rel.text.*)
 *(.rel.gnu.linkonce.t*)

.rela.text
 *(.rela.text)
 *(.rela.text.*)
 *(.rela.gnu.linkonce.t*)

.rel.fini
 *(.rel.fini)

.rela.fini
 *(.rela.fini)

.rel.rodata
 *(.rel.rodata)
 *(.rel.rodata.*)
 *(.rel.gnu.linkonce.r*)

.rela.rodata
 *(.rela.rodata)
 *(.rela.rodata.*)
 *(.rela.gnu.linkonce.r*)

.rel.data
 *(.rel.data)
 *(.rel.data.*)
 *(.rel.gnu.linkonce.d*)

.rela.data
 *(.rela.data)
 *(.rela.data.*)
 *(.rela.gnu.linkonce.d*)

.rel.ctors
 *(.rel.ctors)

.rela.ctors
 *(.rela.ctors)

.rel.dtors
 *(.rel.dtors)

.rela.dtors
 *(.rela.dtors)

.rel.got
 *(.rel.got)

.rela.got
 *(.rela.got)

.rel.bss
 *(.rel.bss)

.rela.bss
 *(.rela.bss)

.rel.plt
 *(.rel.plt)

.rela.plt
 *(.rela.plt)

.text           0x00000000      0x43c
 *(.init)
 .init          0x00000000       0x22 /usr/local/lib/gcc-lib/avr/3.2.3/../../../../avr/lib/crts8535.o
 *(.progmem.gcc*)
 *(.progmem*)
                0x00000022                . = ALIGN (0x2)
 *(.text)
 .text          0x00000022       0x3c /usr/local/lib/gcc-lib/avr/3.2.3/../../../../avr/lib/crts8535.o
                0x0000005a                _vector_4
                0x0000005a                _vector_6
                0x0000005a                _vector_14
                0x0000005a                _vector_7
                0x0000005a                _vector_8
                0x0000005a                _vector_16
                0x00000022                _init_
                0x0000005a                _vector_12
                0x0000005a                _vector_13
                0x0000005a                _vector_3
                0x0000005c                _unexpected_
                0x0000005a                _vector_2
                0x0000005a                _vector_10
                0x0000005a                _vector_5
                0x0000005a                _vector_1
                0x0000005a                _vector_15
                0x00000022                _real_init_
                0x0000005a                _vector_11
 .text          0x0000005e      0x2f8 hl/hl.o
                0x00000070                _vector_9
                0x000001e2                ni_15_init
                0x00000156                pwm_init
                0x000002a8                ni_15_wrmem
                0x000001b6                pwm_set_A
                0x0000005e                timer0_init
                0x00000198                pwm_stop
                0x00000254                ni_15_rdio
                0x00000200                ni_15_rdmem
                0x000001cc                pwm_set_B
                0x000002fa                ni_15_wrio
                0x00000170                pwm_start
 .text          0x00000356       0x8a rtl/rtl.o
                0x00000378                _1s
                0x0000039c                _1m
                0x00000356                _100ms
                0x00000358                task_100ms
                0x0000039e                task_1m
                0x000003be                _1h
                0x000003c0                task_1h
                0x0000037c                task_1s
 .text          0x000003e0       0x5c upl/upl.o
                0x000003e0                AUTOINIT_ALL_MODULES
                0x000003ea                ttask_leds_shift
                0x0000041a                main
                0x0000043c                . = ALIGN (0x2)
 *(.text.*)
                0x0000043c                . = ALIGN (0x2)
 *(.fini)
                0x0000043c                _etext = .

.data           0x00800060        0x2 load address 0x0000043c
                0x00800060                PROVIDE (__data_start, .)
 *(.data)
 .data          0x00800060        0x1 upl/upl.o
                0x00800060                sled
 *(.gnu.linkonce.d*)
                0x00800062                . = ALIGN (0x2)
 *fill*         0x00800061        0x1 00
                0x00800062                _edata = .

.bss            0x00800062        0xa
                0x00800062                PROVIDE (__bss_start, .)
 *(.bss)
 *(COMMON)
 COMMON         0x00800062        0x6 hl/hl.o
                                  0x0 (size before relaxing)
                0x00800062                TIMER_1sec
                0x00800064                TIMER_1min
                0x00800065                TIMER_100ms
                0x00800067                TIMER_1hour
 COMMON         0x00800068        0x4 rtl/rtl.o
                                  0x0 (size before relaxing)
                0x00800068                _1mvar
                0x00800069                _1svar
                0x0080006a                _1hvar
                0x0080006b                _100msvar
                0x0080006c                PROVIDE (__bss_end, .)
                0x0080006c                _end = .

.eeprom         0x00810000        0x0 load address 0x0000043e
 *(.eeprom*)
                0x00810000                __eeprom_end = .

.stab           0x00000000     0x1e78
 *(.stab)
 .stab          0x00000000      0x3cc /usr/local/lib/gcc-lib/avr/3.2.3/../../../../avr/lib/crts8535.o
 .stab          0x000003cc      0xffc hl/hl.o
                               0x1008 (size before relaxing)
 .stab          0x000013c8      0x4a4 rtl/rtl.o
                                0x60c (size before relaxing)
 .stab          0x0000186c      0x234 osl/osl.o
                                0x39c (size before relaxing)
 .stab          0x00001aa0      0x3d8 upl/upl.o
                                0x540 (size before relaxing)

.stabstr        0x00000000      0xbdb
 *(.stabstr)
 .stabstr       0x00000000      0xbdb /usr/local/lib/gcc-lib/avr/3.2.3/../../../../avr/lib/crts8535.o
                                  0x0 (size before relaxing)

.stab.excl
 *(.stab.excl)

.stab.exclstr
 *(.stab.exclstr)

.stab.index
 *(.stab.index)

.stab.indexstr
 *(.stab.indexstr)

.comment
 *(.comment)

.debug
 *(.debug)

.line
 *(.line)

.debug_srcinfo
 *(.debug_srcinfo)

.debug_sfnames
 *(.debug_sfnames)

.debug_aranges
 *(.debug_aranges)

.debug_pubnames
 *(.debug_pubnames)

.debug_info
 *(.debug_info)
 *(.gnu.linkonce.wi.*)

.debug_abbrev
 *(.debug_abbrev)

.debug_line
 *(.debug_line)

.debug_frame
 *(.debug_frame)

.debug_str
 *(.debug_str)

.debug_loc
 *(.debug_loc)

.debug_macinfo
 *(.debug_macinfo)
                0x0000025f                PROVIDE (__stack, 0x25f)
OUTPUT(main.out elf32-avr)
Работоспособность проверю после того как соберу девайс :)
Last edited by Shaos on 07 May 2005 06:15, edited 1 time in total.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

SfS wrote:
Shaos wrote:
Имя AVROS кстати занято под гнушную оську для авров:

http://www.cdf.toronto.edu/~g2justin/avros.html

Если SfS является единственным автором предлагаемого программного продукта, то может переименовать оську в AVROSfS? :)
Зачем ? То AVROS называется, а это NedoPC-90.AVROS - помоему очень отличные названия)
Ааа - ну это совсем другое дело :)
Я тут за главного - если что шлите мыло на me собака shaos точка net