<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>32164</bug_id>
          
          <creation_ts>2016-06-01 12:38:24 +0300</creation_ts>
          <short_desc>Ошибки в eeprom функциях</short_desc>
          <delta_ts>2016-06-01 12:38:24 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>avr-libc</component>
          <version>unstable</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>32163</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Andrey Cherepanov">cas</reporter>
          <assigned_to name="Grigory Milev">week</assigned_to>
          <cc>viy</cc>
    
    <cc>week</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>157159</commentid>
    <comment_count>0</comment_count>
    <who name="Andrey Cherepanov">cas</who>
    <bug_when>2016-06-01 12:38:24 +0300</bug_when>
    <thetext>+++ Данная ошибка создана размножением ошибки 32163 +++

Для MCU ATMEGA8535 не правильно откомпилированы функции для работы с eeprom
Библиотечная функция не работающая функция:
0000073e &lt;eeprom_read_byte&gt;:
73e:   f9 99           sbic    0x1f, 1 ; 31
740:   fe cf           rjmp    .-4         ; 0x73e &lt;eeprom_read_byte&gt;
742:   92 bd           out 0x22, r25   ; 34
744:   81 bd           out 0x21, r24   ; 33
746:   f8 9a           sbi 0x1f, 0 ; 31
748:   99 27           eor r25, r25
74a:   80 b5           in  r24, 0x20   ; 32
74c:   08 95           ret

Самописная работающая функция:
    while(EECR&amp;(1&lt;&lt;EEWE));
    EEAR=(uint16_t)eeaddr;
    EECR|=(1&lt;&lt;EERE);
    s=EEDR;

       while(EECR&amp;(1&lt;&lt;EEWE));
50e:   e1 99           sbic    0x1c, 1 ; 28
510:   fe cf           rjmp    .-4         ; 0x50e &lt;eedata_read_block+0x36&gt;
       EEAR=(uint16_t)addr;
512:   df ba           out 0x1f, r13   ; 31
514:   ce ba           out 0x1e, r12   ; 30
       EECR|=(1&lt;&lt;EERE);
516:   e0 9a           sbi 0x1c, 0 ; 28
       s=EEDR;
518:   8d b3           in  r24, 0x1d   ; 29

Видно, что библиотечная функция обращается к неправильным портам</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>