AVR-GCC

Apr 16, 2005 46 Replies
÷ÓÅÍ ÐÒÉ×ÅÔ!
ðÏÓÌÅ AVR-GCC ÏÂßÅËÔÎÙÊÍ ÆÁÊÌ ÓÔÁÌ ÓÏÄÅÒÖÁÔØ ÃÅÌÙÊ ÎÁÂÏÒ ÓÌÕÖÅÂÎÙÈ ÆÕÎËÃÉÊ ÷ÏÔ ÏÎ. === ãÉÔÉÒÕÀ ÆÁÊÌ 1 ===
00000000 <__vectors>:
0000001a <__ctors_end>:
00000026 <__do_copy_data>:
00000032 <.do_copy_data_loop>:
00000038 <.do_copy_data_start>:
0000003e <__do_clear_bss>:
00000046 <.do_clear_bss_loop>:
00000048 <.do_clear_bss_start>:
00000050 <__bad_interrupt>: === ëÏÎÅà ÃÉÔÁÔÙ ===
ðÒÏÛÕ ×ÁÛÅÊ ÐÏÍÏÝÉ ÏÂßÑÓÎÉÔØ ËÁËÕÀ ÒÏÌØ ÉÇÁÅÔ ËÁÖÄÁÑ? éÌÉ ÏÔÏÓÌÁÔØ Ë ËÁËÏÍÕ ÔÏ ÉÓÔÏÞÎÉËÕ.
óÐÁÓÉÂÏ.


Bye All! ... á ÔÙ ×ÏÓÐÏÌØÚÏ×ÁÌÓÑ ÐÁËÅÔÏÍ FTN?


Hello Sergei.

16 Apr 05 11:52, you wrote to all:

ST> ðÏÓÌÅ AVR-GCC ÏÂßÅËÔÎÙÊÍ ÆÁÊÌ ÓÔÁÌ ÓÏÄÅÒÖÁÔØ ÃÅÌÙÊ ÎÁÂÏÒ ÓÌÕÖÅÂÎÙÈ ST> ÆÕÎËÃÉÊ ÷ÏÔ ÏÎ. ST> === ãÉÔÉÒÕÀ ÆÁÊÌ 1 === ST> 00000000 <__vectors>: ST> 0000001a <__ctors_end>: ST> 00000026 <__do_copy_data>: ST> 00000032 <.do_copy_data_loop>: ST> 00000038 <.do_copy_data_start>: ST> 0000003e <__do_clear_bss>: ST> 00000046 <.do_clear_bss_loop>: ST> 00000048 <.do_clear_bss_start>: ST> 00000050 <__bad_interrupt>: ST> === ëÏÎÅà ÃÉÔÁÔÙ ===

ST> ðÒÏÛÕ ×ÁÛÅÊ ÐÏÍÏÝÉ ÏÂßÑÓÎÉÔØ ËÁËÕÀ ÒÏÌØ ÉÇÁÅÔ ËÁÖÄÁÑ?

HÅÔ ÔÁÍ ÔÁËÉÈ ÆÕÎËÃÉÊ. üÔÏ ÐÒÏÓÔÏ ÍÅÔËÉ × ÓÔÁÒÔÁÐÅ.

ST> éÌÉ ÏÔÏÓÌÁÔØ Ë ËÁËÏÍÕ ÔÏ ÉÓÔÏÞÎÉËÕ.

éÓÈÏÄÎÉËÉ avr-libc. ëÏÎËÒÅÔÎÏ ÆÁÊÌ gcrt1.S

Alexey

Hello, Sergei! You wrote to All on Sat, 16 Apr 2005 12:52:23 +0400:

ST> ðÏÓÌÅ AVR-GCC ÏÂßÅËÔÎÙÊÍ ÆÁÊÌ ÓÔÁÌ ÓÏÄÅÒÖÁÔØ ÃÅÌÙÊ ÎÁÂÏÒ ÓÌÕÖÅÂÎÙÈ ST> ÆÕÎËÃÉÊ ÷ÏÔ ÏÎ. ðÏÓÍÏÔÒÉ ÎÁ ÁÓÓÅÍÂÌÅÒÎÙÊ ÌÉÓÔÉÎÇ. ôÁÍ ÐÏ ËÏÄÕ ÐÏÎÑÔØ ÍÏÖÎÏ.

ST> 00000000 <__vectors>: ôÁÂÌÉÃÁ ×ÅËÔÏÒÏ× ÐÒÅÒÙ×ÁÎÉÊ.

ST> 0000001a <__ctors_end>: ëÁÖÅÔÓÑ, ÚÄÅÓØ ÎÁÞÉÎÁÅÔÓÑ ÔÁÂÌÉÃÁ ËÏÎÓÔÁÎÔ ÄÌÑ ÉÎÉÃÉÁÌÉÚÁÃÉÉ ÓÔÁÔÉÞÅÓËÉÈ ÐÅÒÅÍÅÎÎÙÈ.

ST> 00000026 <__do_copy_data>: ST> 00000032 <.do_copy_data_loop>: ST> 00000038 <.do_copy_data_start>: æÕÎËÃÉÑ ÉÎÉÃÉÁÌÉÚÁÃÉÉ ÓÔÁÔÉÞÅÓËÉÈ ÐÅÒÅÍÅÎÎÙÈ. ôÅÈ, ÄÌÑ ËÏÔÏÒÙÈ ÕËÁÚÁÎÏ ÎÁÞÁÌØÎÏÅ ÚÎÁÞÅÎÉÅ.

ST> 0000003e <__do_clear_bss>: ST> 00000046 <.do_clear_bss_loop>: ST> 00000048 <.do_clear_bss_start>: á ÜÔÏ ÆÕÎËÃÉÑ ÏÂÎÕÌÅÎÉÑ ÎÅÉÎÉÃÉÁÌÉÚÉÒÏ×ÁÎÎÙÈ ÐÅÒÅÍÅÎÎÙÈ.

ST> 00000050 <__bad_interrupt>: óÀÄÁ ÕËÁÚÙ×ÁÀÔ ÎÅÉÓÐÏÌØÚÏ×ÁÎÎÙÅ ×ÅËÔÏÒÁ ÐÒÅÒÙ×ÁÎÉÊ. ðÅÒÅÈÏÄ ÎÁ ÎÕÌÅ×ÏÊ ÁÄÒÅÓ.

ST> óÐÁÓÉÂÏ. ðÏÖÁÌÕÊÓÔÁ. :)

With best regards, Serg.

ðÒÉ×ÅÔ Sergei!

16 Apr 05 12:52, Sergei Tovpeko ÐÉÓÁÌ All:

ST> ðÏÓÌÅ AVR-GCC ÏÂßÅËÔÎÙÊÍ ÆÁÊÌ ÓÔÁÌ ÓÏÄÅÒÖÁÔØ ÃÅÌÙÊ ÎÁÂÏÒ ÓÌÕÖÅÂÎÙÈ ST> ÆÕÎËÃÉÊ ÷ÏÔ ÏÎ. ST> === ãÉÔÉÒÕÀ ÆÁÊÌ 1 === ST> === ëÏÎÅà ÃÉÔÁÔÙ ===

ST> ðÒÏÛÕ ×ÁÛÅÊ ÐÏÍÏÝÉ ÏÂßÑÓÎÉÔØ ËÁËÕÀ ÒÏÌØ ÉÇÁÅÔ ËÁÖÄÁÑ? éÌÉ ÏÔÏÓÌÁÔØ Ë ST> ËÁËÏÍÕ ÔÏ ÉÓÔÏÞÎÉËÕ.

äÙË, ÓÍÏÔÒÉ ÉÓÈÏÄÎÉËÉ ÜÔÉÈ ÆÕÎËÃÉÊ, ðÏ-ÍÏÅÍÕ ÔÁÍ ×ÓÅ ÐÏÎÑÔÎÏ. HÉÖÅ ËÒÁÔËÏ ÐÏÑÓÎÀ ÔÅ, ÞÔÏ Ñ ÚÎÁÀ.

ST> 00000026 <__do_copy_data>: ST> 0000003e <__do_clear_bss>:

HÁÞÉÎÁÑ Ó ËÁËÏÊ-ÔÏ ×ÅÒÓÉÉ ÓÁÂÖ ÎÁÞÁÌ × ËÁÖÄÙÊ ÇÅÎÅÒÉÒÕÅÍÙÊ ÍÏÄÕÌØ ×ÓÔÁ×ÌÑÔØ

.global __do_copy_data .global __do_clear_bss

þÔÏ ÜÔÏ, É ÎÁÆÉÇÁ ÎÕÖÎÏ, Ñ ÎÅ ÚÎÁÀ, ÎÉËÏÇÄÁ ÎÅ ÐÏÌØÚÕÀÓØ. éÚ ÎÁÚ×ÁÎÉÑ ÎÅÔÒÕÄÎÏ ÄÏÇÁÄÁÔØÓÑ, ÞÔÏ ÏÎÉ ËÏÐÉÒÕÀÔ ÏÂÒÁÚ ÓÅËÃÉÉ .data É ÏÞÉÝÁÀÔ ÓÅËÃÉÀ .bss ÓÏÏÔ×ÅÔÓÔ×ÅÎÎÏ. ñ ÜÔÏ ÄÅÌÁÀ × ÓÔÁÒÔÁÐÅ ÂÅÚ ×ÙÚÏ×Ï× ×ÎÅÛÎÉÈ ÆÕËÎÃÉÊ. ëÓÔÁÔÉ, ËÔÏ-ÎÉÂÕÄØ ÚÎÁÅÔ, ËÁË ÏÔ ÎÉÈ ÉÚÂÁ×ÉÔÓØÑ?

ST> 00000000 <__vectors>:

ôÁËÏÊ ÓÉÍ×ÏÌ Õ ÍÅÎÑ "Á×ÔÏÍÁÔÏÍ" ÎÅ ÐÏÑ×ÌÑÅÔÓÑ. ïÔËÕÄÁ ÔÙ ÅÇÏ ×ÚÑÌ? ñ ÄÏÇÁÄÙ×ÁÀÓØ, ÞÔÏ ÜÔÏ Õ ÔÅÂÑ ÔÁÂÌÉÃÁ ×ÅËÔÏÒÏ× ÐÒÅÒÙ×ÁÎÉÊ.

ST> 0000001a <__ctors_end>:

HÁ×ÅÒÎÏÅ ËÏÎÅà ÔÁÂÌÉÃÙ ËÏÎÓÔÒÕËÔÏÒÏ× ÇÌÏÂÁÌØÎÙÈ ÏÂßÅËÔÏ×. ïÐÑÔØ ÖÅ, ËÏÍÐÉÌÑÔÏÒ ÅÇÏ ÓÁÍ ÎÅ ÇÅÎÅÒÉÔ, ÉÝÉ, ÏÔËÕÄÁ ÏÎ Õ ÔÅÂÑ ×ÚÑÌÓÑ.

ST> 00000032 <.do_copy_data_loop>: ST> 00000038 <.do_copy_data_start>: ST> 00000046 <.do_clear_bss_loop>: ST> 00000048 <.do_clear_bss_start>: ST> 00000050 <__bad_interrupt>:

ôÁËÉÈ ÓÉÍ×ÏÌÏ× Õ ÍÅÎÑ ÔÏÖÅ ÎÅÔ, ÉÈ ÎÁÚÎÁÞÅÎÉÅ ÔÕÍÁÎÎÏ... :) ÷ÓÅÇÏ ÎÁÉÌÕÞÛÅÇÏ, [Team PCAD 2000] áÌÅËÓÅÊ í. ... óÏ×ÅÔ ÄÎÑ: ÞÔÏÂÙ ÕÂÉÔØ ÖÉÒÎÕÀ ÌÏÛÁÄØ, ÄÏÂÁרÔÅ Ë ËÁÐÌÅ ÎÉËÏÔÉÎÁ ËÁÐÌÀ fairy

Hello Alex.

19 Apr 05 04:50, you wrote to Sergei Tovpeko:

AM> .global __do_copy_data AM> .global __do_clear_bss

AM> þÔÏ ÜÔÏ, É ÎÁÆÉÇÁ ÎÕÖÎÏ, Ñ ÎÅ ÚÎÁÀ, ÎÉËÏÇÄÁ ÎÅ ÐÏÌØÚÕÀÓØ.

þÅÇÏ ×Ù ×ÙÄÕÍÙ×ÁÅÔÅ? üÔÏ ÐÒÏÓÔÏ ÍÅÔËÉ × ÓÔÁÒÔÁÐÅ (gcrt1.S):

------------------------------------- __do_copy_data: ldi r17, hi8(__data_end) ldi r26, lo8(__data_start) ldi r27, hi8(__data_start) ldi r30, lo8(__data_load_start) ldi r31, hi8(__data_load_start)

/* On the enhanced core, "elpm" with post-increment updates RAMPZ automatically. Otherwise we have to handle it ourselves. */

#ifdef __AVR_ENHANCED__ ldi r16, hh8(__data_load_start) #else ldi r16, hh8(__data_load_start - 0x10000) .__do_copy_data_carry: inc r16 #endif out _SFR_IO_ADDR(RAMPZ), r16 rjmp .__do_copy_data_start .__do_copy_data_loop: #ifdef __AVR_ENHANCED__ elpm r0, Z+ #else elpm #endif st X+, r0 #ifndef __AVR_ENHANCED__ adiw r30, 1 brcs .__do_copy_data_carry #endif .__do_copy_data_start: cpi r26, lo8(__data_end) cpc r27, r17 brne .__do_copy_data_loop

---------------------------------------

AM> éÚ AM> ÎÁÚ×ÁÎÉÑ ÎÅÔÒÕÄÎÏ ÄÏÇÁÄÁÔØÓÑ, ÞÔÏ ÏÎÉ ËÏÐÉÒÕÀÔ ÏÂÒÁÚ ÓÅËÃÉÉ .data É AM> ÏÞÉÝÁÀÔ ÓÅËÃÉÀ .bss ÓÏÏÔ×ÅÔÓÔ×ÅÎÎÏ. ñ ÜÔÏ ÄÅÌÁÀ × ÓÔÁÒÔÁÐÅ ÂÅÚ ×ÙÚÏ×Ï× AM> ×ÎÅÛÎÉÈ ÆÕËÎÃÉÊ.

ôÏ ÅÓÔØ? ôÙ ÉÓÐÏÌØÚÕÅÛØ Ó×ÏÊ ÓÔÁÒÔÁÐ?

AM> ëÓÔÁÔÉ, ËÔÏ-ÎÉÂÕÄØ ÚÎÁÅÔ, ËÁË ÏÔ ÎÉÈ ÉÚÂÁ×ÉÔÓØÑ?

úÁÞÅÍ?

Alexey

ðÒÉ×ÅÔ Alexey!

20 Apr 05 14:19, Alexey Boyko ÐÉÓÁÌ Alex Mogilnikov:

AM>> .global __do_copy_data AM>> .global __do_clear_bss

AM>> þÔÏ ÜÔÏ, É ÎÁÆÉÇÁ ÎÕÖÎÏ, Ñ ÎÅ ÚÎÁÀ, ÎÉËÏÇÄÁ ÎÅ ÐÏÌØÚÕÀÓØ.

AB> þÅÇÏ ×Ù ×ÙÄÕÍÙ×ÁÅÔÅ?

íÙ ÎÉÞÅÇÏ ÎÅ ×ÙÄÕÍÙ×ÁÅÍ. ÷ÏÔ ÒÅÚÕÌØÔÁÔ ËÏÍÐÉÌÑÃÉÉ ÐÕÓÔÏÇÏ ÆÁÊÌÁ: =================================== .file "null.c" .arch avr2 __SREG__ = 0x3f __SP_H__ = 0x3e __SP_L__ = 0x3d __tmp_reg__ = 0 __zero_reg__ = 1 .global __do_copy_data .global __do_clear_bss /* File "null.c": code 0 = 0x0000 ( 0), prologues 0, epilogues 0 */ ===================================

AB> üÔÏ ÐÒÏÓÔÏ ÍÅÔËÉ × ÓÔÁÒÔÁÐÅ (gcrt1.S):

HÅ ÚÎÁÀ. ÷ ÍÏÉÈ ÓÔÁÒÔÁÐÁÈ ÔÁËÉÈ ÍÅÔÏË ÎÅÔ, Á "ÓÔÁÎÄÁÒÔÎÙÍÉ" Ñ ÎÅ ÐÏÌØÚÕÀÓØ. äÌÑ ÞÅÇÏ ËÏÍÐÉÌÑÔÏÒ ×ËÌÀÞÁÅÔ ÜÔÉ ÏÂßÑ×ÌÅÎÉÑ × ËÁÖÄÙÊ ÆÁÊÌ, ÄÌÑ ÍÅÎÑ ÚÁÇÁÄËÁ.

AB> ôÏ ÅÓÔØ? ôÙ ÉÓÐÏÌØÚÕÅÛØ Ó×ÏÊ ÓÔÁÒÔÁÐ?

äÁ.

AM>> ëÓÔÁÔÉ, ËÔÏ-ÎÉÂÕÄØ ÚÎÁÅÔ, ËÁË ÏÔ ÎÉÈ ÉÚÂÁ×ÉÔÓØÑ?

AB> úÁÞÅÍ?

èÍ. HÅ ÚÎÁÀ. :) ëÏÇÄÁ-ÔÏ ÐÏÞÅÍÕ-ÔÏ ÜÔÏ ÍÎÅ ÎÅ ÐÏÎÒÁ×ÉÌÏÓØ, ÓÅÊÞÁÓ ÎÅ ÐÏÍÎÀ ÐÏÞÅÍÕ. :) ÷ÒÏÄÅ ÂÙ ÎÅ ÍÅÛÁÅÔ... ÎÏ ÎÅÁËËÕÒÁÔÎÅÎØËÏ ËÁË-ÔÏ. :))) ÷ÓÅÇÏ ÎÁÉÌÕÞÛÅÇÏ, [Team PCAD 2000] áÌÅËÓÅÊ í. ... úÁÐÁÄÎÏ-ÕÒÁÌØÓËÏÅ ÒÅÇÉÏÎÁÌØÎÏÅ ÏÂÝÅÓÔ×Ï ÄÏÂÒÏ×ÏÌØÎÙÈ ÕÞÒÅÄÉÔÅÌÅÊ.

Thu Apr 21 2005 09:32, Alex Mogilnikov wrote to Alexey Boyko:

AB>> ôÏ ÅÓÔØ? ôÙ ÉÓÐÏÌØÚÕÅÛØ Ó×ÏÊ ÓÔÁÒÔÁÐ?

AM> äÁ.

úÁÞÅÍ?

WBR, Yuriy.

Thu Apr 21 2005 19:28, Yuriy K wrote to Alex Mogilnikov:

AB>>> ôÏ ÅÓÔØ? ôÙ ÉÓÐÏÌØÚÕÅÛØ Ó×ÏÊ ÓÔÁÒÔÁÐ? AM>> äÁ. YK> úÁÞÅÍ?

ðÏÄÐÒÁ×ÌÅÎÎÙÊ C startup ÂÙ×ÁÅÔ ÎÕÖÅÎ.

  1. ðÒÏ×ÅÒËÁ ROM/RAM ÎÁ ×ÁÌÉÄÎÏÓÔØ

  1. HÁÓÔÒÏÊËÁ memory map × ÚÁ×ÉÓÉÍÏÓÔÉ ÏÔ ÖÅÌÅÚÁ
  2. ðÅÒÅÄÁÞÁ ËÁËÉÈ-ÎÉÂÕÄØ ÐÁÒÁÍÅÔÒÏ× × main(...)
  3. éÎÉÃÉÁÌÉÚÁÃÉÑ ÒÅÇÉÓÔÒÏ×, ËÏÔÏÒÙÅ ÍÏÇÕÔ ÂÙÔØ ÐÒÏÐÉÓÁÎÙ ÔÏÌØËÏ × ÔÅÞÅÎÉÅ N ÔÁËÔÏ× ÐÏÓÌÅ ÒÅÓÅÔÁ (ÎÁÐÒÉÍÅÒ, 68HC11).
  4. éÎÉÃÉÁÌÉÚÁÃÉÑ ÎÅÔÒÉ×ÉÁÌØÎÏÇÏ ÖÅÌÅÚÁ
  5. HÅÓËÏÌØËÏ ÒÁÚÎÙÈ ÔÏÞÅË ×ÈÏÄÁ × ÚÁ×ÉÓÉÍÏÓÔÉ ÏÔ
  6. íÎÏÇÏÚÁÄÁÞÎÏÓÔØ É related issues

VLV

"âÙÔØ ÞÅÓÔÎÙÍ - ÌÕÞÛÉÊ ÓÐÏÓÏ ÏÓÔÁ×ÁÔØÓÑ ÂÅÄÎÙÍ" (c) HÁÐÏÌÅÏÎ âÏÎÁÐÁÒÔ

Thu Apr 21 2005 19:56, Vladimir Vassilevsky wrote to Yuriy K:

AB>>>> ôÏ ÅÓÔØ? ôÙ ÉÓÐÏÌØÚÕÅÛØ Ó×ÏÊ ÓÔÁÒÔÁÐ? AM>>> äÁ. YK>> úÁÞÅÍ?

VV> ðÏÄÐÒÁ×ÌÅÎÎÙÊ C startup ÂÙ×ÁÅÔ ÎÕÖÅÎ. VV> VV> 1. ðÒÏ×ÅÒËÁ ROM/RAM ÎÁ ×ÁÌÉÄÎÏÓÔØ

äÅÌÁÅÔÓÑ × main();

VV> 2. HÁÓÔÒÏÊËÁ memory map × ÚÁ×ÉÓÉÍÏÓÔÉ ÏÔ ÖÅÌÅÚÁ

ôÏÌØËÏ ÅÓÌÉ ÍÏÖÎÏ Ä×ÉÇÁÔØ RAM/ROM.

VV> 3. ðÅÒÅÄÁÞÁ ËÁËÉÈ-ÎÉÂÕÄØ ÐÁÒÁÍÅÔÒÏ× × main(...)

ïÔËÕÄÁ É ÚÁÞÅÍ??

VV> 4. éÎÉÃÉÁÌÉÚÁÃÉÑ ÒÅÇÉÓÔÒÏ×, ËÏÔÏÒÙÅ ÍÏÇÕÔ ÂÙÔØ ÐÒÏÐÉÓÁÎÙ ÔÏÌØËÏ VV> × ÔÅÞÅÎÉÅ N ÔÁËÔÏ× ÐÏÓÌÅ ÒÅÓÅÔÁ (ÎÁÐÒÉÍÅÒ, 68HC11).

äÁ. HÏ ÜÔÏ ÂÙÌÏ ÄÁ×ÎÏ É ÎÅÐÒÁ×ÄÁ. :-)

VV> 5. éÎÉÃÉÁÌÉÚÁÃÉÑ ÎÅÔÒÉ×ÉÁÌØÎÏÇÏ ÖÅÌÅÚÁ

÷ main()

VV> 6. HÅÓËÏÌØËÏ ÒÁÚÎÙÈ ÔÏÞÅË ×ÈÏÄÁ × ÚÁ×ÉÓÉÍÏÓÔÉ ÏÔ VV> 7. íÎÏÇÏÚÁÄÁÞÎÏÓÔØ É related issues

úÁÞÅÍ? ðÏÞÅÍÕ ÎÅÌØÚÑ ÜÔÏ ÓÄÅÌÁÔØ × main().

WBR, Yuriy.

Thu Apr 21 2005 20:02, Yuriy K wrote to Vladimir Vassilevsky:

VV>> ðÏÄÐÒÁ×ÌÅÎÎÙÊ C startup ÂÙ×ÁÅÔ ÎÕÖÅÎ. VV>> 1. ðÒÏ×ÅÒËÁ ROM/RAM ÎÁ ×ÁÌÉÄÎÏÓÔØ YK> äÅÌÁÅÔÓÑ × main();

main() ×ÙÐÏÌÎÑÅÔÓÑ -> ÓÔÁÔÉÞÅÓËÉÅ ÏÂØÅËÔÙ É ÓÔÅË ÉÎÉÃÉÁÌÉÚÉÒÏ×ÁÎÙ ÈÒÅÎ ÚÎÁÅÔ ÞÅÍ ÈÒÅÎ ÚÎÁÅÔ ËÁË. ÷ÏÒÏÛÉÔØ RAM ÎÅÌØÚÑ É ×ÏÚÍÏÖÎÏ ÕÖÅ ×ÙÐÏÌÎÑÅÔÓÑ ÎÅ×ÁÌÉÄÎÙÊ ËÏÄ. ÷ÓÅ ÐÁÒÁÎÏÉÄÁÌØÎÙÅ ÐÒÏ×ÅÒËÉ ÄÏÌÖÎÙ ÂÙÔØ ËÁË ÍÏÖÎÏ ÒÁÎØÛÅ.

VV>> 2. HÁÓÔÒÏÊËÁ memory map × ÚÁ×ÉÓÉÍÏÓÔÉ ÏÔ ÖÅÌÅÚÁ YK> ôÏÌØËÏ ÅÓÌÉ ÍÏÖÎÏ Ä×ÉÇÁÔØ RAM/ROM.

HÅ ÍÏÖÎÏ, Á ÎÕÖÎÏ :-}

VV>> 3. ðÅÒÅÄÁÞÁ ËÁËÉÈ-ÎÉÂÕÄØ ÐÁÒÁÍÅÔÒÏ× × main(...) YK> ïÔËÕÄÁ É ÚÁÞÅÍ?? þÔÏÂÙ ÓÏÏÂÝÉÔØ ÐÒÏÇÒÁÍÍÅ, × ËÁËÏÍ ÏËÒÕÖÅÎÉÉ É ÎÁ ËÁËÏÍ ÖÅÌÅÚÅ ÏÎÁ ÚÁÐÕÝÅÎÁ, ÇÄÅ ÎÁÈÏÄÉÔÓÑ HAL, ÇÄÅ ÂÕÔÌÏÄÅÒ, ÇÄÅ ÌÉÂÙ, ÞÔÏ ÅÓÔØ, ÞÅÇÏ ÎÅÔ. äÁÎÎÙÊ ËÏÎËÒÅÔÎÙÊ ÍÏÄÕÌØ ×Ï×ÓÅ ÎÅ ÏÂÑÚÁÎ ÂÙÔØ ÅÄÉÎÓÔ×ÅÎÎÙÍ × ÓÉÓÔÅÍÅ. VV>> 4. éÎÉÃÉÁÌÉÚÁÃÉÑ ÒÅÇÉÓÔÒÏ×, ËÏÔÏÒÙÅ ÍÏÇÕÔ ÂÙÔØ ÐÒÏÐÉÓÁÎÙ ÔÏÌØËÏ VV>> × ÔÅÞÅÎÉÅ N ÔÁËÔÏ× ÐÏÓÌÅ ÒÅÓÅÔÁ (ÎÁÐÒÉÍÅÒ, 68HC11). YK> äÁ. HÏ ÜÔÏ ÂÙÌÏ ÄÁ×ÎÏ É ÎÅÐÒÁ×ÄÁ. :-)

é ÔÅÈ ÒÅÇÉÓÔÒÏ×, ËÏÔÏÒÙÅ ÐÉÛÕÔÓÑ ÏÄÉÎ ÒÁÚ.

VV>> 5. éÎÉÃÉÁÌÉÚÁÃÉÑ ÎÅÔÒÉ×ÉÁÌØÎÏÇÏ ÖÅÌÅÚÁ YK> ÷ main()

ë ÍÏÍÅÎÔÕ ×ÙÐÏÌÎÅÎÉÑ main ×ÓÅ ÓÅÇÍÅÎÔÙ, ÏÐÒÅÄÅÌÅÎÎÙÅ ×Ï ×ÎÅÛÎÅÍ ÖÅÌÅÚÅ, ÄÏÌÖÎÙ ÂÙÔØ ×ÁÌÉÄÎÙ. äÌÑ ÜÔÏÇÏ ×ÎÅÛÎÅÅ ÖÅÌÅÚÏ ÄÏÌÖÎÏ ÂÙÔØ ÉÎÉÃÉÁÌÉÚÉÒÏ×ÁÎÏ.

VV>> 6. HÅÓËÏÌØËÏ ÒÁÚÎÙÈ ÔÏÞÅË ×ÈÏÄÁ × ÚÁ×ÉÓÉÍÏÓÔÉ ÏÔ

íÏÄÕÌØ ÍÏÖÅÔ ×ÙÚÙ×ÁÔØÓÑ É ÉÎÉÃÉÁÌÉÚÉÒÏ×ÁÔØÓÑ ËÁË ÓÁÍÏÓÔÏÑÔÅÌØÎÁÑ ÐÒÏÇÒÁÍÍÁ ÉÌÉ ËÁË lib.

VV>> 7. íÎÏÇÏÚÁÄÁÞÎÏÓÔØ É related issues YK> úÁÞÅÍ? ðÏÞÅÍÕ ÎÅÌØÚÑ ÜÔÏ ÓÄÅÌÁÔØ × main().

ðÏÔÏÍÕ ÞÔÏ main - ÏÄÎÁ ÉÚ ÚÁÄÁÞ. ðÌÁÎÉÒÏ×ÝÉË ÓÎÁÒÕÖÉ.

VLV

"âÙÔØ ÞÅÓÔÎÙÍ - ÌÕÞÛÉÊ ÓÐÏÓÏ ÏÓÔÁ×ÁÔØÓÑ ÂÅÄÎÙÍ" (c) HÁÐÏÌÅÏÎ âÏÎÁÐÁÒÔ

Hi Yuriy, hope you are having a nice day!

21 áÐÒ 05, Yuriy K wrote to Alex Mogilnikov:

AB>>> ôÏ ÅÓÔØ? ôÙ ÉÓÐÏÌØÚÕÅÛØ Ó×ÏÊ ÓÔÁÒÔÁÐ? AM>> äÁ. YK> úÁÞÅÍ?

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

WBR, AVB

Thu Apr 21 2005 22:22, Alexey V Bugrov wrote to Yuriy K:

AB>>>> ôÏ ÅÓÔØ? ôÙ ÉÓÐÏÌØÚÕÅÛØ Ó×ÏÊ ÓÔÁÒÔÁÐ? AM>>> äÁ. YK>> úÁÞÅÍ?

AVB> á ËÁË ÅÝÅ ÕÇÁÄÁÔØ, ÎÁÐÒÉÍÅÒ, ÐÒÉÞÉÎÕ ÒÅÓÅÔÁ ÐÒÏÃÅÓÓÏÒÁ É ÄÁÌØÎÅÊÛÉÅ AVB> ÄÅÊÓÔ×ÉÑ ËÏÎÔÒÏÌÌÅÒÁ, ÅÓÌÉ ×ÓÑ ÐÏÍÑÔØ ÏÞÉÝÅÎÁ É ÐÒÏÉÎÉÃÉÁÌÉÚÉÒÏ×ÁÎÁ?

C ËÁËÏÊ ÒÁÄÏÓÔÉ _×ÓÑ_ ÐÁÍÑÔØ ÐÏÞÉÝÅÎÁ É ÐÒÏÉÎÉÃÉÁÌÉÚÉÒÏ×ÁÎÁ?

AVB> éÌÉ ËÏÎÔÒÏÌÌÅÒ ÒÁÂÏÔÁÅÔ ÐÏÄ ÕÐÒÁ×ÌÅÎÉÅÍ ËÁËÏÊ-ÌÉÂÏ ÏÓÉ - × ÜÔÏÍ ÓÌÕÞÁÅ AVB> ÓÔÁÎÄÁÒÔÎÙÊ ÓÔÁÒÔÁÐ, ËÁË ÐÒÁ×ÉÌÏ, ÐÏÄÍÅÎÑÅÔÓÑ

ÎÅ ÍÅÎÅÅ ÓÔÁÎÄÁÒÔÎÙÍ

AVB> ÏÓÅ×ÙÍ.

AVB> ÷ÅËÔÏÒ ÒÅÓÅÔÁ, ÐÏÞÔÉ ÔÁËÏÊ ÖÅ ×ÅËÔÏÒ ÐÒÅÒ×ÁÎÉÑ, ËÁË É ÍÎÏÇÉÅ ÄÒÕÇÉÅ. AVB> éÎÏÇÄÁ ÐÒÉ ÐÅÒÅÈÏÄÅ ÎÁ ÎÅÇÏ ÔÒÅÂÕÀÔÓÑ ×ÐÏÌÎÅ ÏÓÍÙÓÌÅÎÎÙÅ ÄÅÊÓÔ×ÉÑ, AVB> ÏÔÌÉÞÎÙÅ ÏÔ ÚÁÌÏÖÅÎÎÙÈ × ÓÔÁÎÄÁÒÔÎÏÍ ÓÔÁÒÔÁÐÅ.

ëÁËÉÅ?

WBR, Yuriy.

Hi Yuriy, hope you are having a nice day!

21 áÐÒ 05, Yuriy K wrote to Alexey V Bugrov:

AVB>> á ËÁË ÅÝÅ ÕÇÁÄÁÔØ, ÎÁÐÒÉÍÅÒ, ÐÒÉÞÉÎÕ ÒÅÓÅÔÁ ÐÒÏÃÅÓÓÏÒÁ É AVB>> ÄÁÌØÎÅÊÛÉÅ ÄÅÊÓÔ×ÉÑ ËÏÎÔÒÏÌÌÅÒÁ, ÅÓÌÉ ×ÓÑ ÐÏÍÑÔØ ÏÞÉÝÅÎÁ É AVB>> ÐÒÏÉÎÉÃÉÁÌÉÚÉÒÏ×ÁÎÁ? YK> C ËÁËÏÊ ÒÁÄÏÓÔÉ _×ÓÑ_ ÐÁÍÑÔØ ÐÏÞÉÝÅÎÁ É ÐÒÏÉÎÉÃÉÁÌÉÚÉÒÏ×ÁÎÁ?

ðÁÔÁÍÕÛÔÁ. (Ó) óÔÁÎÄÁÒÔ ÑÚÙËÁ ÃÅ ÔÒÅÂÕÅÔ ÏÂÎÕÌÅÎÉÑ ÎÅÉÎÉÃÉÁÌÉÚÉÒÏ×ÁÎÎÙÈ ÇÌÏÂÁÌØÎÙÈ ÐÅÒÅÍÅÎÎÙÈ. ÷ÉÄÅÎÎÙÅ ÍÎÏÀ ËÏÍÐÉÌÑÔÏÒÙ × Ó×ÏÅÍ ÓÔÁÒÔÁÐÅ ÓÎÁÞÁÌÁ ÞÉÓÔÑÔ _×ÓÀ_ ÐÁÍÑÔØ, ÐÏÔÏÍ ÚÁÐÏÌÎÑÀÔ ÉÎÉÃÉÁÌÉÚÉÒÏ×ÁÎÎÙÅ ÐÅÒÅÍÅÎÎÙÍÉ ÉÚ ÓÐÉÓËÏ× ÉÎÉÃÉÁÌÉÚÁÃÉÉ ÌÉÎËÅÒÁ. ÷ÏÔ ÔÁË ÐÒÏÓÔÅÎØËÏ É ÎÁÈÁÌÑ×Õ. ëÁË ÔÁÍ Õ ×ÁÓ ÇÏ×ÏÒÑÔ, for example:

_startup (void) { _asm // Initialize the stack pointer lfsr 1, _stack lfsr 2, _stack

clrf TBLPTRU, 0 // 1st silicon doesn't do this on POR

bcf FPFLAGS,RND,0

/*** Set all of memory to zeroes ***/ // Use FSR0 to decrement through memory from the top of bank 14 down to address 0x0 movlw 0xff movwf FSR0L, 0 movlw 0x0e movwf FSR0H, 0 // // Use memory location 0x0 as a indicator when we have reached the end movlw 1 movwf 0x0, 0

// Load WREG with the value to be stored throughout memory (0) movlw 0

clear_loop: movwf POSTDEC0, 0 movf 0x0,1,0 bnz clear_loop [skip] }

AVB>> éÌÉ ËÏÎÔÒÏÌÌÅÒ ÒÁÂÏÔÁÅÔ ÐÏÄ ÕÐÒÁ×ÌÅÎÉÅÍ ËÁËÏÊ-ÌÉÂÏ ÏÓÉ - × ÜÔÏÍ AVB>> ÓÌÕÞÁÅ ÓÔÁÎÄÁÒÔÎÙÊ ÓÔÁÒÔÁÐ, ËÁË ÐÒÁ×ÉÌÏ, ÐÏÄÍÅÎÑÅÔÓÑ YK> ÎÅ ÍÅÎÅÅ ÓÔÁÎÄÁÒÔÎÙÍ

÷ ËÁËÏÍ ÓÔÁÎÄÁÒÔÅ ÏÐÉÓÁÎ?

AVB>> ÷ÅËÔÏÒ ÒÅÓÅÔÁ, ÐÏÞÔÉ ÔÁËÏÊ ÖÅ ×ÅËÔÏÒ ÐÒÅÒ×ÁÎÉÑ, ËÁË É ÍÎÏÇÉÅ AVB>> ÄÒÕÇÉÅ. éÎÏÇÄÁ ÐÒÉ ÐÅÒÅÈÏÄÅ ÎÁ ÎÅÇÏ ÔÒÅÂÕÀÔÓÑ ×ÐÏÌÎÅ ÏÓÍÙÓÌÅÎÎÙÅ AVB>> ÄÅÊÓÔ×ÉÑ, ÏÔÌÉÞÎÙÅ ÏÔ ÚÁÌÏÖÅÎÎÙÈ × ÓÔÁÎÄÁÒÔÎÏÍ ÓÔÁÒÔÁÐÅ. YK> ëÁËÉÅ?

áÎÁÌÉÚ ÓÉÔÕÁÃÉÉ WDT-reset (ÛÔÁÔÎÏÅ ÐÏ×ÅÄÅÎÉÅ, ÎÅ ÚÁ×ÉÓ), ÁÎÁÌÉÚ ÓÉÔÕÁÃÉÉ POR/BOR, ÁÎÁÌÉÚ ÎÅËÏÒÒÅËÔÎÏÇÏ ÚÁ×ÅÒÛÅÎÉÑ ÚÁÐÉÓÉ × ÅÅÐÒÏÍ/ÆÌÅÛ ÐÏ ÒÅÓÅÔÕ (ÎÅËÏÔÏÒÙÅ ËÏÎÔÒÏÌÌÅÒÙ ÕÍÅÀÔ ÓÔÁ×ÉÔØ ÓÏÏÔ×ÅÔÓ×ÕÀÝÉÊ ÆÌÁÇ). äÁ ÐÒÏÓÔÏ ÈÏÞÕ ÎÁ ×ÅËÔÏÒ ÒÅÓÅÔÁ ÐÏ×ÅÓÉÔØ ÏÂÒÁÂÏÔÞÉË ÎÅÍÁÓËÉÒÕÅÍÏÇÏ ÐÒÅÒÙ×ÁÎÉÑ ÏÔ ÐÅÒÅÆÅÒÉÉ.

WBR, AVB

Thu Apr 21 2005 23:38, Alexey V Bugrov wrote to Yuriy K:

AVB>>> á ËÁË ÅÝÅ ÕÇÁÄÁÔØ, ÎÁÐÒÉÍÅÒ, ÐÒÉÞÉÎÕ ÒÅÓÅÔÁ ÐÒÏÃÅÓÓÏÒÁ É AVB>>> ÄÁÌØÎÅÊÛÉÅ ÄÅÊÓÔ×ÉÑ ËÏÎÔÒÏÌÌÅÒÁ, ÅÓÌÉ ×ÓÑ ÐÏÍÑÔØ ÏÞÉÝÅÎÁ É AVB>>> ÐÒÏÉÎÉÃÉÁÌÉÚÉÒÏ×ÁÎÁ? YK>> C ËÁËÏÊ ÒÁÄÏÓÔÉ _×ÓÑ_ ÐÁÍÑÔØ ÐÏÞÉÝÅÎÁ É ÐÒÏÉÎÉÃÉÁÌÉÚÉÒÏ×ÁÎÁ?

AVB> óÔÁÎÄÁÒÔ ÑÚÙËÁ ÃÅ ÔÒÅÂÕÅÔ ÏÂÎÕÌÅÎÉÑ ÎÅÉÎÉÃÉÁÌÉÚÉÒÏ×ÁÎÎÙÈ ÇÌÏÂÁÌØÎÙÈ AVB> ÐÅÒÅÍÅÎÎÙÈ.

ðÒÏ ËÁËÏÊ ÑÚÙË ÔÙ ÇÏ×ÏÒÉÛØ? ÷ ÓÔÁÎÄÁÒÔÅ ÑÚÙËÁ ó ÎÁÐÉÓÁÎÏ ÓÏ×ÓÅÍ ÄÒÕÇÏÅ...

6.7.8 Initialization

10 ... If an object that has static storage duration is not initialized explicitly,

then:

- if it has pointer type, it is initialized to a null pointer;

- if it has arithmetic type, it is initialized to (positive or unsigned) zero;

- if it is an aggregate, every member is initialized (recursively) according to these rules;

- if it is a union, the first named member is initialized (recursively) according to these rules.

äÌÑ ÓÐÒÁ×ËÉ. çÌÏÂÁÌØÎÙÅ ÐÅÒÅÍÅÎÎÙÅ ÉÍÅÀÔ static storage duration.

AVB> ÷ÉÄÅÎÎÙÅ ÍÎÏÀ ËÏÍÐÉÌÑÔÏÒÙ

ëÁËÉÅ ÉÍÅÎÎÏ ËÏÍÐÉÌÑÔÏÒÙ ÔÙ ×ÉÄÅÌ?

AVB> × Ó×ÏÅÍ ÓÔÁÒÔÁÐÅ ÓÎÁÞÁÌÁ ÞÉÓÔÑÔ _×ÓÀ_ ÐÁÍÑÔØ, ÐÏÔÏÍ ÚÁÐÏÌÎÑÀÔ AVB> ÉÎÉÃÉÁÌÉÚÉÒÏ×ÁÎÎÙÅ ÐÅÒÅÍÅÎÎÙÍÉ ÉÚ ÓÐÉÓËÏ× ÉÎÉÃÉÁÌÉÚÁÃÉÉ ÌÉÎËÅÒÁ. AVB> ÷ÏÔ ÔÁË ÐÒÏÓÔÅÎØËÏ É ÎÁÈÁÌÑ×Õ.

AVB> ëÁË ÔÁÍ Õ ×ÁÓ ÇÏ×ÏÒÑÔ, for example:

AVB> _startup (void) AVB> { AVB> _asm AVB>[...]

þÔÏ ÚÁ ËÏÍÐÉÌÑÔÏÒ ÇÅÎÅÒÉÔ _ÔÁËÏÅ_?

AVB>>> éÌÉ ËÏÎÔÒÏÌÌÅÒ ÒÁÂÏÔÁÅÔ ÐÏÄ ÕÐÒÁ×ÌÅÎÉÅÍ ËÁËÏÊ-ÌÉÂÏ ÏÓÉ - × ÜÔÏÍ AVB>>> ÓÌÕÞÁÅ ÓÔÁÎÄÁÒÔÎÙÊ ÓÔÁÒÔÁÐ, ËÁË ÐÒÁ×ÉÌÏ, ÐÏÄÍÅÎÑÅÔÓÑ YK>> ÎÅ ÍÅÎÅÅ ÓÔÁÎÄÁÒÔÎÙÍ

AVB> ÷ ËÁËÏÍ ÓÔÁÎÄÁÒÔÅ ÏÐÉÓÁÎ?

HÁ ÉÓÐÏÌØÚÕÅÍÕÀ ÏÓØ, ÅÓÔÅÓÔ×ÅÎÎÏ.

AVB>>> ÷ÅËÔÏÒ ÒÅÓÅÔÁ, ÐÏÞÔÉ ÔÁËÏÊ ÖÅ ×ÅËÔÏÒ ÐÒÅÒ×ÁÎÉÑ, ËÁË É ÍÎÏÇÉÅ AVB>>> ÄÒÕÇÉÅ. éÎÏÇÄÁ ÐÒÉ ÐÅÒÅÈÏÄÅ ÎÁ ÎÅÇÏ ÔÒÅÂÕÀÔÓÑ ×ÐÏÌÎÅ ÏÓÍÙÓÌÅÎÎÙÅ AVB>>> ÄÅÊÓÔ×ÉÑ, ÏÔÌÉÞÎÙÅ ÏÔ ÚÁÌÏÖÅÎÎÙÈ × ÓÔÁÎÄÁÒÔÎÏÍ ÓÔÁÒÔÁÐÅ. YK>> ëÁËÉÅ?

AVB> áÎÁÌÉÚ ÓÉÔÕÁÃÉÉ WDT-reset (ÛÔÁÔÎÏÅ ÐÏ×ÅÄÅÎÉÅ, ÎÅ ÚÁ×ÉÓ), ÁÎÁÌÉÚ ÓÉÔÕÁÃÉÉ AVB> POR/BOR, ÁÎÁÌÉÚ ÎÅËÏÒÒÅËÔÎÏÇÏ ÚÁ×ÅÒÛÅÎÉÑ ÚÁÐÉÓÉ × ÅÅÐÒÏÍ/ÆÌÅÛ ÐÏ ÒÅÓÅÔÕ AVB> (ÎÅËÏÔÏÒÙÅ ËÏÎÔÒÏÌÌÅÒÙ ÕÍÅÀÔ ÓÔÁ×ÉÔØ ÓÏÏÔ×ÅÔÓ×ÕÀÝÉÊ ÆÌÁÇ).

HÁÈÒÅÎÁ ×ÓÅ ÜÔÏ ÐÉÈÁÔØ × ÓÔÁÒÔÁÐ? 8-0

ðÒÅËÒÁÓÎÏ ÄÅÌÁÅÔÓÑ × ÏÓÎÏ×ÎÏÊ ÐÒÏÇÒÁÍÍÅ.

AVB> äÁ ÐÒÏÓÔÏ ÈÏÞÕ ÎÁ ×ÅËÔÏÒ ÒÅÓÅÔÁ ÐÏ×ÅÓÉÔØ ÏÂÒÁÂÏÔÞÉË ÎÅÍÁÓËÉÒÕÅÍÏÇÏ AVB> ÐÒÅÒÙ×ÁÎÉÑ ÏÔ ÐÅÒÅÆÅÒÉÉ.

HÕ ÄÁ, ÅÓÔØ ÒÁÚÎÙÅ ÓÐÏÓÏÂÙ ×ÙÒÙ×ÁÎÉÑ ÇÌÁÎÄ...

WBR, Yuriy.

Hi Yuriy, hope you are having a nice day!

22 áÐÒ 05, Yuriy K wrote to Alexey V Bugrov:

YK>>> C ËÁËÏÊ ÒÁÄÏÓÔÉ _×ÓÑ_ ÐÁÍÑÔØ ÐÏÞÉÝÅÎÁ É ÐÒÏÉÎÉÃÉÁÌÉÚÉÒÏ×ÁÎÁ?

AVB>> óÔÁÎÄÁÒÔ ÑÚÙËÁ ÃÅ ÔÒÅÂÕÅÔ ÏÂÎÕÌÅÎÉÑ ÎÅÉÎÉÃÉÁÌÉÚÉÒÏ×ÁÎÎÙÈ AVB>> ÇÌÏÂÁÌØÎÙÈ ÐÅÒÅÍÅÎÎÙÈ. YK> ðÒÏ ËÁËÏÊ ÑÚÙË ÔÙ ÇÏ×ÏÒÉÛØ? ÷ ÓÔÁÎÄÁÒÔÅ ÑÚÙËÁ ó ÎÁÐÉÓÁÎÏ ÓÏ×ÓÅÍ YK> ÄÒÕÇÏÅ...

YK> 6.7.8 Initialization

áÆÉÇÅÔØ. üÔÏ ×ÈÏÄÉÔ × ÐÒÏÔÉ×ÏÒÅÞÉÅ Ó ÍÏÉÍÉ ÓÌÏ×ÁÍÉ, ÚÁ ÉÓËÌÀÞÅÎÉÅÍ ÔÏÇÏ, ÞÔÏ Ñ ÓÔÁÔÉÞÅÓËÉÅ ÏÂßÅËÔÙ ÎÁÚ×ÁÌ ÇÌÏÂÁÌØÎÙÍÉ?

YK> äÌÑ ÓÐÒÁ×ËÉ. çÌÏÂÁÌØÎÙÅ ÐÅÒÅÍÅÎÎÙÅ ÉÍÅÀÔ static storage duration.

óÐÁÓÉÂÏ. ïÞÅÎØ ÃÅÎÎÏÅ ÚÁÍÅÞÁÎÉÅ.

AVB>> ÷ÉÄÅÎÎÙÅ ÍÎÏÀ ËÏÍÐÉÌÑÔÏÒÙ YK> ëÁËÉÅ ÉÍÅÎÎÏ ËÏÍÐÉÌÑÔÏÒÙ ÔÙ ×ÉÄÅÌ?

Microchip C18, IAREW18 - ÔÏÞÎÏ ÏÂÎÕÌÑÀÔ, ÐÒÏ ÈÁÊÔÅË ÎÅ Õ×ÅÒÅÎ, ÎÏ ËÁÖÅÔÓÑ ÔÏÖÅ.

AVB>> × Ó×ÏÅÍ ÓÔÁÒÔÁÐÅ ÓÎÁÞÁÌÁ ÞÉÓÔÑÔ _×ÓÀ_ ÐÁÍÑÔØ, ÐÏÔÏÍ ÚÁÐÏÌÎÑÀÔ AVB>> ÉÎÉÃÉÁÌÉÚÉÒÏ×ÁÎÎÙÅ ÐÅÒÅÍÅÎÎÙÍÉ ÉÚ ÓÐÉÓËÏ× ÉÎÉÃÉÁÌÉÚÁÃÉÉ ÌÉÎËÅÒÁ. AVB>> ÷ÏÔ ÔÁË ÐÒÏÓÔÅÎØËÏ É ÎÁÈÁÌÑ×Õ.

AVB>> ëÁË ÔÁÍ Õ ×ÁÓ ÇÏ×ÏÒÑÔ, for example:

AVB>> _startup (void) AVB>> { AVB>> _asm AVB>> [...]

YK> þÔÏ ÚÁ ËÏÍÐÉÌÑÔÏÒ ÇÅÎÅÒÉÔ _ÔÁËÏÅ_?

Microchip c18. ÷Ï-ÐÅÒ×ÙÈ ÏÎ ÜÔÏ ÎÅ ÇÅÎÅÒÉÔ. üÔÏ ÎÁÐÉÓÁÎÏ × ÓÔÁÒÔÁÐÅ. ÷Ï-×ÔÏÒÙÈ, ÞÔÏ ÔÅÂÑ ÚÄÅÓØ ÎÅ ÕÓÔÒÁÉ×ÁÅÔ? üÔÏ ÎÉËÁË ÎÅ ÐÒÏÔÉ×ÏÒÅÞÉÔ ÐÒÏÃÉÔÉÒÏ×ÁÎÎÏÍÕ ÔÏÂÏÀ ËÕÓËÕ ÓÔÁÎÄÁÒÔÁ. ðÏ×ÅÄÅÎÉÅ ËÏÍÐÉÌÑÔÏÒÁ ÐÏ ÏÔÎÏÛÅÎÉÀ Ë Ó×ÏÂÏÄÎÏÊ ÐÁÍÑÔÉ ÎÉËÁË ÎÅ ÒÅÇÌÁÍÅÎÔÉÒÕÅÔÓÑ. óÄÅÌÁÎÏ ÔÁË ÒÏ×ÎÏ ÐÏ ÏÄÎÏÊ ÐÒÉÞÉÎÅ - × ÔÁÂÌÉÃÕ ÉÎÉÃÉÁÌÉÚÁÃÉÉ ÐÏÐÁÄÕÔ ÔÏÌØËÏ Ñ×ÎÏ ÉÎÉÃÉÁÌÉÚÉÒÏ×ÁÎÎÙÅ ÏÂßÅÔËÙ - ÏÞÅÎØ ÓÕÝÅÓÔ×ÅÎÎÁÑ ÜËÏÎÏÍÉÑ ÐÒÏÇÒÁÍÍÎÏÊ ÐÁÍÑÔÉ. ðÏÓÌÅ ÏÞÉÓÔËÉ ÓÔÁÒÔÁÐ ÓÍÏÔÒÉÔ ÔÁÂÌÉÃÙ ÉÎÉÃÉÁÌÉÚÁÃÉÉ É ÒÁÚÍÅÝÁÅÔ ÐÏ ÎÕÖÎÙÍ ÁÄÒÅÓÁÍ ÎÕÖÎÙÅ (ÎÅÎÕÌÅ×ÙÅ) ÚÎÁÞÅÎÉÑ.

AVB>>>> ÄÒÕÇÉÅ. éÎÏÇÄÁ ÐÒÉ ÐÅÒÅÈÏÄÅ ÎÁ ÎÅÇÏ ÔÒÅÂÕÀÔÓÑ ×ÐÏÌÎÅ AVB>>>> ÏÓÍÙÓÌÅÎÎÙÅ ÄÅÊÓÔ×ÉÑ, ÏÔÌÉÞÎÙÅ ÏÔ ÚÁÌÏÖÅÎÎÙÈ × ÓÔÁÎÄÁÒÔÎÏÍ AVB>>>> ÓÔÁÒÔÁÐÅ. YK>>> ëÁËÉÅ? AVB>> áÎÁÌÉÚ ÓÉÔÕÁÃÉÉ WDT-reset (ÛÔÁÔÎÏÅ ÐÏ×ÅÄÅÎÉÅ, ÎÅ ÚÁ×ÉÓ), ÁÎÁÌÉÚ AVB>> ÓÉÔÕÁÃÉÉ POR/BOR, ÁÎÁÌÉÚ ÎÅËÏÒÒÅËÔÎÏÇÏ ÚÁ×ÅÒÛÅÎÉÑ ÚÁÐÉÓÉ × AVB>> ÅÅÐÒÏÍ/ÆÌÅÛ ÐÏ ÒÅÓÅÔÕ (ÎÅËÏÔÏÒÙÅ ËÏÎÔÒÏÌÌÅÒÙ ÕÍÅÀÔ ÓÔÁ×ÉÔØ AVB>> ÓÏÏÔ×ÅÔÓ×ÕÀÝÉÊ ÆÌÁÇ). YK> HÁÈÒÅÎÁ ×ÓÅ ÜÔÏ ÐÉÈÁÔØ × ÓÔÁÒÔÁÐ? 8-0

HÅ "×", Á ÐÅÒÅÄ. ôÏÔ ÖÅ IAR ÐÒÅÄÕÓÍÁÔÒÉ×ÁÅÔ ÉÚ Ó×ÏÅÇÏ ÓÔÁÒÔÁÐÁ ×ÙÚÏ× ÐÏÌØÚÏ×ÁÔÅÌØÓËÏÊ __low_level_init(void), ËÏÔÏÒÁÑ ×ÙÚÙ×ÁÅÔÓÑ ÆÁËÔÉÞÅÓËÏÊ ÏÄÎÏÊ ÉÚ ÐÅÒ×ÙÈ ÉÎÓÔÒÕËÃÉÊ ÐÏÓÌÅ ÒÅÓÅÔÁ É ×ÏÚ×ÒÁÝÁÅÍÏÅ ÅÊ ÚÎÁÞÅÎÉÅ ÏÐÒÅÄÅÌÑÅÔ ÄÁÌØÎÅÊÛÅÅ ÐÏ×ÅÄÅÎÉÅ ÛÔÁÔÎÏÇÏ ÓÔÁÒÔÁÐÁ. HÏ ÜÔÁ ÆÉÞÁ ÎÅÓÔÁÎÄÁÒÔÎÁÑ É ÅÓÔØ ÎÅ Õ ×ÓÅÈ ÓÔÁÒÔÁÐÏ× ÄÒÕÇÉÈ ËÏÍÐÉÌÑÔÏÒÏ×, × ÜÔÏÍ ÓÌÕÞÁÅ ÏÓÔÁÅÔÓÑ ÔÏÌØËÏ ÚÁÍÅÎÁ ÓÔÁÒÔÁÐÁ.

YK> ðÒÅËÒÁÓÎÏ ÄÅÌÁÅÔÓÑ × ÏÓÎÏ×ÎÏÊ ÐÒÏÇÒÁÍÍÅ.

HÅÔ. òÅÇÉÓÔÒÙ ÐÏÓÌÅ ÒÅÓÅÔÁ É ÎÁ ×ÈÏÄÅ × main ÎÅ ÏÂÑÚÁÎÙ ÏÓÔÁ×ÁÔØÓÑ ÎÅÉÚÍÅÎÎÙÍÉ. ôÁË ÖÅ ËÁË ÕÖÅ ÎÉÞÅÇÏ ÎÅ ÏÓÔÁÌÏÓØ ÏÔ ÓÏÄÅÒÖÉÍÏÇÏ ÏÚÕ. ïÐÑÔØ ÖÅ ÓÏ×ÅÒÛÅÎÎÁ ÎÅÐÒÅÄÓËÁÚÕÅÍÁÑ ÚÁÄÅÒÖËÁ ÐÏÓÌÅ ÐÒÉÈÏÄÁ ×ÎÅÛÎÅÇÏ ÒÅÓÅÔÁ ÄÏ ÎÁÞÁÌÁ ÉÓÐÏÌÎÅÎÉÑ main.

AVB>> äÁ ÐÒÏÓÔÏ ÈÏÞÕ ÎÁ ×ÅËÔÏÒ ÒÅÓÅÔÁ ÐÏ×ÅÓÉÔØ ÏÂÒÁÂÏÔÞÉË AVB>> ÎÅÍÁÓËÉÒÕÅÍÏÇÏ ÐÒÅÒÙ×ÁÎÉÑ ÏÔ ÐÅÒÅÆÅÒÉÉ.

YK> HÕ ÄÁ, ÅÓÔØ ÒÁÚÎÙÅ ÓÐÏÓÏÂÙ ×ÙÒÙ×ÁÎÉÑ ÇÌÁÎÄ...

üÔÏ ×ÓÅÇÏ ÌÉÛØ ×ÁÛÉ ÐÒÅÄÒÁÓÓÕÄËÉ.

WBR, AVB

Hello Alex.

21 Apr 05 08:32, you wrote to me:

AB>> þÅÇÏ ×Ù ×ÙÄÕÍÙ×ÁÅÔÅ? AM> íÙ ÎÉÞÅÇÏ ÎÅ ×ÙÄÕÍÙ×ÁÅÍ. ÷ÏÔ ÒÅÚÕÌØÔÁÔ ËÏÍÐÉÌÑÃÉÉ ÐÕÓÔÏÇÏ ÆÁÊÌÁ:

á, ×ÏÔ ÇÄÅ ×Ù ÎÁÛÌÉ ÔÁËÏÅ. óÁÍÉ ÆÕÎËÃÉÉ __do_copy_data/__do_clear_bss ÎÁÈÏÄÑÔÓÑ × ÂÉÂÌÉÏÔÅËÅ libgcc.a ×ÏÔ ÅÝÅ ÉÚ ÉÓÈÏÄÎÉËÏ× gcc: /* Outputs some appropriate text to go at the start of an assembler file. */

static void avr_file_start (void) { if (avr_asm_only_p) error ("MCU `%s' supported for assembler only", avr_mcu_name);

default_file_start ();

fprintf (asm_out_file, "\t.arch %s\n", avr_mcu_name); fputs ("__SREG__ = 0x3f\n" "__SP_H__ = 0x3e\n" "__SP_L__ = 0x3d\n", asm_out_file);

fputs ("__tmp_reg__ = 0\n" "__zero_reg__ = 1\n", asm_out_file);

/* FIXME: output these only if there is anything in the .data / .bss sections - some code size could be saved by not linking in the initialization code from libgcc if one or both sections are empty. */ fputs ("\t.global __do_copy_data\n", asm_out_file); fputs ("\t.global __do_clear_bss\n", asm_out_file);

commands_in_file = 0; commands_in_prologues = 0; commands_in_epilogues = 0; }

÷ ÏÂÝÅÍ, Ñ ÔÏÖÅ ÎÅ ÐÏÎÑÌ. ÷ÅÄØ ËÏÄ ËÏÐÉÒÏ×ÁÎÉÑ ÅÓÔØ × avr-libc-ÛÎÏÍ ÓÔÁÒÔÁÐÅ. íÏÖÅÔ ÇÏÔÏ×ÑÔ ËÁËÕÀ-ÔÏ ÍÏÄÉÆÉËÁÃÉÀ avr-gcc. (÷ gcc-3.1 - ÔÁËÏÇÏ ÎÅ ÂÙÌÏ)

AB>> üÔÏ ÐÒÏÓÔÏ ÍÅÔËÉ × ÓÔÁÒÔÁÐÅ (gcrt1.S): AM> HÅ ÚÎÁÀ. ÷ ÍÏÉÈ ÓÔÁÒÔÁÐÁÈ ÔÁËÉÈ ÍÅÔÏË ÎÅÔ, Á "ÓÔÁÎÄÁÒÔÎÙÍÉ" Ñ ÎÅ AM> ÐÏÌØÚÕÀÓØ. äÌÑ ÞÅÇÏ ËÏÍÐÉÌÑÔÏÒ ×ËÌÀÞÁÅÔ ÜÔÉ ÏÂßÑ×ÌÅÎÉÑ × ËÁÖÄÙÊ ÆÁÊÌ, AM> ÄÌÑ ÍÅÎÑ ÚÁÇÁÄËÁ.

AB>> ôÏ ÅÓÔØ? ôÙ ÉÓÐÏÌØÚÕÅÛØ Ó×ÏÊ ÓÔÁÒÔÁÐ? AM> äÁ.

á ÐÏÞÅÍÕ?

Alexey

Hello Vladimir.

21 Apr 05 20:16, you wrote to Yuriy K:

VV>>> 1. ðÒÏ×ÅÒËÁ ROM/RAM ÎÁ ×ÁÌÉÄÎÏÓÔØ YK>> äÅÌÁÅÔÓÑ × main(); VV> main() ×ÙÐÏÌÎÑÅÔÓÑ -> ÓÔÁÔÉÞÅÓËÉÅ ÏÂØÅËÔÙ É ÓÔÅË ÉÎÉÃÉÁÌÉÚÉÒÏ×ÁÎÙ VV> ÈÒÅÎ ÚÎÁÅÔ ÞÅÍ ÈÒÅÎ ÚÎÁÅÔ ËÁË. ÷ÏÒÏÛÉÔØ RAM ÎÅÌØÚÑ É ×ÏÚÍÏÖÎÏ ÕÖÅ VV> ×ÙÐÏÌÎÑÅÔÓÑ ÎÅ×ÁÌÉÄÎÙÊ ËÏÄ. ÷ÓÅ ÐÁÒÁÎÏÉÄÁÌØÎÙÅ ÐÒÏ×ÅÒËÉ ÄÏÌÖÎÙ ÂÙÔØ VV> ËÁË ÍÏÖÎÏ ÒÁÎØÛÅ.

÷ avr-gcc ÍÏÖÎÏ ÐÒÉÃÅÐÉÔØ ÈÕËÉ. HÁÐÉÓÁÔØ ÆÕÎËÃÉÀ É ÐÏÍÅÓÔÉÔØ ÅÅ × ÓÅËÃÉÀ Ó ÏÐÒÅÄÅÌÅÎÎÙÍ ÉÍÅÎÅÍ.

VV>>> 2. HÁÓÔÒÏÊËÁ memory map × ÚÁ×ÉÓÉÍÏÓÔÉ ÏÔ ÖÅÌÅÚÁ YK>> ôÏÌØËÏ ÅÓÌÉ ÍÏÖÎÏ Ä×ÉÇÁÔØ RAM/ROM. VV> HÅ ÍÏÖÎÏ, Á ÎÕÖÎÏ :-}

áÎÁÌÏÇÉÞÎÏ.

HÏ! ôÙ ×ÓÅ ÒÁÓÓËÁÚÙ×ÁÅÛØ ÐÒÏ ÏÂÝÉÊ ÓÌÕÞÁÊ. (éÌÉ ×ÏÏÂÝÅ ÐÒÏ 68HC11) íÎÅ ÉÎÔÅÒÅÓÎÏ ËÏÎËÒÅÔÎÏ, ÐÒÏ avr-gcc. íÎÅ ÎÉ ÒÁÚÕ ÎÅ ÐÏÎÁÄÏÂÉÌÏÓØ ÍÅÎÑÔØ ÓÔÁÒÔÁÐ, ËÏÔÏÒÙÊ ÐÏÓÔÁ×ÌÑÅÔÓÑ ×ÍÅÓÔÅ × avr-libc.

Alexey

Hello Alexey.

21 Apr 05 21:22, you wrote to Yuriy K:

AB>>>> ôÏ ÅÓÔØ? ôÙ ÉÓÐÏÌØÚÕÅÛØ Ó×ÏÊ ÓÔÁÒÔÁÐ? AM>>> äÁ. YK>> úÁÞÅÍ? AB> á ËÁË ÅÝÅ ÕÇÁÄÁÔØ, ÎÁÐÒÉÍÅÒ, ÐÒÉÞÉÎÕ ÒÅÓÅÔÁ ÐÒÏÃÅÓÓÏÒÁ

õ AVR ÅÓÔØ ÒÅÇÉÓÔÒ, ÏÔËÕÄÁ ÍÏÖÎÏ ÐÒÏÞÉÔÁÔØ ÐÒÉÞÉÎÕ ÒÅÓÅÔÁ.

AB> É ÄÁÌØÎÅÊÛÉÅ AB> ÄÅÊÓÔ×ÉÑ ËÏÎÔÒÏÌÌÅÒÁ, ÅÓÌÉ ×ÓÑ ÐÏÍÑÔØ ÏÞÉÝÅÎÁ É ÐÒÏÉÎÉÃÉÁÌÉÚÉÒÏ×ÁÎÁ?

Alexey

Hello Alex.

22 Apr 05 13:13, you wrote to Yuriy K:

AB>>>> ôÏ ÅÓÔØ? ôÙ ÉÓÐÏÌØÚÕÅÛØ Ó×ÏÊ ÓÔÁÒÔÁÐ? AM>>> äÁ. YK>> úÁÞÅÍ? AM> ðÏÞÔÉ ×ÓÅÇÄÁ ÍÎÅ ÔÁÍ ÔÒÅÂÕÅÔÓÑ ÉÎÉÃÉÁÌÉÚÉÒÏ×ÁÔØ ÐÅÒÉÆÅÒÉÀ. éÎÏÇÄÁ AM> ÔÁÍ ÖÅ ÔÒÅÂÕÅÔÓÑ ÉÎÉÃÉÁÌÉÚÉÒÏ×ÁÔØ ÑÄÒÏ ïó.

úÁÐÉÈÎÉ Ó×ÏÀ ÆÕÎËÃÉÀ × ÏÄÉÎ ÉÚ ÓÅÇÍÅÎÔÏ×: .init1/.init3/.init5/.init7/.init8 (ÔÏÌØËÏ naked ţ) óËÒÉÐÔ ÌÉÎËÅÒÁ: /* Internal text space or external memory */ .text : { *(.vectors) __ctors_start = . ; *(.ctors) __ctors_end = . ; __dtors_start = . ; *(.dtors) __dtors_end = . ; *(.progmem.gcc*) *(.progmem*) . = ALIGN(2); *(.init0) /* Start here after reset. */ *(.init1) *(.init2) /* Clear __zero_reg__, set up stack pointer. */ *(.init3) *(.init4) /* Initialize data and BSS. */ *(.init5) *(.init6) /* C++ constructors. */ *(.init7) *(.init8) *(.init9) /* Call main(). */ *(.text) . = ALIGN(2); *(.text.*) . = ALIGN(2); *(.fini9) /* _exit() starts here. */ *(.fini8) *(.fini7) *(.fini6) /* C++ destructors. */ *(.fini5) *(.fini4) *(.fini3) *(.fini2) *(.fini1) *(.fini0) /* Infinite loop after program termination. */ _etext = . ; } > text

Alexey

ðÒÉ×ÅÔ Yuriy!

21 Apr 05 19:28, Yuriy K ÐÉÓÁÌ Alex Mogilnikov:

AB>>> ôÏ ÅÓÔØ? ôÙ ÉÓÐÏÌØÚÕÅÛØ Ó×ÏÊ ÓÔÁÒÔÁÐ?

AM>> äÁ.

YK> úÁÞÅÍ?

ðÏÞÔÉ ×ÓÅÇÄÁ ÍÎÅ ÔÁÍ ÔÒÅÂÕÅÔÓÑ ÉÎÉÃÉÁÌÉÚÉÒÏ×ÁÔØ ÐÅÒÉÆÅÒÉÀ. éÎÏÇÄÁ ÔÁÍ ÖÅ ÔÒÅÂÕÅÔÓÑ ÉÎÉÃÉÁÌÉÚÉÒÏ×ÁÔØ ÑÄÒÏ ïó. ÷ÓÅÇÏ ÎÁÉÌÕÞÛÅÇÏ, [Team PCAD 2000] áÌÅËÓÅÊ í. ... úÁÐÁÄÎÏ-ÕÒÁÌØÓËÏÅ ÒÅÇÉÏÎÁÌØÎÏÅ ÏÂÝÅÓÔ×Ï ÄÏÂÒÏ×ÏÌØÎÙÈ ÕÞÒÅÄÉÔÅÌÅÊ.

Join the Discussion

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

Didn't find your answer?

Ask the community — no account required