AVR EEPROM

Feb 05, 2014 23 Replies

Hello Eugene!

08 Feb 14 11:17, Eugene Muzychenko wrote to Sergei Podstrigailo:

SP>> ñ ×ÏÔ ËÁË ÐÏÄÓÅÌ ÎÁ Visual Slickedit - ÔÁË ×ÓÅ ÐÒÏÅËÔÙ × ÎÅÍ É SP>> ÄÅÌÁÀ, ÄÌÑ ÌÀÂÏÇÏ ÑÚÙËÁ É ÌÀÂÏÊ ÃÅÌÅ×ÏÊ ÓÉÓÔÅÍÙ...

EM> é ËÁË, ÓÔÏÉÔ ÏÎ Ó×ÏÉÈ $299?

ðÏ ËÒÁÊÎÅÊ ÍÅÒÅ, Ñ ÔÏÌØËÏ ÎÁ ÎÅÇÏ ÓÍÏÇ ÐÅÒÅÓÅÓÔØ Ó äïóÏ×ÏÇÏ íÕÌØÔÉÜÄÉÔÁ. úÁÔÑÎÕÌÏ Ó ÐÅÒ×ÏÊ ÄÏÚÙ :-)

ôÁË ÞÔÏ Ñ ÅÇÏ ÏÄÎÁÖÄÙ ÄÁÖÅ ÞÅÓÔÎÏ ËÕÐÉÌ. ëÓÔÁÔÉ, ÔÕÔ ÖÅ ÐÏÄÔ×ÅÒÄÉÌÏÓØ ÐÒÁ×ÉÌÏ, ÞÔÏ ÄÅÎØÇÉ, ÐÏÔÒÁÞÅÎÎÙÅ ÎÁ ÉÎÓÔÒÕÍÅÎÔÙ, ×ÏÚ×ÒÁÝÁÀÔÓÑ ÎÕ ÐÒÏÓÔÏ Á×ÔÏÍÁÔÉÞÅÓËÉ :-)

Sergei

08 Feb 14 11:41, you wrote to me:

"make release".

FUSES = { (LFUSE_DEFAULT #if !UseCkDiv8 | uint8_t (~FUSE_CKDIV8) #endif ), (HFUSE_DEFAULT ) };

MCU = attiny13 DUDE_MCU = -pt13 DUDE_PROG = -cusbtiny #DUDE_PROG = -cstk500 -Pcom23

TARGET = main

FUSE_MEMORY_SIZE = 2

ifdef FUSE_MEMORY_SIZE

CMD_FUSE = -U fuse:w:lfuse.hex:a CMD_LFUSE = -U lfuse:w:lfuse.hex:a CMD_HFUSE = -U hfuse:w:hfuse.hex:a CMD_EFUSE = -U efuse:w:efuse.hex:a

ifeq "$(FUSE_MEMORY_SIZE)" "1"

CMD_FUSES = -u $(CMD_FUSE) FUSE_FILES = lfuse.hex

endif

ifeq "$(FUSE_MEMORY_SIZE)" "2"

CMD_FUSES = -u $(CMD_LFUSE) $(CMD_HFUSE) FUSE_FILES = lfuse.hex hfuse.hex

endif

ifeq "$(FUSE_MEMORY_SIZE)" "3"

CMD_FUSES = -u $(CMD_LFUSE) $(CMD_HFUSE) $(CMD_EFUSE) FUSE_FILES = lfuse.hex hfuse.hex efuse.hex

endif

endif

lfuse.hex: fuses.hex srec_cat fuses.hex -Intel -crop 0x820000 0x820001 -offset -0x820000 -O lfuse.hex -Intel

hfuse.hex: fuses.hex srec_cat fuses.hex -Intel -crop 0x820001 0x820002 -offset -0x820001 -O hfuse.hex -Intel

efuse.hex: fuses.hex srec_cat fuses.hex -Intel -crop 0x820002 0x820003 -offset -0x820002 -O efuse.hex -Intel

DEF_GCC_FLAGS = -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct

-fshort-enums -Wall -mmcu=$(MCU) -std=gnu++0x

.cpp.o: avr-gcc $(DEF_GCC_FLAGS) -c -Wa,-adhlns=main.lst $< -o $@

$(TARGET).elf: main.o avr-gcc $(DEF_GCC_FLAGS) -Wa,-adhlns=main.o main.o --output $(TARGET).elf

-Wl,-Map=$(TARGET).map,--cref

$(TARGET).hex: $(TARGET).elf avr-objcopy -j .fuse -O ihex $(TARGET).elf fuses.hex avr-objcopy -R .fuse -O ihex $(TARGET).elf avr-objcopy -O ihex -R .eeprom $(TARGET).elf $(TARGET).hex

all: $(TARGET).hex $(FUSE_FILES)

program: all avrdude $(DUDE_PROG) $(DUDE_MCU) -U flash:w:$(TARGET).hex:a $(CMD_FUSES)

clean: rm -f $(TARGET).{hex,o,elf,lst,map} {fuses,lfuse,hfuse}.hex

EM> .cpp.o: EM> avr-gcc $(DEF_GCC_FLAGS) -c -Wa,-adhlns=main.lst $< -o $@

EM> $(TARGET).elf: main.o

[...]

icq:240059686, lj-user:nicka_startcev

Eugene,

You wrote to Andrey Arnold:

EM>>> æØÀÚÙ ÏÐÒÅÄÅÌÑÀÔÓÑ ÔÏÌØËÏ × ÏÄÎÏÍ ÍÅÓÔÅ - × ÔÅËÓÔÅ ÐÒÏÇÒÁÍÍÙ. AA>> á ËÏÇÄÁ Ñ ÉÈ ÏÐÒÅÄÅÌÑÀ × ÂÁÔÞÉËÅ ÄÌÑ ÐÒÏÇÒÁÍÍÉÒÏ×ÁÎÉÑ, ÜÔÏ ÞÔÏ, AA>> Ä×Á ÍÅÓÔÁ? EM> åÓÌÉ ÔÙ ÆØÀÚÁÍÉ ÏÐÒÅÄÅÌÑÅÛØ ÔÕ ÖÅ ÔÁËÔÏ×ÕÀ ÞÁÓÔÏÔÕ - ËÁËÉÍ ÏÂÒÁÚÏÍ Ï EM> ÎÅÊ ÕÚÎÁÅÔ ÐÒÏÇÒÁÍÍÁ?

ôÏ ÖÅ ÍÎÅ, ÂÅÄÁ. äÁ ÐÏ ÓÒÁ×ÎÅÎÉÀ Ó ÔÅÍ, ÞÔÏ ÎÁÄÏ × ÍÅÊËÅ ËÁÖÄÙÊ ÒÁÚ ÎÁËÏ×ÙÒÑÔØ, ÜÔÏ ÔÁËÉÅ ÍÅÌÏÞÉ.

AA>> ëÁË × ÂÁÔÞÉËÅ Ñ ÍÏÇÕ "ÚÁÂÙÔØ" ÏÔ ËÁËÏÇÏ ÉÓÔÏÞÎÉËÁ ÔÁËÔÉÒÕÅÔÓÑ íó, AA>> ÔÁË É × ÐÒÏÇÒÁÍÍÅ ÍÏÇÕ ÜÔÏ ÐÅÒÅÐÕÔÁÔØ, ÉÌÉ ÔÁÍ ÏÓÔÁ×ÉÔØ ÏÔ AA>> ÐÒÅÄÙÄÕÝÅÇÏ ÐÒÏÅËÔÁ (ÎÁÐÒÉÍÅÒ). EM> ðÒÉ ÕËÁÚÁÎÉÉ ÐÁÒÁÍÅÔÒÏ× ÏÔÄÅÌØÎÏ × ÐÒÏÇÒÁÍÍÅ É ÏÔÄÅÌØÎÏ × ÓËÒÉÐÔÅ EM> ÔÅÂÅ, Ó×ÅÒÈ ÜÔÏÇÏ, ÅÝÅ É ÔÒÅÂÕÅÔÓÑ ÏÂÅÓÐÅÞÉÔØ ÉÈ ÓÏÏÔ×ÅÔÓÔ×ÉÅ ÄÒÕÇ EM> ÄÒÕÇÕ.

þÔÏ-ÔÏ ÍÎÅ ÇÏ×ÏÒÉÔ, ÞÔÏ ÜÔÏ ×ӣ ×ÅÔÅÒ ÄÕÀÝÉÊ ÏÔ dude. ñ ÈÏÔØ É ÐÒÏÇÒÁÍÍÉÒÏ×ÁÌ ÞÉÐÙ ÉÚ ÐÏÄ ÎÅÇÏ, ÎÏ ÓÏ×ÓÅÍ ÎÅ ÍÎÏÇÏ... ÷ÏÔ ÐÒÉÍÅÒ Ó avreal:

=== Begin of wr_L2M2.bat === @echo off

cd Prog call Progr.bat ../../src_Output L2M2.hex === End of wr_L2M2.bat =====

÷ÓÅ ÐÏÔÒÏÈÁ ÌÅÖÁÔ ×ÙÛÅ × ÄÉÒÅËÔÏÒÉÉ Prog, Á ÐÁÒÁÍÅÔÒÏ× ÍÏÖÅÛØ ÚÁÄÁÔØ ÓËÏÌØËÏ ÈÏÞÅÛØ. ôÕ ÖÅ "×ÔÏÒÕÀ" ÞÁÓÔÏÔÕ, ÎÁÐÒÉÍÅÒ, ËÏÌØ ÔÙ Ë ÎÅÊ ÎÅÒÁ×ÎÏÄÕÛÅÎ;) ÉÌÉ ÔÁÍ, Åݣ É ÉÍÑ ÞÉÐÁ ÄÌÑ ÐÏÌÎÏÇÏ ÓÞÁÓÔØÑ. HÏ fuse ÐÏ ÌÀÂÏÍÕ ÏÄÉÎ ÒÁÚ ÐÉÓÁÔØ ÎÁÄÏ, ÐÏÓÅÍÕ ÎÅ ×ÁÖÎÏ, ÇÄÅ ÉÍÅÎÎÏ. (ÒÁÚÕÍÅÅÔÓÑ ÍÏÖÎÏ É ÇÏÔÏ×ÙÍÉ ÂÁÊÔÁÍÉ) á ÓÁÍ ÂÁÔÞÉË (ËÒÏÍÅ fuse), ÍÏÖÎÏ ÎÁÐÉÓÁÔØ ÏÄÉÎ ÄÌÑ ×ÓÅÈ.

=== Begin of progr.bat === @echo off

SET HEXFILE=%1/%2

@echo ----------------------------------------------------------- @echo Start Programming AVR with file: %2 @echo ----------------------------------------------------------- @echo . @echo Deleting flash... @avreal32 +MEGA128 -p1 -as -o800 -%% -e > output.txt @if errorlevel 1 goto ERROR @echo done. @echo . @echo Writing Fuses... @avreal32 +MEGA128 -p1 -as -o800 -%%

-fBLEV=1,BODEN=1,SUT=0,CKSEL=0,BLB1=3,BLB0=3,OCDEN=0,JTAGEN=0,CKOPT=1,EESV=1,BS IZ=0,BRST=1,M103C=1,WDTON=1, -w > output.txt @if errorlevel 1 goto ERROR @echo done.

REM ôÕÔ ÐÒÅÉÍÕÝÅÓÔ×Ï × ÔÏÍ, ÞÔÏ ÓÔÁÒÔÕÅÔ ÎÏ×ÙÊ ÞÉÐ Ó ×ÓÔÒÏÅÎÎÙÍ REM ÇÅÎÅÒÁÔÏÒÏÍ É ÐÏÓÅÍÕ fuse ÎÁÄÏ ÐÉÓÁÔØ ÍÅÄÌÅÎÎÏ, Á ×ÏÔ ÏÓÔÁÌØÎÏÅ REM ÍÏÖÎÏ ÐÉÓÁÔØ ÓÏ ÓËÏÒÏÓÔØÀ ÂÌÉÚËÏÊ Ë ÞÁÓÔÏÔÅ Ë×ÁÒÃÁ. REM é ÓÕÄÑ ÐÏ ÏÔ×ÅÔÕ, ×ÞÅÒÁÛÎÀÀ ÒÅÐÌÉËÕ ÎÁ ÜÔÕ ÔÅÍÕ, ÔÏ ÐÒÏÓÔÏ REM ÎÁÐÒÏÓÔÏ ÎÅ ×ËÕÒÉÌ.

@echo . @echo Programming... @avreal32 +MEGA128 -p1 -as -o6800 -%% -w -c %HEXFILE% > output.txt @if errorlevel 1 goto ERROR @echo done. @echo . @echo Verifing... @avreal32 +MEGA128 -p1 -as -o6800 -%% -v -c %HEXFILE% > output.txt @if errorlevel 1 goto ERROR @echo done. @echo .

REM ôÕÔ × ÔÏÍ ÖÅ ÓÔÉÌÅ ÄÏÂÁ×ÌÑÅÔÓÑ *.eep, ÅÓÌÉ ÔÒÅÂÕÅÔÓÑ. REM SET EPPFILE=%1/%3

REM cd Prog REM call Programme.bat ../CC_CPU_V4_Output CC_CPU_V4.hex CC_CPU_V4.eep REM ÅÓÌÉ hex É epp ÌÅÖÁÔ × ÄÒÕÇÏÍ ÍÅÓÔÅ, Á ÎÅ ÔÁË, ËÁË × ÐÒÉÍÅÒÅ ×ÙÛÅ.

@echo ----------------------------------------------------------- @echo Device successfully programmed! @echo ----------------------------------------------------------- @GOTO END

:ERROR

@echo . @echo ----------------------------------------------------------- @echo AN ERROR OCCURED DURING PROGRAMMING !!!!! @echo . @type output.txt @GOTO END2

:END @del output.txt

:END2 pause

=== End of progr.bat =====

EM>

AA>> HÕ É ÐÏÔÏÍ, ÎÁ ÓÔÁÄÉÉ ÏÔÌÁÄËÉ ÍÎÅ ÎÕÖÅÎ ÄÏÓÔÕÐ ËÏ ×ÓÅÍÕ, Á ÐÏÓÌÅ AA>> ÔÏÇÏ, ËÁË ÐÒÏÇÒÁÍÍÁ ÇÏÔÏ×Á, ÐÒÅÄÏÈÒÁÎÉÔÅÌÉ ÓÞÉÔÙ×ÁÎÉÑ AA>> ×Ú×ÏÄÑÔÓÑ... ÍÅÎÑÔØ ÞÔÏ × ÐÒÏÇÒÁÍÍÅ, ÞÔÏ × ÂÁÔÞÉËÅ... ÒÁÚÎÉÃÙ ÎÅ AA>> ×ÉÖÕ. EM> ðÒÉ ÖÅÌÁÎÉÉ × ÍÅÊËÆÁÊÌÅ ÍÏÖÎÏ ÓÄÅÌÁÔØ É ×Ú×ÏÄ ÐÒÅÄÏÈÒÁÎÉÔÅÌÅÊ, ÐÏ EM> ËÁËÏÍÕ-ÎÉÂÕÄØ "make release".

ðÒÉ ÖÅÌÁÎÉÉ... Á ÎÁ ÐÒÁËÔÉËÅ, ÓÔÁÌÏ ÂÙÔØ ÔÙ ÜÔÏ ÄÅÌÁÅÛØ ËÁÖÄÙÊ ÒÁÚ ÒÕÞËÁÍÉ, ËÁË ÔÏÌØËÏ ÔÅÂÅ ÐÏÔÒÅÂÏ×ÁÌÏÓØ ÞÔÏ-ÔÏ ÉÚÍÅÎÉÔØ É ÏÔÌÁÄÉÔØ × ÕÖÅ "×ÙÐÕÝÅÎÎÏÊ" ÐÒÏÇÒÁÍÍÅ...

EM>

AA>> èÏÔÑ, ÎÁÕËÉ ÒÁÄÉ, ÂÙÌÏ ÂÙ ÉÎÔÅÒÅÓÎÏ ÎÁ ÐÒÉÍÅÒÅ ÐÏÓÍÏÔÒÅÔØ, ËÁË AA>> ÜÔÏ ÄÅÌÁÅÔÓÑ. EM>

EM> ÷ ÐÒÏÇÒÁÍÍÅ:

óÐÁÓÉÂÏ, ÚÁ ÐÒÉÍÅÒ. ðÏÓÔÁÒÁÀÓØ Ó ÎÉÍ ÒÁÚÏÂÒÁÔØÓÑ ÓÏ ×ÒÅÍÅÎÅÍ.

AA>> HÅ ÚÁÍÅÔÉÌ ÓÌÕÞÁÅÍ, ËÕÄÁ ÓÅËÃÉÑ "TestSec" ÐÒÉÚÅÍÌÉÌÁÓØ? AA>> éÍÅÎÎÏ ÞÔÏ ÏÛÉÂËÁ × ÏÂÏÌÏÞËÅ É ÉÍÅÎÎÏ × ÞÁÓÔÉ ËÁÓÁÀÝÅÊÓÑ ååðòïí. EM> åÓÌÉ ÏÂÏÌÏÞËÁ AVR Studio ËÁË-ÔÏ É ×ÙÌÁ×ÌÉ×ÁÅÔ ÓÁÍÁ ÓÅËÃÉÉ ÉÚ ËÏÄÁ, ÔÏ EM> ÏÂÏÌÏÞËÁ WinAVR ÜÔÏÇÏ ÏÄÎÏÚÎÁÞÎÏ ÎÅ ÄÅÌÁÅÔ.

÷ ÜÔÏÊ ÞÁÓÔÉ ÏÎÁ ÉÎÔÅÒÇÉÒÏ×ÁÎÁ × óÔÕÄÉÀ, Hñð. á ËÏÌØ ÔÁË, ÔÏ É ÒÁÂÏÔÁÔØ ÄÏÌÖÎÁ, Á ÎÅ ÔÏÌØËÏ ÏÔÓ×ÅÞÉ×ÁÔØ Ó×ÏÉÍÉ ÎÅ ÐÏÌÎÏÓÔØÀ ÒÁÂÏÔÁÀÝÉÍÉ ×ÏÚÍÏÖÎÏÓÔÑÍÉ.

Andrey

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required