/programy/C/DSC/test/test/main.c |
---|
0,0 → 1,20 |
/* metrowerks sample code */ |
int main(void) |
{ |
int a=0, b = 3, c = 0; |
a++; |
c = a +b; |
return 0; |
} |
/programy/C/PIC_C/test/C16F873/blik/main.c |
---|
20,12 → 20,12 |
{ |
output_c(ble++); |
delay_ms(100); |
/* |
Output_high(PIN_B2); |
Delay_ms(100); |
Output_low(PIN_B2); |
Delay_ms(100); |
*/ |
} |
} |
/programy/C/PIC_C/test/C16F876A/blik/blik.PJT |
---|
10,7 → 10,7 |
LinkerScript= |
[Target Data] |
FileList=D:\KAKLIK\projekty\programy\PIC_C\test\C16F876A\blik\blik.c |
FileList=D:\KAKLIK\projekty\programy\C\PIC_C\test\C16F876A\blik\blik.c |
BuildTool=C-COMPILER |
OptionString=+FM |
AdditionalOptionString= |
35,4 → 35,4 |
2= |
[Units] |
Count=1 |
1=D:\KAKLIK\projekty\programy\PIC_C\test\C16F876A\blik\blik.c (main) |
1=D:\KAKLIK\projekty\programy\C\PIC_C\test\C16F876A\blik\blik.c (main) |
/programy/C/PIC_C/test/C16F876A/blik/blik.cof |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/programy/C/PIC_C/test/C16F876A/blik/blik.lst |
---|
1,6 → 1,6 |
CCS PCM C Compiler, Version 3.245, 27853 23-II-07 18:50 |
CCS PCM C Compiler, Version 3.245, 27853 29-VI-08 23:25 |
Filename: D:\KAKLIK\projekty\programy\PIC_C\test\C16F876A\blik\blik.lst |
Filename: D:\KAKLIK\projekty\programy\C\PIC_C\test\C16F876A\blik\blik.lst |
ROM used: 114 words (1%) |
Largest free fragment is 2048 |
/programy/C/PIC_C/test/C16F876A/blik/blik.sta |
---|
10,8 → 10,8 |
Lines Stmts % Files |
----- ----- --- ----- |
25 14 100 D:\KAKLIK\projekty\programy\PIC_C\test\C16F876A\blik\blik.c |
16 0 0 D:\KAKLIK\projekty\programy\PIC_C\test\C16F876A\blik\blik.h |
25 14 100 D:\KAKLIK\projekty\programy\C\PIC_C\test\C16F876A\blik\blik.c |
16 0 0 D:\KAKLIK\projekty\programy\C\PIC_C\test\C16F876A\blik\blik.h |
270 0 0 C:\Program Files\PICC\devices\16F876A.h |
----- ----- |
622 28 Total |
/programy/C/PIC_C/test/C16F876A/blik/blik.sym |
---|
21,12 → 21,12 |
0017 @cinit |
Project Files: |
D:\KAKLIK\projekty\programy\PIC_C\test\C16F876A\blik\blik.c |
D:\KAKLIK\projekty\programy\PIC_C\test\C16F876A\blik\blik.h |
D:\KAKLIK\projekty\programy\C\PIC_C\test\C16F876A\blik\blik.c |
D:\KAKLIK\projekty\programy\C\PIC_C\test\C16F876A\blik\blik.h |
C:\Program Files\PICC\devices\16F876A.h |
Units: |
D:\KAKLIK\projekty\programy\PIC_C\test\C16F876A\blik\blik.c (main) |
D:\KAKLIK\projekty\programy\C\PIC_C\test\C16F876A\blik\blik.c (main) |
Compiler Settings: |
Processor: PIC16F876A |
36,10 → 36,10 |
Short,Int,Long: 1,8,16 |
Output Files: |
Errors: D:\KAKLIK\projekty\programy\PIC_C\test\C16F876A\blik\blik.err |
INHX8: D:\KAKLIK\projekty\programy\PIC_C\test\C16F876A\blik\blik.hex |
Symbols: D:\KAKLIK\projekty\programy\PIC_C\test\C16F876A\blik\blik.sym |
List: D:\KAKLIK\projekty\programy\PIC_C\test\C16F876A\blik\blik.lst |
Debug/COFF: D:\KAKLIK\projekty\programy\PIC_C\test\C16F876A\blik\blik.cof |
Call Tree: D:\KAKLIK\projekty\programy\PIC_C\test\C16F876A\blik\blik.tre |
Statistics: D:\KAKLIK\projekty\programy\PIC_C\test\C16F876A\blik\blik.sta |
Errors: D:\KAKLIK\projekty\programy\C\PIC_C\test\C16F876A\blik\blik.err |
INHX8: D:\KAKLIK\projekty\programy\C\PIC_C\test\C16F876A\blik\blik.hex |
Symbols: D:\KAKLIK\projekty\programy\C\PIC_C\test\C16F876A\blik\blik.sym |
List: D:\KAKLIK\projekty\programy\C\PIC_C\test\C16F876A\blik\blik.lst |
Debug/COFF: D:\KAKLIK\projekty\programy\C\PIC_C\test\C16F876A\blik\blik.cof |
Call Tree: D:\KAKLIK\projekty\programy\C\PIC_C\test\C16F876A\blik\blik.tre |
Statistics: D:\KAKLIK\projekty\programy\C\PIC_C\test\C16F876A\blik\blik.sta |
/programy/C/avr/Blik/prg_read_uc |
---|
File deleted |
Property changes: |
Deleted: svn:executable |
-* |
\ No newline at end of property |
/programy/C/avr/Blik/README.txt |
---|
File deleted |
/programy/C/avr/Blik/avrm8ledtest_pre.hex |
---|
File deleted |
/programy/C/avr/Blik/Makefile |
---|
File deleted |
/programy/C/avr/Blik/prg_load_uc |
---|
File deleted |
Property changes: |
Deleted: svn:executable |
-* |
\ No newline at end of property |
/programy/C/avr/Blik/avrm8ledtest.map |
---|
File deleted |
/programy/C/avr/Blik/prg_fusebit_uc |
---|
File deleted |
Property changes: |
Deleted: svn:executable |
-* |
\ No newline at end of property |
/programy/C/avr/Blik/avrm8ledtest.c |
---|
File deleted |
/programy/C/avr/Blik/avrm8ledtest.hex |
---|
File deleted |
/programy/C/avr/Blik/avrm8ledtest.out |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:executable |
-* |
\ No newline at end of property |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/programy/C/avr/tests/ATmega168/blik.aps |
---|
0,0 → 1,0 |
<AVRStudio><MANAGEMENT><ProjectName>blik</ProjectName><Created>27-Apr-2008 12:47:54</Created><LastEdit>27-Apr-2008 12:57:13</LastEdit><ICON>241</ICON><ProjectType>0</ProjectType><Created>27-Apr-2008 12:47:54</Created><Version>4</Version><Build>4, 14, 0, 589</Build><ProjectTypeName>AVR GCC</ProjectTypeName></MANAGEMENT><CODE_CREATION><ObjectFile>default\blik.elf</ObjectFile><EntryFile></EntryFile><SaveFolder>D:\KAKLIK\projekty\programy\C\avr\tests\ATmega168\</SaveFolder></CODE_CREATION><DEBUG_TARGET><CURRENT_TARGET>ICE50</CURRENT_TARGET><CURRENT_PART>ATmega168.xml</CURRENT_PART><BREAKPOINTS></BREAKPOINTS><IO_EXPAND><HIDE>false</HIDE></IO_EXPAND><REGISTERNAMES><Register>R00</Register><Register>R01</Register><Register>R02</Register><Register>R03</Register><Register>R04</Register><Register>R05</Register><Register>R06</Register><Register>R07</Register><Register>R08</Register><Register>R09</Register><Register>R10</Register><Register>R11</Register><Register>R12</Register><Register>R13</Register><Register>R14</Register><Register>R15</Register><Register>R16</Register><Register>R17</Register><Register>R18</Register><Register>R19</Register><Register>R20</Register><Register>R21</Register><Register>R22</Register><Register>R23</Register><Register>R24</Register><Register>R25</Register><Register>R26</Register><Register>R27</Register><Register>R28</Register><Register>R29</Register><Register>R30</Register><Register>R31</Register></REGISTERNAMES><COM>Auto</COM><COMType>0</COMType><WATCHNUM>0</WATCHNUM><WATCHNAMES><Pane0></Pane0><Pane1></Pane1><Pane2></Pane2><Pane3></Pane3></WATCHNAMES><BreakOnTrcaeFull>0</BreakOnTrcaeFull></DEBUG_TARGET><Debugger><Triggers></Triggers></Debugger><AVRGCCPLUGIN><FILES><SOURCEFILE>blik.c</SOURCEFILE><OTHERFILE>default\blik.lss</OTHERFILE><OTHERFILE>default\blik.map</OTHERFILE></FILES><CONFIGS><CONFIG><NAME>default</NAME><USESEXTERNALMAKEFILE>NO</USESEXTERNALMAKEFILE><EXTERNALMAKEFILE></EXTERNALMAKEFILE><PART>atmega168</PART><HEX>1</HEX><LIST>1</LIST><MAP>1</MAP><OUTPUTFILENAME>blik.elf</OUTPUTFILENAME><OUTPUTDIR>default\</OUTPUTDIR><ISDIRTY>0</ISDIRTY><OPTIONS/><INCDIRS/><LIBDIRS/><LIBS/><LINKOBJECTS/><OPTIONSFORALL>-Wall -gdwarf-2 -std=gnu99 -DF_CPU=8000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums</OPTIONSFORALL><LINKEROPTIONS></LINKEROPTIONS><SEGMENTS/></CONFIG></CONFIGS><LASTCONFIG>default</LASTCONFIG><USES_WINAVR>1</USES_WINAVR><GCC_LOC>C:\Program Files\WinAVR\bin\avr-gcc.exe</GCC_LOC><MAKE_LOC>C:\Program Files\WinAVR\utils\bin\make.exe</MAKE_LOC></AVRGCCPLUGIN><IOView><usergroups/><sort sorted="0" column="0" ordername="0" orderaddress="0" ordergroup="0"/></IOView><Files><File00000><FileId>00000</FileId><FileName>blik.c</FileName><Status>1</Status></File00000></Files><Events><Bookmarks></Bookmarks></Events><Trace><Filters></Filters></Trace></AVRStudio> |
/programy/C/avr/tests/ATmega168/blik.aws |
---|
0,0 → 1,0 |
<AVRWorkspace><IOSettings><CurrentRegisters/></IOSettings><part name="ATMEGA168"/><Files><File00000 Name="D:\KAKLIK\projekty\programy\C\avr\tests\ATmega168\blik.c" Position="216 71 1051 588" LineCol="3 0" State="Maximized"/></Files></AVRWorkspace> |
/programy/C/avr/tests/ATmega168/default/Makefile |
---|
0,0 → 1,75 |
############################################################################### |
# Makefile for the project blik |
############################################################################### |
## General Flags |
PROJECT = blik |
MCU = atmega168 |
TARGET = blik.elf |
CC = avr-gcc.exe |
## Options common to compile, link and assembly rules |
COMMON = -mmcu=$(MCU) |
## Compile options common for all C compilation units. |
CFLAGS = $(COMMON) |
CFLAGS += -Wall -gdwarf-2 -std=gnu99 -DF_CPU=8000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums |
CFLAGS += -MD -MP -MT $(*F).o -MF dep/$(@F).d |
## Assembly specific flags |
ASMFLAGS = $(COMMON) |
ASMFLAGS += $(CFLAGS) |
ASMFLAGS += -x assembler-with-cpp -Wa,-gdwarf2 |
## Linker flags |
LDFLAGS = $(COMMON) |
LDFLAGS += -Wl,-Map=blik.map |
## Intel Hex file production flags |
HEX_FLASH_FLAGS = -R .eeprom |
HEX_EEPROM_FLAGS = -j .eeprom |
HEX_EEPROM_FLAGS += --set-section-flags=.eeprom="alloc,load" |
HEX_EEPROM_FLAGS += --change-section-lma .eeprom=0 --no-change-warnings |
## Objects that must be built in order to link |
OBJECTS = blik.o |
## Objects explicitly added by the user |
LINKONLYOBJECTS = |
## Build |
all: $(TARGET) blik.hex blik.eep blik.lss size |
## Compile |
blik.o: ../blik.c |
$(CC) $(INCLUDES) $(CFLAGS) -c $< |
##Link |
$(TARGET): $(OBJECTS) |
$(CC) $(LDFLAGS) $(OBJECTS) $(LINKONLYOBJECTS) $(LIBDIRS) $(LIBS) -o $(TARGET) |
%.hex: $(TARGET) |
avr-objcopy -O ihex $(HEX_FLASH_FLAGS) $< $@ |
%.eep: $(TARGET) |
-avr-objcopy $(HEX_EEPROM_FLAGS) -O ihex $< $@ || exit 0 |
%.lss: $(TARGET) |
avr-objdump -h -S $< > $@ |
size: ${TARGET} |
@echo |
@avr-size -C --mcu=${MCU} ${TARGET} |
## Clean target |
.PHONY: clean |
clean: |
-rm -rf $(OBJECTS) blik.elf dep/* blik.hex blik.eep blik.lss blik.map |
## Other dependencies |
-include $(shell mkdir dep 2>/dev/null) $(wildcard dep/*) |
/programy/C/avr/tests/ATmega168/default/blik.elf |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/programy/C/avr/tests/ATmega168/default/blik.hex |
---|
0,0 → 1,15 |
:100000000C9434000C944F000C944F000C944F004F |
:100010000C944F000C944F000C944F000C944F0024 |
:100020000C944F000C944F000C944F000C944F0014 |
:100030000C944F000C944F000C944F000C944F0004 |
:100040000C944F000C944F000C944F000C944F00F4 |
:100050000C944F000C944F000C944F000C944F00E4 |
:100060000C944F000C944F0011241FBECFEFD4E02E |
:10007000DEBFCDBF11E0A0E0B1E0E4EDF0E002C0F2 |
:1000800005900D92A030B107D9F711E0A0E0B1E0E2 |
:1000900001C01D92A030B107E1F70C945E000C94F2 |
:1000A00000009C01E0E8F7E005C0CF010197F1F7FF |
:1000B0002150304021153105C1F708953D9A4598EA |
:1000C00082E390E00E945100459A82E390E00E9412 |
:0400D0005100F5CF17 |
:00000001FF |
/programy/C/avr/tests/ATmega168/default/blik.lss |
---|
0,0 → 1,162 |
blik.elf: file format elf32-avr |
Sections: |
Idx Name Size VMA LMA File off Algn |
0 .text 000000d4 00000000 00000000 00000054 2**1 |
CONTENTS, ALLOC, LOAD, READONLY, CODE |
1 .stab 0000036c 00000000 00000000 00000128 2**2 |
CONTENTS, READONLY, DEBUGGING |
2 .stabstr 00000084 00000000 00000000 00000494 2**0 |
CONTENTS, READONLY, DEBUGGING |
3 .debug_aranges 00000020 00000000 00000000 00000518 2**0 |
CONTENTS, READONLY, DEBUGGING |
4 .debug_pubnames 00000028 00000000 00000000 00000538 2**0 |
CONTENTS, READONLY, DEBUGGING |
5 .debug_info 0000013d 00000000 00000000 00000560 2**0 |
CONTENTS, READONLY, DEBUGGING |
6 .debug_abbrev 000000d3 00000000 00000000 0000069d 2**0 |
CONTENTS, READONLY, DEBUGGING |
7 .debug_line 000000fc 00000000 00000000 00000770 2**0 |
CONTENTS, READONLY, DEBUGGING |
8 .debug_frame 00000030 00000000 00000000 0000086c 2**0 |
CONTENTS, READONLY, DEBUGGING |
9 .debug_str 000000dd 00000000 00000000 0000089c 2**0 |
CONTENTS, READONLY, DEBUGGING |
10 .debug_loc 00000028 00000000 00000000 00000979 2**0 |
CONTENTS, READONLY, DEBUGGING |
Disassembly of section .text: |
00000000 <__vectors>: |
0: 0c 94 34 00 jmp 0x68 ; 0x68 <__ctors_end> |
4: 0c 94 4f 00 jmp 0x9e ; 0x9e <__bad_interrupt> |
8: 0c 94 4f 00 jmp 0x9e ; 0x9e <__bad_interrupt> |
c: 0c 94 4f 00 jmp 0x9e ; 0x9e <__bad_interrupt> |
10: 0c 94 4f 00 jmp 0x9e ; 0x9e <__bad_interrupt> |
14: 0c 94 4f 00 jmp 0x9e ; 0x9e <__bad_interrupt> |
18: 0c 94 4f 00 jmp 0x9e ; 0x9e <__bad_interrupt> |
1c: 0c 94 4f 00 jmp 0x9e ; 0x9e <__bad_interrupt> |
20: 0c 94 4f 00 jmp 0x9e ; 0x9e <__bad_interrupt> |
24: 0c 94 4f 00 jmp 0x9e ; 0x9e <__bad_interrupt> |
28: 0c 94 4f 00 jmp 0x9e ; 0x9e <__bad_interrupt> |
2c: 0c 94 4f 00 jmp 0x9e ; 0x9e <__bad_interrupt> |
30: 0c 94 4f 00 jmp 0x9e ; 0x9e <__bad_interrupt> |
34: 0c 94 4f 00 jmp 0x9e ; 0x9e <__bad_interrupt> |
38: 0c 94 4f 00 jmp 0x9e ; 0x9e <__bad_interrupt> |
3c: 0c 94 4f 00 jmp 0x9e ; 0x9e <__bad_interrupt> |
40: 0c 94 4f 00 jmp 0x9e ; 0x9e <__bad_interrupt> |
44: 0c 94 4f 00 jmp 0x9e ; 0x9e <__bad_interrupt> |
48: 0c 94 4f 00 jmp 0x9e ; 0x9e <__bad_interrupt> |
4c: 0c 94 4f 00 jmp 0x9e ; 0x9e <__bad_interrupt> |
50: 0c 94 4f 00 jmp 0x9e ; 0x9e <__bad_interrupt> |
54: 0c 94 4f 00 jmp 0x9e ; 0x9e <__bad_interrupt> |
58: 0c 94 4f 00 jmp 0x9e ; 0x9e <__bad_interrupt> |
5c: 0c 94 4f 00 jmp 0x9e ; 0x9e <__bad_interrupt> |
60: 0c 94 4f 00 jmp 0x9e ; 0x9e <__bad_interrupt> |
64: 0c 94 4f 00 jmp 0x9e ; 0x9e <__bad_interrupt> |
00000068 <__ctors_end>: |
68: 11 24 eor r1, r1 |
6a: 1f be out 0x3f, r1 ; 63 |
6c: cf ef ldi r28, 0xFF ; 255 |
6e: d4 e0 ldi r29, 0x04 ; 4 |
70: de bf out 0x3e, r29 ; 62 |
72: cd bf out 0x3d, r28 ; 61 |
00000074 <__do_copy_data>: |
74: 11 e0 ldi r17, 0x01 ; 1 |
76: a0 e0 ldi r26, 0x00 ; 0 |
78: b1 e0 ldi r27, 0x01 ; 1 |
7a: e4 ed ldi r30, 0xD4 ; 212 |
7c: f0 e0 ldi r31, 0x00 ; 0 |
7e: 02 c0 rjmp .+4 ; 0x84 <.do_copy_data_start> |
00000080 <.do_copy_data_loop>: |
80: 05 90 lpm r0, Z+ |
82: 0d 92 st X+, r0 |
00000084 <.do_copy_data_start>: |
84: a0 30 cpi r26, 0x00 ; 0 |
86: b1 07 cpc r27, r17 |
88: d9 f7 brne .-10 ; 0x80 <.do_copy_data_loop> |
0000008a <__do_clear_bss>: |
8a: 11 e0 ldi r17, 0x01 ; 1 |
8c: a0 e0 ldi r26, 0x00 ; 0 |
8e: b1 e0 ldi r27, 0x01 ; 1 |
90: 01 c0 rjmp .+2 ; 0x94 <.do_clear_bss_start> |
00000092 <.do_clear_bss_loop>: |
92: 1d 92 st X+, r1 |
00000094 <.do_clear_bss_start>: |
94: a0 30 cpi r26, 0x00 ; 0 |
96: b1 07 cpc r27, r17 |
98: e1 f7 brne .-8 ; 0x92 <.do_clear_bss_loop> |
9a: 0c 94 5e 00 jmp 0xbc ; 0xbc <main> |
0000009e <__bad_interrupt>: |
9e: 0c 94 00 00 jmp 0 ; 0x0 <__vectors> |
000000a2 <delay_ms>: |
void delay_ms(unsigned int ms) |
/* delay for a minimum of <ms> */ |
{ |
a2: 9c 01 movw r18, r24 |
a4: e0 e8 ldi r30, 0x80 ; 128 |
a6: f7 e0 ldi r31, 0x07 ; 7 |
a8: 05 c0 rjmp .+10 ; 0xb4 <delay_ms+0x12> |
*/ |
void |
_delay_loop_2(uint16_t __count) |
{ |
__asm__ volatile ( |
aa: cf 01 movw r24, r30 |
ac: 01 97 sbiw r24, 0x01 ; 1 |
ae: f1 f7 brne .-4 ; 0xac <delay_ms+0xa> |
// we use a calibrated macro. This is more |
// accurate and not so much compiler dependent |
// as self made code. |
while(ms){ |
_delay_ms(0.96); |
ms--; |
b0: 21 50 subi r18, 0x01 ; 1 |
b2: 30 40 sbci r19, 0x00 ; 0 |
b4: 21 15 cp r18, r1 |
b6: 31 05 cpc r19, r1 |
b8: c1 f7 brne .-16 ; 0xaa <delay_ms+0x8> |
ba: 08 95 ret |
000000bc <main>: |
} |
} |
/* new style */ |
int main(void) |
{ |
bc: 3d 9a sbi 0x07, 5 ; 7 |
/* INITIALIZE */ |
/* enable PC5 as output */ |
DDRC|= (1<<DDC5); |
/* PC5 is 5 (see file include/avr/iom8.h) and 1<<PC5 is 00100000 |
* This can also be written as _BV(PC5)*/ |
while (1) { |
/* led on, pin=0 */ |
PORTC &= ~(1<<PC5); |
be: 45 98 cbi 0x08, 5 ; 8 |
delay_ms(50); |
c0: 82 e3 ldi r24, 0x32 ; 50 |
c2: 90 e0 ldi r25, 0x00 ; 0 |
c4: 0e 94 51 00 call 0xa2 ; 0xa2 <delay_ms> |
/* set output to 5V, LED off */ |
PORTC|= (1<<PC5); |
c8: 45 9a sbi 0x08, 5 ; 8 |
delay_ms(50); |
ca: 82 e3 ldi r24, 0x32 ; 50 |
cc: 90 e0 ldi r25, 0x00 ; 0 |
ce: 0e 94 51 00 call 0xa2 ; 0xa2 <delay_ms> |
d2: f5 cf rjmp .-22 ; 0xbe <main+0x2> |
/programy/C/avr/tests/ATmega168/default/blik.map |
---|
0,0 → 1,347 |
Archive member included because of file (symbol) |
c:/program files/winavr/bin/../lib/gcc/avr/4.1.1/avr5\libgcc.a(_copy_data.o) |
blik.o (__do_copy_data) |
c:/program files/winavr/bin/../lib/gcc/avr/4.1.1/avr5\libgcc.a(_clear_bss.o) |
blik.o (__do_clear_bss) |
Discarded input sections |
.stabstr 0x00000000 0x0 c:/program files/winavr/bin/../lib/gcc/avr/4.1.1/../../../../avr/lib/avr5/crtm168.o |
Memory Configuration |
Name Origin Length Attributes |
text 0x00000000 0x00020000 xr |
data 0x00800060 0x0000ffa0 rw !x |
eeprom 0x00810000 0x00010000 rw !x |
*default* 0x00000000 0xffffffff |
Linker script and memory map |
Address of section .data set to 0x800100 |
LOAD c:/program files/winavr/bin/../lib/gcc/avr/4.1.1/../../../../avr/lib/avr5/crtm168.o |
LOAD blik.o |
LOAD c:/program files/winavr/bin/../lib/gcc/avr/4.1.1/avr5\libgcc.a |
LOAD c:/program files/winavr/bin/../lib/gcc/avr/4.1.1/../../../../avr/lib/avr5\libc.a |
LOAD c:/program files/winavr/bin/../lib/gcc/avr/4.1.1/avr5\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 0xd4 |
*(.vectors) |
.vectors 0x00000000 0x68 c:/program files/winavr/bin/../lib/gcc/avr/4.1.1/../../../../avr/lib/avr5/crtm168.o |
0x00000000 __vectors |
0x00000000 __vector_default |
*(.vectors) |
*(.progmem.gcc*) |
*(.progmem*) |
0x00000068 . = ALIGN (0x2) |
0x00000068 __trampolines_start = . |
*(.trampolines) |
.trampolines 0x00000068 0x0 linker stubs |
*(.trampolines*) |
0x00000068 __trampolines_end = . |
*(.jumptables) |
*(.jumptables*) |
*(.lowtext) |
*(.lowtext*) |
0x00000068 __ctors_start = . |
*(.ctors) |
0x00000068 __ctors_end = . |
0x00000068 __dtors_start = . |
*(.dtors) |
0x00000068 __dtors_end = . |
SORT(*)(.ctors) |
SORT(*)(.dtors) |
*(.init0) |
.init0 0x00000068 0x0 c:/program files/winavr/bin/../lib/gcc/avr/4.1.1/../../../../avr/lib/avr5/crtm168.o |
0x00000068 __init |
*(.init0) |
*(.init1) |
*(.init1) |
*(.init2) |
.init2 0x00000068 0xc c:/program files/winavr/bin/../lib/gcc/avr/4.1.1/../../../../avr/lib/avr5/crtm168.o |
*(.init2) |
*(.init3) |
*(.init3) |
*(.init4) |
.init4 0x00000074 0x16 c:/program files/winavr/bin/../lib/gcc/avr/4.1.1/avr5\libgcc.a(_copy_data.o) |
0x00000074 __do_copy_data |
.init4 0x0000008a 0x10 c:/program files/winavr/bin/../lib/gcc/avr/4.1.1/avr5\libgcc.a(_clear_bss.o) |
0x0000008a __do_clear_bss |
*(.init4) |
*(.init5) |
*(.init5) |
*(.init6) |
*(.init6) |
*(.init7) |
*(.init7) |
*(.init8) |
*(.init8) |
*(.init9) |
.init9 0x0000009a 0x4 c:/program files/winavr/bin/../lib/gcc/avr/4.1.1/../../../../avr/lib/avr5/crtm168.o |
*(.init9) |
*(.text) |
.text 0x0000009e 0x4 c:/program files/winavr/bin/../lib/gcc/avr/4.1.1/../../../../avr/lib/avr5/crtm168.o |
0x0000009e __vector_22 |
0x0000009e __vector_1 |
0x0000009e __vector_24 |
0x0000009e __vector_12 |
0x0000009e __bad_interrupt |
0x0000009e __vector_6 |
0x0000009e __vector_3 |
0x0000009e __vector_23 |
0x0000009e __vector_25 |
0x0000009e __vector_11 |
0x0000009e __vector_13 |
0x0000009e __vector_17 |
0x0000009e __vector_19 |
0x0000009e __vector_7 |
0x0000009e __vector_5 |
0x0000009e __vector_4 |
0x0000009e __vector_9 |
0x0000009e __vector_2 |
0x0000009e __vector_21 |
0x0000009e __vector_15 |
0x0000009e __vector_8 |
0x0000009e __vector_14 |
0x0000009e __vector_10 |
0x0000009e __vector_16 |
0x0000009e __vector_18 |
0x0000009e __vector_20 |
.text 0x000000a2 0x32 blik.o |
0x000000bc main |
0x000000a2 delay_ms |
.text 0x000000d4 0x0 c:/program files/winavr/bin/../lib/gcc/avr/4.1.1/avr5\libgcc.a(_copy_data.o) |
.text 0x000000d4 0x0 c:/program files/winavr/bin/../lib/gcc/avr/4.1.1/avr5\libgcc.a(_clear_bss.o) |
0x000000d4 . = ALIGN (0x2) |
*(.text.*) |
.text.libgcc 0x000000d4 0x0 c:/program files/winavr/bin/../lib/gcc/avr/4.1.1/avr5\libgcc.a(_copy_data.o) |
.text.libgcc 0x000000d4 0x0 c:/program files/winavr/bin/../lib/gcc/avr/4.1.1/avr5\libgcc.a(_clear_bss.o) |
0x000000d4 . = ALIGN (0x2) |
*(.fini9) |
*(.fini9) |
*(.fini8) |
*(.fini8) |
*(.fini7) |
*(.fini7) |
*(.fini6) |
*(.fini6) |
*(.fini5) |
*(.fini5) |
*(.fini4) |
*(.fini4) |
*(.fini3) |
*(.fini3) |
*(.fini2) |
*(.fini2) |
*(.fini1) |
*(.fini1) |
*(.fini0) |
*(.fini0) |
0x000000d4 _etext = . |
.data 0x00800100 0x0 load address 0x000000d4 |
0x00800100 PROVIDE (__data_start, .) |
*(.data) |
.data 0x00800100 0x0 c:/program files/winavr/bin/../lib/gcc/avr/4.1.1/../../../../avr/lib/avr5/crtm168.o |
.data 0x00800100 0x0 blik.o |
.data 0x00800100 0x0 c:/program files/winavr/bin/../lib/gcc/avr/4.1.1/avr5\libgcc.a(_copy_data.o) |
.data 0x00800100 0x0 c:/program files/winavr/bin/../lib/gcc/avr/4.1.1/avr5\libgcc.a(_clear_bss.o) |
*(.data*) |
*(.rodata) |
*(.rodata*) |
*(.gnu.linkonce.d*) |
0x00800100 . = ALIGN (0x2) |
0x00800100 _edata = . |
0x00800100 PROVIDE (__data_end, .) |
.bss 0x00800100 0x0 |
0x00800100 PROVIDE (__bss_start, .) |
*(.bss) |
.bss 0x00800100 0x0 c:/program files/winavr/bin/../lib/gcc/avr/4.1.1/../../../../avr/lib/avr5/crtm168.o |
.bss 0x00800100 0x0 blik.o |
.bss 0x00800100 0x0 c:/program files/winavr/bin/../lib/gcc/avr/4.1.1/avr5\libgcc.a(_copy_data.o) |
.bss 0x00800100 0x0 c:/program files/winavr/bin/../lib/gcc/avr/4.1.1/avr5\libgcc.a(_clear_bss.o) |
*(.bss*) |
*(COMMON) |
0x00800100 PROVIDE (__bss_end, .) |
0x000000d4 __data_load_start = LOADADDR (.data) |
0x000000d4 __data_load_end = (__data_load_start + SIZEOF (.data)) |
.noinit 0x00800100 0x0 |
0x00800100 PROVIDE (__noinit_start, .) |
*(.noinit*) |
0x00800100 PROVIDE (__noinit_end, .) |
0x00800100 _end = . |
0x00800100 PROVIDE (__heap_start, .) |
.eeprom 0x00810000 0x0 |
*(.eeprom*) |
0x00810000 __eeprom_end = . |
.stab 0x00000000 0x36c |
*(.stab) |
.stab 0x00000000 0x36c c:/program files/winavr/bin/../lib/gcc/avr/4.1.1/../../../../avr/lib/avr5/crtm168.o |
.stabstr 0x00000000 0x84 |
*(.stabstr) |
.stabstr 0x00000000 0x84 c:/program files/winavr/bin/../lib/gcc/avr/4.1.1/../../../../avr/lib/avr5/crtm168.o |
.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 0x00000000 0x20 |
*(.debug_aranges) |
.debug_aranges |
0x00000000 0x20 blik.o |
.debug_pubnames |
0x00000000 0x28 |
*(.debug_pubnames) |
.debug_pubnames |
0x00000000 0x28 blik.o |
.debug_info 0x00000000 0x13d |
*(.debug_info) |
.debug_info 0x00000000 0x13d blik.o |
*(.gnu.linkonce.wi.*) |
.debug_abbrev 0x00000000 0xd3 |
*(.debug_abbrev) |
.debug_abbrev 0x00000000 0xd3 blik.o |
.debug_line 0x00000000 0xfc |
*(.debug_line) |
.debug_line 0x00000000 0xfc blik.o |
.debug_frame 0x00000000 0x30 |
*(.debug_frame) |
.debug_frame 0x00000000 0x30 blik.o |
.debug_str 0x00000000 0xdd |
*(.debug_str) |
.debug_str 0x00000000 0xdd blik.o |
0x11a (size before relaxing) |
.debug_loc 0x00000000 0x28 |
*(.debug_loc) |
.debug_loc 0x00000000 0x28 blik.o |
.debug_macinfo |
*(.debug_macinfo) |
OUTPUT(blik.elf elf32-avr) |
LOAD linker stubs |
/programy/C/avr/tests/ATmega168/default/blik.o |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/programy/C/avr/tests/ATmega168/default/dep/blik.o.d |
---|
0,0 → 1,27 |
blik.o: ../blik.c c:/program\ files/winavr/bin/../avr/include/avr/io.h \ |
c:/program\ files/winavr/bin/../avr/include/avr/sfr_defs.h \ |
c:/program\ files/winavr/bin/../avr/include/inttypes.h \ |
c:/program\ files/winavr/bin/../avr/include/stdint.h \ |
c:/program\ files/winavr/bin/../avr/include/avr/iom168.h \ |
c:/program\ files/winavr/bin/../avr/include/avr/iomx8.h \ |
c:/program\ files/winavr/bin/../avr/include/avr/portpins.h \ |
c:/program\ files/winavr/bin/../avr/include/avr/version.h \ |
c:/program\ files/winavr/bin/../avr/include/util/delay.h |
c:/program\ files/winavr/bin/../avr/include/avr/io.h: |
c:/program\ files/winavr/bin/../avr/include/avr/sfr_defs.h: |
c:/program\ files/winavr/bin/../avr/include/inttypes.h: |
c:/program\ files/winavr/bin/../avr/include/stdint.h: |
c:/program\ files/winavr/bin/../avr/include/avr/iom168.h: |
c:/program\ files/winavr/bin/../avr/include/avr/iomx8.h: |
c:/program\ files/winavr/bin/../avr/include/avr/portpins.h: |
c:/program\ files/winavr/bin/../avr/include/avr/version.h: |
c:/program\ files/winavr/bin/../avr/include/util/delay.h: |
/programy/C/avr/tests/ATmega168/uart/default/Makefile |
---|
0,0 → 1,78 |
############################################################################### |
# Makefile for the project main |
############################################################################### |
## General Flags |
PROJECT = main |
MCU = atmega168 |
TARGET = main.elf |
CC = avr-gcc.exe |
## Options common to compile, link and assembly rules |
COMMON = -mmcu=$(MCU) |
## Compile options common for all C compilation units. |
CFLAGS = $(COMMON) |
CFLAGS += -Wall -gdwarf-2 -std=gnu99 -DF_CPU=14318180UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums |
CFLAGS += -MD -MP -MT $(*F).o -MF dep/$(@F).d |
## Assembly specific flags |
ASMFLAGS = $(COMMON) |
ASMFLAGS += $(CFLAGS) |
ASMFLAGS += -x assembler-with-cpp -Wa,-gdwarf2 |
## Linker flags |
LDFLAGS = $(COMMON) |
LDFLAGS += -Wl,-Map=main.map |
## Intel Hex file production flags |
HEX_FLASH_FLAGS = -R .eeprom |
HEX_EEPROM_FLAGS = -j .eeprom |
HEX_EEPROM_FLAGS += --set-section-flags=.eeprom="alloc,load" |
HEX_EEPROM_FLAGS += --change-section-lma .eeprom=0 --no-change-warnings |
## Objects that must be built in order to link |
OBJECTS = main.o uart.o |
## Objects explicitly added by the user |
LINKONLYOBJECTS = |
## Build |
all: $(TARGET) main.hex main.eep main.lss size |
## Compile |
main.o: ../main.c |
$(CC) $(INCLUDES) $(CFLAGS) -c $< |
uart.o: ../uart.c |
$(CC) $(INCLUDES) $(CFLAGS) -c $< |
##Link |
$(TARGET): $(OBJECTS) |
$(CC) $(LDFLAGS) $(OBJECTS) $(LINKONLYOBJECTS) $(LIBDIRS) $(LIBS) -o $(TARGET) |
%.hex: $(TARGET) |
avr-objcopy -O ihex $(HEX_FLASH_FLAGS) $< $@ |
%.eep: $(TARGET) |
-avr-objcopy $(HEX_EEPROM_FLAGS) -O ihex $< $@ || exit 0 |
%.lss: $(TARGET) |
avr-objdump -h -S $< > $@ |
size: ${TARGET} |
@echo |
@avr-size -C --mcu=${MCU} ${TARGET} |
## Clean target |
.PHONY: clean |
clean: |
-rm -rf $(OBJECTS) main.elf dep/* main.hex main.eep main.lss main.map |
## Other dependencies |
-include $(shell mkdir dep 2>/dev/null) $(wildcard dep/*) |
/programy/C/avr/tests/ATmega168/uart/default/main.elf |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/programy/C/avr/tests/ATmega168/uart/main.aps |
---|
0,0 → 1,0 |
<AVRStudio><MANAGEMENT><ProjectName>main</ProjectName><Created>27-Apr-2008 13:39:11</Created><LastEdit>27-Apr-2008 15:20:23</LastEdit><ICON>241</ICON><ProjectType>0</ProjectType><Created>27-Apr-2008 13:39:11</Created><Version>4</Version><Build>4, 14, 0, 589</Build><ProjectTypeName>AVR GCC</ProjectTypeName></MANAGEMENT><CODE_CREATION><ObjectFile>default\main.elf</ObjectFile><EntryFile></EntryFile><SaveFolder>D:\KAKLIK\projekty\programy\C\avr\tests\ATmega168\uart\</SaveFolder></CODE_CREATION><DEBUG_TARGET><CURRENT_TARGET>ICE50</CURRENT_TARGET><CURRENT_PART>ATmega168.xml</CURRENT_PART><BREAKPOINTS></BREAKPOINTS><IO_EXPAND><HIDE>false</HIDE></IO_EXPAND><REGISTERNAMES><Register>R00</Register><Register>R01</Register><Register>R02</Register><Register>R03</Register><Register>R04</Register><Register>R05</Register><Register>R06</Register><Register>R07</Register><Register>R08</Register><Register>R09</Register><Register>R10</Register><Register>R11</Register><Register>R12</Register><Register>R13</Register><Register>R14</Register><Register>R15</Register><Register>R16</Register><Register>R17</Register><Register>R18</Register><Register>R19</Register><Register>R20</Register><Register>R21</Register><Register>R22</Register><Register>R23</Register><Register>R24</Register><Register>R25</Register><Register>R26</Register><Register>R27</Register><Register>R28</Register><Register>R29</Register><Register>R30</Register><Register>R31</Register></REGISTERNAMES><COM>Auto</COM><COMType>0</COMType><WATCHNUM>0</WATCHNUM><WATCHNAMES><Pane0></Pane0><Pane1></Pane1><Pane2></Pane2><Pane3></Pane3></WATCHNAMES><BreakOnTrcaeFull>0</BreakOnTrcaeFull></DEBUG_TARGET><Debugger><Triggers></Triggers></Debugger><AVRGCCPLUGIN><FILES><SOURCEFILE>main.c</SOURCEFILE><SOURCEFILE>uart.c</SOURCEFILE><HEADERFILE>uart.h</HEADERFILE><OTHERFILE>default\main.lss</OTHERFILE><OTHERFILE>default\main.map</OTHERFILE></FILES><CONFIGS><CONFIG><NAME>default</NAME><USESEXTERNALMAKEFILE>NO</USESEXTERNALMAKEFILE><EXTERNALMAKEFILE></EXTERNALMAKEFILE><PART>atmega168</PART><HEX>1</HEX><LIST>1</LIST><MAP>1</MAP><OUTPUTFILENAME>main.elf</OUTPUTFILENAME><OUTPUTDIR>default\</OUTPUTDIR><ISDIRTY>0</ISDIRTY><OPTIONS/><INCDIRS/><LIBDIRS/><LIBS/><LINKOBJECTS/><OPTIONSFORALL>-Wall -gdwarf-2 -std=gnu99 -DF_CPU=14318180UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums</OPTIONSFORALL><LINKEROPTIONS></LINKEROPTIONS><SEGMENTS/></CONFIG></CONFIGS><LASTCONFIG>default</LASTCONFIG><USES_WINAVR>1</USES_WINAVR><GCC_LOC>C:\Program Files\WinAVR\bin\avr-gcc.exe</GCC_LOC><MAKE_LOC>C:\Program Files\WinAVR\utils\bin\make.exe</MAKE_LOC></AVRGCCPLUGIN><IOView><usergroups/><sort sorted="0" column="0" ordername="0" orderaddress="0" ordergroup="0"/></IOView><Files><File00000><FileId>00000</FileId><FileName>main.c</FileName><Status>1</Status></File00000><File00001><FileId>00001</FileId><FileName>uart.c</FileName><Status>1</Status></File00001><File00002><FileId>00002</FileId><FileName>uart.h</FileName><Status>1</Status></File00002></Files><Events><Bookmarks></Bookmarks></Events><Trace><Filters></Filters></Trace></AVRStudio> |
/programy/C/avr/tests/ATmega168/uart/main.aws |
---|
0,0 → 1,0 |
<AVRWorkspace><IOSettings><CurrentRegisters/></IOSettings><part name="ATMEGA168"/><Files/></AVRWorkspace> |
/programy/C/avr/tests/ATmega168/uart/main.c |
---|
0,0 → 1,27 |
#include <string.h> |
#include <avr/pgmspace.h> |
#include <avr/sleep.h> |
#include "uart.h" |
int main() |
{ |
/* we will just use ordinary idle mode */ |
// set_sleep_mode(SLEEP_MODE_IDLE); |
/* setup uart */ |
uart_init(); |
/* setup sd card slot */ |
while(1) |
{ |
uart_puts_p(PSTR("test000000000000000")); |
} |
return 1; |
} |
/programy/C/avr/tests/ATmega168/uart/uart.c |
---|
0,0 → 1,198 |
/* |
* Copyright (c) 2006-2007 by Roland Riegel <feedback@roland-riegel.de> |
* |
* This file is free software; you can redistribute it and/or modify |
* it under the terms of the GNU General Public License version 2 as |
* published by the Free Software Foundation. |
*/ |
#include <stdio.h> |
#include <avr/interrupt.h> |
#include <avr/io.h> |
#include <avr/pgmspace.h> |
#include <avr/sfr_defs.h> |
#include <avr/sleep.h> |
#include "uart.h" |
/* some mcus have multiple uarts */ |
#ifdef UDR0 |
#define UBRRH UBRR0H |
#define UBRRL UBRR0L |
#define UDR UDR0 |
#define UCSRA UCSR0A |
#define UDRE UDRE0 |
#define RXC RXC0 |
#define UCSRB UCSR0B |
#define RXEN RXEN0 |
#define TXEN TXEN0 |
#define RXCIE RXCIE0 |
#define UCSRC UCSR0C |
#define URSEL |
#define UCSZ0 UCSZ00 |
#define UCSZ1 UCSZ01 |
#define UCSRC_SELECT 0 |
#else |
#define UCSRC_SELECT (1 << URSEL) |
#endif |
#ifndef USART_RXC_vect |
#if defined(UART0_RX_vect) |
#define USART_RXC_vect UART0_RX_vect |
#elif defined(UART_RX_vect) |
#define USART_RXC_vect UART_RX_vect |
#elif defined(USART0_RX_vect) |
#define USART_RXC_vect USART0_RX_vect |
#elif defined(USART_RX_vect) |
#define USART_RXC_vect USART_RX_vect |
#elif defined(USART0_RXC_vect) |
#define USART_RXC_vect USART0_RXC_vect |
#elif defined(USART_RXC_vect) |
#define USART_RXC_vect USART_RXC_vect |
#else |
#error "Uart receive complete interrupt not defined!" |
#endif |
#endif |
#define BAUD 9600UL |
#define UBRRVAL (F_CPU/(BAUD*16)-1) |
#define USE_SLEEP 1 |
void uart_init() |
{ |
/* set baud rate */ |
UBRRH = UBRRVAL >> 8; |
UBRRL = UBRRVAL & 0xff; |
/* set frame format: 8 bit, no parity, 1 bit */ |
UCSRC = UCSRC_SELECT | (1 << UCSZ1) | (1 << UCSZ0); |
/* enable serial receiver and transmitter */ |
#if !USE_SLEEP |
UCSRB = (1 << RXEN) | (1 << TXEN); |
#else |
UCSRB = (1 << RXEN) | (1 << TXEN) | (1 << RXCIE); |
#endif |
} |
void uart_putc(uint8_t c) |
{ |
if(c == '\n') |
uart_putc('\r'); |
/* wait until transmit buffer is empty */ |
while(!(UCSRA & (1 << UDRE))); |
/* send next byte */ |
UDR = c; |
} |
void uart_putc_hex(uint8_t b) |
{ |
/* upper nibble */ |
if((b >> 4) < 0x0a) |
uart_putc((b >> 4) + '0'); |
else |
uart_putc((b >> 4) - 0x0a + 'a'); |
/* lower nibble */ |
if((b & 0x0f) < 0x0a) |
uart_putc((b & 0x0f) + '0'); |
else |
uart_putc((b & 0x0f) - 0x0a + 'a'); |
} |
void uart_putw_hex(uint16_t w) |
{ |
uart_putc_hex((uint8_t) (w >> 8)); |
uart_putc_hex((uint8_t) (w & 0xff)); |
} |
void uart_putdw_hex(uint32_t dw) |
{ |
uart_putw_hex((uint16_t) (dw >> 16)); |
uart_putw_hex((uint16_t) (dw & 0xffff)); |
} |
void uart_putw_dec(uint16_t w) |
{ |
uint16_t num = 10000; |
uint8_t started = 0; |
while(num > 0) |
{ |
uint8_t b = w / num; |
if(b > 0 || started || num == 1) |
{ |
uart_putc('0' + b); |
started = 1; |
} |
w -= b * num; |
num /= 10; |
} |
} |
void uart_putdw_dec(uint32_t dw) |
{ |
uint32_t num = 1000000000; |
uint8_t started = 0; |
while(num > 0) |
{ |
uint8_t b = dw / num; |
if(b > 0 || started || num == 1) |
{ |
uart_putc('0' + b); |
started = 1; |
} |
dw -= b * num; |
num /= 10; |
} |
} |
void uart_puts(const char* str) |
{ |
while(*str) |
uart_putc(*str++); |
} |
void uart_puts_p(PGM_P str) |
{ |
while(1) |
{ |
uint8_t b = pgm_read_byte_near(str++); |
if(!b) |
break; |
uart_putc(b); |
} |
} |
uint8_t uart_getc() |
{ |
/* wait until receive buffer is full */ |
#if USE_SLEEP |
uint8_t sreg = SREG; |
sei(); |
while(!(UCSRA & (1 << RXC))) |
sleep_mode(); |
SREG = sreg; |
#else |
while(!(UCSRA & (1 << RXC))); |
#endif |
uint8_t b = UDR; |
if(b == '\r') |
b = '\n'; |
return b; |
} |
EMPTY_INTERRUPT(USART_RXC_vect) |
/programy/C/avr/tests/ATmega168/uart/uart.h |
---|
0,0 → 1,33 |
/* |
* Copyright (c) 2006-2007 by Roland Riegel <feedback@roland-riegel.de> |
* |
* This file is free software; you can redistribute it and/or modify |
* it under the terms of the GNU General Public License version 2 as |
* published by the Free Software Foundation. |
*/ |
#ifndef UART_H |
#define UART_H |
#include <stdint.h> |
#include <avr/pgmspace.h> |
void uart_init(); |
void uart_putc(uint8_t c); |
void uart_putc_hex(uint8_t b); |
void uart_putw_hex(uint16_t w); |
void uart_putdw_hex(uint32_t dw); |
void uart_putw_dec(uint16_t w); |
void uart_putdw_dec(uint32_t dw); |
void uart_puts(const char* str); |
void uart_puts_p(PGM_P str); |
uint8_t uart_getc(); |
#endif |
/programy/C/avr/tests/Blik/avrm8ledtest.c |
---|
0,0 → 1,76 |
/********************************************* |
* vim: set sw=8 ts=8 si : |
* Author: Guido Socher, Copyright: GPL |
* This program is to test the led connected to |
* PC5. |
* See http://linuxfocus.org/English/November2004/ |
* for details. |
* Chip type : ATMEGA8 |
* Clock frequency : Internal clock 1 Mhz (factory default) |
*********************************************/ |
#include <avr/io.h> |
#include <inttypes.h> |
#define F_CPU 1000000UL // 1 MHz |
#include <avr/delay.h> |
/* compatibilty macros for old style */ |
#ifndef cbi |
#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit)) |
#endif |
#ifndef sbi |
#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit)) |
#endif |
void delay_ms(unsigned int ms) |
/* delay for a minimum of <ms> */ |
{ |
// we use a calibrated macro. This is more |
// accurate and not so much compiler dependent |
// as self made code. |
while(ms){ |
_delay_ms(0.96); |
ms--; |
} |
} |
/* new style */ |
int main(void) |
{ |
/* INITIALIZE */ |
/* enable PC5 as output */ |
DDRC|= (1<<DDC5); |
/* PC5 is 5 (see file include/avr/iom8.h) and 1<<PC5 is 00100000 |
* This can also be written as _BV(PC5)*/ |
while (1) { |
/* led on, pin=0 */ |
PORTC &= ~(1<<PC5); |
delay_ms(500); |
/* set output to 5V, LED off */ |
PORTC|= (1<<PC5); |
delay_ms(500); |
} |
return(0); |
} |
// // old style now depricated: |
// int main(void) |
// { |
// // enable PC5 as output |
// sbi(DDRC,PC5); |
// while (1) { |
// // led on, pin=0 |
// cbi(PORTC,PC5); |
// delay_ms(500); |
// // set output to 5V, LED off |
// sbi(PORTC,PC5); |
// delay_ms(500); |
// } |
// return(0); |
// } |
// // end of old style |
/programy/C/avr/tests/Blik/avrm8ledtest.hex |
---|
0,0 → 1,10 |
:1000000012C02BC02AC029C028C027C026C025C0C6 |
:1000100024C023C022C021C020C01FC01EC01DC0DC |
:100020001CC01BC01AC011241FBECFE5D4E0DEBF28 |
:10003000CDBF10E0A0E6B0E0E0E9F0E002C005903E |
:100040000D92A036B107D9F710E0A0E6B0E001C0EC |
:100050001D92A036B107E1F70DC0D2CF9C0106C0BA |
:1000600080EF90E00197F1F72150304021153105E4 |
:10007000B9F70895CFE5D4E0DEBFCDBFA59AAD981E |
:1000800084EF91E0EBDFAD9A84EF91E0E7DFF7CF0B |
:00000001FF |
/programy/C/avr/tests/Blik/avrm8ledtest.map |
---|
0,0 → 1,324 |
Archive member included because of file (symbol) |
/usr/lib/gcc/avr/4.2.1/avr4/libgcc.a(_copy_data.o) |
avrm8ledtest.o (__do_copy_data) |
/usr/lib/gcc/avr/4.2.1/avr4/libgcc.a(_clear_bss.o) |
avrm8ledtest.o (__do_clear_bss) |
Discarded input sections |
.stabstr 0x00000000 0x0 /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/crtm8.o |
.stabstr 0x00000000 0x0 avrm8ledtest.o |
Memory Configuration |
Name Origin Length Attributes |
text 0x00000000 0x00002000 xr |
data 0x00800060 0x0000ffa0 rw !x |
eeprom 0x00810000 0x00010000 rw !x |
*default* 0x00000000 0xffffffff |
Linker script and memory map |
LOAD /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/crtm8.o |
LOAD avrm8ledtest.o |
LOAD /usr/lib/gcc/avr/4.2.1/avr4/libgcc.a |
LOAD /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/libc.a |
LOAD /usr/lib/gcc/avr/4.2.1/avr4/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 0x90 |
*(.vectors) |
.vectors 0x00000000 0x26 /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/crtm8.o |
0x00000000 __vectors |
0x00000000 __vector_default |
*(.vectors) |
0x00000026 __ctors_start = . |
*(.ctors) |
0x00000026 __ctors_end = . |
0x00000026 __dtors_start = . |
*(.dtors) |
0x00000026 __dtors_end = . |
SORT(*)(.ctors) |
SORT(*)(.dtors) |
*(.progmem.gcc*) |
*(.progmem*) |
0x00000026 . = ALIGN (0x2) |
*(.jumptables) |
*(.jumptables*) |
*(.lowtext) |
*(.lowtext*) |
*(.init0) |
.init0 0x00000026 0x0 /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/crtm8.o |
0x00000026 __init |
*(.init0) |
*(.init1) |
*(.init1) |
*(.init2) |
.init2 0x00000026 0xc /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/crtm8.o |
*(.init2) |
*(.init3) |
*(.init3) |
*(.init4) |
.init4 0x00000032 0x16 /usr/lib/gcc/avr/4.2.1/avr4/libgcc.a(_copy_data.o) |
0x00000032 __do_copy_data |
.init4 0x00000048 0x10 /usr/lib/gcc/avr/4.2.1/avr4/libgcc.a(_clear_bss.o) |
0x00000048 __do_clear_bss |
*(.init4) |
*(.init5) |
*(.init5) |
*(.init6) |
*(.init6) |
*(.init7) |
*(.init7) |
*(.init8) |
*(.init8) |
*(.init9) |
.init9 0x00000058 0x2 /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/crtm8.o |
*(.init9) |
*(.text) |
.text 0x0000005a 0x2 /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/crtm8.o |
0x0000005a __vector_1 |
0x0000005a __vector_12 |
0x0000005a __bad_interrupt |
0x0000005a __vector_6 |
0x0000005a __vector_3 |
0x0000005a __vector_11 |
0x0000005a __vector_13 |
0x0000005a __vector_17 |
0x0000005a __vector_7 |
0x0000005a __vector_5 |
0x0000005a __vector_4 |
0x0000005a __vector_9 |
0x0000005a __vector_2 |
0x0000005a __vector_15 |
0x0000005a __vector_8 |
0x0000005a __vector_14 |
0x0000005a __vector_10 |
0x0000005a __vector_16 |
0x0000005a __vector_18 |
.text 0x0000005c 0x34 avrm8ledtest.o |
0x00000074 main |
0x0000005c delay_ms |
.text 0x00000090 0x0 /usr/lib/gcc/avr/4.2.1/avr4/libgcc.a(_copy_data.o) |
.text 0x00000090 0x0 /usr/lib/gcc/avr/4.2.1/avr4/libgcc.a(_clear_bss.o) |
0x00000090 . = ALIGN (0x2) |
*(.text.*) |
.text.libgcc 0x00000090 0x0 /usr/lib/gcc/avr/4.2.1/avr4/libgcc.a(_copy_data.o) |
.text.libgcc 0x00000090 0x0 /usr/lib/gcc/avr/4.2.1/avr4/libgcc.a(_clear_bss.o) |
0x00000090 . = ALIGN (0x2) |
*(.fini9) |
*(.fini9) |
*(.fini8) |
*(.fini8) |
*(.fini7) |
*(.fini7) |
*(.fini6) |
*(.fini6) |
*(.fini5) |
*(.fini5) |
*(.fini4) |
*(.fini4) |
*(.fini3) |
*(.fini3) |
*(.fini2) |
*(.fini2) |
*(.fini1) |
*(.fini1) |
*(.fini0) |
*(.fini0) |
0x00000090 _etext = . |
.data 0x00800060 0x0 load address 0x00000090 |
0x00800060 PROVIDE (__data_start, .) |
*(.data) |
.data 0x00800060 0x0 /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/crtm8.o |
.data 0x00800060 0x0 avrm8ledtest.o |
.data 0x00800060 0x0 /usr/lib/gcc/avr/4.2.1/avr4/libgcc.a(_copy_data.o) |
.data 0x00800060 0x0 /usr/lib/gcc/avr/4.2.1/avr4/libgcc.a(_clear_bss.o) |
*(.data*) |
*(.rodata) |
*(.rodata*) |
*(.gnu.linkonce.d*) |
0x00800060 . = ALIGN (0x2) |
0x00800060 _edata = . |
0x00800060 PROVIDE (__data_end, .) |
.bss 0x00800060 0x0 |
0x00800060 PROVIDE (__bss_start, .) |
*(.bss) |
.bss 0x00800060 0x0 /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/crtm8.o |
.bss 0x00800060 0x0 avrm8ledtest.o |
.bss 0x00800060 0x0 /usr/lib/gcc/avr/4.2.1/avr4/libgcc.a(_copy_data.o) |
.bss 0x00800060 0x0 /usr/lib/gcc/avr/4.2.1/avr4/libgcc.a(_clear_bss.o) |
*(.bss*) |
*(COMMON) |
0x00800060 PROVIDE (__bss_end, .) |
0x00000090 __data_load_start = LOADADDR (.data) |
0x00000090 __data_load_end = (__data_load_start + SIZEOF (.data)) |
.noinit 0x00800060 0x0 |
0x00800060 PROVIDE (__noinit_start, .) |
*(.noinit*) |
0x00800060 PROVIDE (__noinit_end, .) |
0x00800060 _end = . |
0x00800060 PROVIDE (__heap_start, .) |
.eeprom 0x00810000 0x0 |
*(.eeprom*) |
0x00810000 __eeprom_end = . |
.stab 0x00000000 0x738 |
*(.stab) |
.stab 0x00000000 0x36c /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/crtm8.o |
.stab 0x0000036c 0x3cc avrm8ledtest.o |
0x3d8 (size before relaxing) |
.stabstr 0x00000000 0x761 |
*(.stabstr) |
.stabstr 0x00000000 0x761 /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/crtm8.o |
.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) |
OUTPUT(avrm8ledtest.out elf32-avr) |
/programy/C/avr/tests/Blik/avrm8ledtest.out |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:executable |
+* |
\ No newline at end of property |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/programy/C/avr/tests/Blik/Makefile |
---|
0,0 → 1,62 |
# makefile, written by guido socher |
MCU=atmega8 |
#MCU=at90s4433 |
CC=avr-gcc |
OBJCOPY=avr-objcopy |
# optimize for size: |
CFLAGS=-g -mmcu=$(MCU) -Wall -Wstrict-prototypes -Os -mcall-prologues |
#------------------- |
all: avrm8ledtest.hex |
#------------------- |
help: |
@echo "Usage: make all|load|load_pre|rdfuses|wrfuse1mhz|wrfuse4mhz|wrfusecrystal" |
@echo "Warning: you will not be able to undo wrfusecrystal unless you connect an" |
@echo " external crystal! uC is dead after wrfusecrystal if you do not" |
@echo " have an external crystal." |
#------------------- |
avrm8ledtest.hex : avrm8ledtest.out |
$(OBJCOPY) -R .eeprom -O ihex avrm8ledtest.out avrm8ledtest.hex |
avrm8ledtest.out : avrm8ledtest.o |
$(CC) $(CFLAGS) -o avrm8ledtest.out -Wl,-Map,avrm8ledtest.map avrm8ledtest.o |
avrm8ledtest.o : avrm8ledtest.c |
$(CC) $(CFLAGS) -Os -c avrm8ledtest.c |
#------------------ |
load: avrm8ledtest.hex |
./prg_load_uc avrm8ledtest.hex |
# here is a pre-compiled version in case you have trouble with |
# your development environment |
load_pre: avrm8ledtest_pre.hex |
./prg_load_uc avrm8ledtest.hex |
# |
loaduisp: avrm8ledtest.hex |
./prg_load_uc -u avrm8ledtest.hex |
# here is a pre-compiled version in case you have trouble with |
# your development environment |
load_preuisp: avrm8ledtest_pre.hex |
./prg_load_uc -u avrm8ledtest.hex |
#------------------- |
# fuse byte settings: |
# Atmel AVR ATmega8 |
# Fuse Low Byte = 0xe1 (1MHz internal), 0xe3 (4MHz internal), 0xe4 (8MHz internal) |
# Fuse High Byte = 0xd9 |
# Factory default is 0xe1 for low byte and 0xd9 for high byte |
# Check this with make rdfuses |
rdfuses: |
./prg_fusebit_uc -r |
# use internal RC oscillator 1 Mhz |
wrfuse1mhz: |
./prg_fusebit_uc -w 1 |
# use internal RC oscillator 4 Mhz |
wrfuse4mhz: |
./prg_fusebit_uc -w 4 |
# use external 3-8 Mhz crystal |
# Warning: you can not reset this to intenal unless you connect a crystal!! |
wrfusecrystal: |
@echo "Warning: The external crystal setting can not be changed back without a working crystal" |
@echo " You have 3 seconds to abort this with crtl-c" |
@sleep 3 |
./prg_fusebit_uc -w 0 |
#------------------- |
clean: |
rm -f *.o *.map *.out *t.hex |
#------------------- |
/programy/C/avr/tests/Blik/README.txt |
---|
0,0 → 1,63 |
AVR GCC development environment test software. |
See the following article for details: |
http://main.linuxfocus.org/English/November2004/article352.shtml |
To compile type the command: |
make |
Note: You will get some warnings "#warning "This header file is obsolete." |
during compilation with avr-libc-1.4.X. This is because this code will |
also work with avr-libc-1.2.X |
Alternative 1: Programming with uisp (dapa programmer): |
------------------------------------------------------- |
Make sure that you have loaded the following modules in the kernel (for 2.4.x) |
before you use the uisp programmer: |
> /sbin/lsmod |
Module Size Used by |
parport_pc 17808 0 |
ppdev 5312 0 (unused) |
parport 25856 0 [parport_pc ppdev] |
To compile and load use: |
make loaduisp |
Alternative 2: Programming with avrusb500 (high speed usb programmer from tuxgraphics): |
--------------------------------------------------------------------------------------- |
Make sure that you have loaded the following modules in the kernel |
before you use the uisp programmer: |
> /sbin/lsmod |
Module Size Used by |
ftdi_sio 20568 0 |
usbcore 57792 1 [ftdi_sio usbserial] |
To compile and load use: |
make load |
Files: |
------ |
avrm8ledtest.c # the c source code for ATmega8 |
avrm8ledtest_pre.hex # pre-compiled loadable object in case you have |
# trouble to compile the software |
Makefile # Makefile |
README.txt # this file |
circuit.gif # schematic as gif image |
------------------------------------------- |
History: |
version 0.1: 2004-10-01, first Version |
version 0.2: 2004-12-30, corrected fault in delay_ms function |
version 0.3: 2005-10-04, new modular programming with the scripts prg_load_uc |
and prg_fusebit_uc for easy transition to the new |
avrusb500 programmer |
version 0.4: 2006-03-02, compiler independent delay loop. The old delay_ms |
would behave totally different with the new gcc-4 |
version. |
version 0.5: 2006-03-10, Fault in delay_ms corrected |
------------------------------------------- |
Copyright: GPL |
Written by guido socher <guido at tuxgraphics.org> |
------------------------------------------- |
/programy/C/avr/tests/Blik/avrm8ledtest_pre.hex |
---|
0,0 → 1,11 |
:1000000012C02BC02AC029C028C027C026C025C0C6 |
:1000100024C023C022C021C020C01FC01EC01DC0DC |
:100020001CC01BC01AC011241FBECFE5D4E0DEBF28 |
:10003000CDBF10E0A0E6B0E0E6E9F0E002C0059038 |
:100040000D92A036B107D9F710E0A0E6B0E001C0EC |
:100050001D92A036B107E1F710C0D2CFAC0120E06D |
:1000600030E0E0EFF0E005C0CF010197F1F72F5F3E |
:100070003F4F24173507C1F70895CFE5D4E0DEBF21 |
:10008000CDBFA59AAD9884EF91E0E8DFAD9A84EFFB |
:0600900091E0E4DFF7CF70 |
:00000001FF |
/programy/C/avr/tests/Blik/prg_fusebit_uc |
---|
0,0 → 1,97 |
#!/bin/sh |
prg="adude" |
# |
help() |
{ |
echo "prg_fusebit_uc -- read and write fuse bits of the atmega8" |
echo "" |
echo "Usage: prg_fusebit_uc [-hu] -r|-w Freq" |
echo "" |
echo "OPTIONS: -h this help" |
echo " -r read fuse bytes" |
echo " -u use uisp instead of avrdude" |
echo " avrdude can automatically detect dapa or avrusb500." |
echo " uisp can only be used with the parallel port dapa." |
echo " -w write fuse bytes such that a given Freq is used" |
echo " a frequency of 0 means external crystal. Possible" |
echo " values are 0,1,2,4,8" |
echo "" |
echo "EXAMPLE: program the fuses to 4MHz internal" |
echo " prg_fusebit_uc -w 4" |
echo "" |
echo "Warning: you can not undo the setting \"external crystal\" unless" |
echo " you have a crystal that works." |
echo "This script can be easily adapted to different programmer types" |
exit 0 |
} |
while [ -n "$1" ]; do |
case $1 in |
-h) help;shift 1;; |
-u) prg="uisp";shift 1;; |
-r) opt_r="1";shift 1;; |
-w) opt_w="1";freq="$2";shift 2;; |
-*) echo "error: no such option $1. -h for help";exit 1;; |
*) break;; |
esac |
done |
if [ -z "$opt_r" -a -z "$opt_w" ];then |
# one of those options is mandatory |
help |
fi |
hf=0xd9 |
if [ "$opt_w" = "1" ]; then |
case $freq in |
0) lf=0xee;echo "Make sure you have a crystal otherwise you can not change this!";sleep 2;; |
1) lf=0xe1;; |
2) lf=0xe2;; |
4) lf=0xe3;; |
8) lf=0xe4;; |
*) echo "error: no such frequency, -h for help";exit 1;; |
esac |
fi |
if [ "$prg" = "uisp" ]; then |
if [ "$opt_r" = "1" ];then |
set -x |
uisp -dlpt=/dev/parport0 -dprog=dapa --rd_fuses |
set +x |
echo "Explanation: Fuse Low Byte: 0xe1 (1MHz intern), 0xe3 (4MHz intern), " |
echo " 0xe4 (8MHz intern)" |
echo " Fuse High Byte should be 0xd9" |
exit 0 |
fi |
if [ "$opt_w" = "1" ]; then |
set -x |
uisp -dlpt=/dev/parport0 -dprog=dapa --wr_fuse_l=$lf |
uisp -dlpt=/dev/parport0 -dprog=dapa --wr_fuse_h=$hf |
set +x |
exit 0 |
fi |
fi |
if [ "$prg" = "adude" ]; then |
if grep "Vendor=0403 ProdID=6001" /proc/bus/usb/devices > /dev/null ; then |
prg="avrusb500" |
else |
prg="dapa" |
fi |
if [ "$opt_r" = "1" ];then |
set -x |
avrdude -p m8 -c $prg -v -q |
set +x |
echo "Explanation: Fuse Low Byte: 0xe1 (1MHz intern), 0xe3 (4MHz intern), " |
echo " 0xe4 (8MHz intern)" |
echo " Fuse High Byte should be 0xd9" |
exit 0 |
fi |
if [ "$opt_w" = "1" ]; then |
set -x |
avrdude -p m8 -c $prg -u -v -U lfuse:w:$lf:m |
avrdude -p m8 -c $prg -u -v -U hfuse:w:$hf:m |
set +x |
exit 0 |
fi |
fi |
Property changes: |
Added: svn:executable |
+* |
\ No newline at end of property |
/programy/C/avr/tests/Blik/prg_load_uc |
---|
0,0 → 1,38 |
#!/bin/sh |
prg="adude" |
if [ "$1" = "-u" ]; then |
shift; |
prg="uisp" |
fi |
if [ -z "$1" -o "$1" = "-h" -o "$1" = "--help" ]; then |
echo "prg_load_uc -- load a .hex file into a atmega8 microcontroller" |
echo "" |
echo "Usage: prg_load_uc [-hu] File.hex" |
echo "" |
echo "OPTIONS: -h this help" |
echo " -u use uisp instead of avrdude" |
echo " avrdude can automatically detect dapa or avrusb500." |
echo " uisp can only be used with the parallel port dapa." |
echo "" |
echo "This script can be easily adapted to different programmer types" |
exit 0 |
fi |
pfile="$1" |
if [ "$prg" = "uisp" ]; then |
set -x |
uisp -dlpt=/dev/parport0 --erase -dprog=dapa |
uisp -dlpt=/dev/parport0 --upload if="$pfile" -dprog=dapa -v=3 --hash=32 --verify |
set +x |
fi |
if [ "$prg" = "adude" ]; then |
if grep "Vendor=0403 ProdID=6001" /proc/bus/usb/devices > /dev/null ; then |
set -x |
avrdude -p m8 -c avrusb500 -e -U flash:w:"$pfile" |
set +x |
else |
set -x |
avrdude -p m8 -c dapa -e -U flash:w:"$pfile" |
set +x |
fi |
fi |
Property changes: |
Added: svn:executable |
+* |
\ No newline at end of property |
/programy/C/avr/tests/Blik/prg_read_uc |
---|
0,0 → 1,38 |
#!/bin/sh |
prg="adude" |
if [ "$1" = "-u" ]; then |
shift; |
prg="uisp" |
fi |
if [ -z "$1" -o "$1" = "-h" -o "$1" = "--help" ]; then |
echo "prg_read_uc -- read the flahs of an atmega8 microcontroller" |
echo "" |
echo "Usage: prg_load_uc [-hu] File.hex" |
echo "" |
echo "OPTIONS: -h this help" |
echo " -u use uisp instead of avrdude" |
echo " avrdude can automatically detect dapa or avrusb500." |
echo " uisp can only be used with the parallel port dapa." |
echo "" |
echo "This script can be easily adapted to different programmer types" |
exit 0 |
fi |
pfile="$1" |
if [ "$prg" = "uisp" ]; then |
set -x |
#uisp -dlpt=/dev/parport0 --erase -dprog=dapa |
#uisp -dlpt=/dev/parport0 --upload if="$pfile" -dprog=dapa -v=3 --hash=32 --verify |
set +x |
fi |
if [ "$prg" = "adude" ]; then |
if grep "Vendor=0403 ProdID=6001" /proc/bus/usb/devices > /dev/null ; then |
set -x |
avrdude -v -v -p m8 -c avrusb500 -U flash:r:"$pfile:i" |
set +x |
else |
set -x |
avrdude -p m8 -c dapa -U flash:r:"$pfile:i" |
set +x |
fi |
fi |
Property changes: |
Added: svn:executable |
+* |
\ No newline at end of property |