Rust: RFC: рдПрд╡рд░-рд░рд╕реНрдЯ рдлреЛрд░реНрдХ рдХреЛ рдЕрдкрд╕реНрдЯреНрд░реАрдо рдорд░реНрдЬ рдХрд░рдирд╛

рдХреЛ рдирд┐рд░реНрдорд┐рдд 23 рдЕрдЧре░ 2017  ┬╖  89рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: rust-lang/rust

рд╣реИрд▓реЛ рд╕рднреА рдХреЛ,

рдореИрдВ рдПрд╡рд░-рд░рд╕реНрдЯ рдлреЛрд░реНрдХ рдХреЛ рд░рд╕реНрдЯ рдореЗрдВ рдорд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рд░рд╛рдп рдЬрд╛рдирдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред

рд╣рд╛рд▓ рдХреЗ рдорд╣реАрдиреЛрдВ рдореЗрдВ рдХрдо рдмрдЧ рдХреЗ рд╕рд╛рде рдХрд╛рдВрдЯрд╛ рдЦреБрдж рд╣реА рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕реНрдерд┐рд░ рд╣реЛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рдиреЗ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрдиреЗ рд╡рд╛рд▓реЗ рдХрдИ рд▓реЛрдЧреЛрдВ рдХреЛ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдирд╛ рднреА рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рд╣реИред

рдЖрдк GitHub рдкрд░ avr-rust рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдмреНрд▓реЙрдХрд░реНрд╕

рдПрд▓рдПрд▓рд╡реАрдПрдо 5.0

~рд░рд╕реНрдЯ рд╡рд░реНрддрдорд╛рди рдореЗрдВ LLVM 4.0 рдкрд░ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдХрд╛рд░реНрдпрд╢реАрд▓ AVR рдмреИрдХрдПрдВрдб рд╣реИ, рд▓реЗрдХрд┐рди рддрдм рд╕реЗ рдХрдИ рдмрдЧ рдлрд┐рдХреНрд╕ рдХрд┐рдП рдЧрдП рд╣реИрдВред AVR рдмреИрдХрдПрдВрдб рдХрд╛ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╣рдореЗрдВ LLVM 5.0 рдХреЗ рд╕рдорд░реНрдерд┐рдд рд╣реЛрдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреА рд╣реЛрдЧреА (рд▓рдЧрднрдЧ рд╕рдорд╛рдкреНрдд: #43370) рдЬрд┐рд╕рдореЗрдВ рдХреБрдЫ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрдЧреНрд╕ рдХреЛ рдареАрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред~

рдпрд╣ рдЕрдм рдЕрд╡рд░реЛрдзрдХ рдирд╣реАрдВ рд╣реИред 2018-02-20 рддрдХ рдЕрдкрд╕реНрдЯреНрд░реАрдо рд░рд╕реНрдЯ LLVM 6.0 рдкрд░ рд╣реИред

рдкреНрд░рд╢рди

рдЪреЗрд░реА-рдкрд┐рдХрд┐рдВрдЧ рдлрд┐рдХреНрд╕

рдпрджрд┐ AVR рд╕рдкреЛрд░реНрдЯ рдореЗрдирд▓рд╛рдЗрди рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рд╣рдореЗрдВ рд░рд╕реНрдЯ рдХреЗ LLVM рдлреЛрд░реНрдХ рдореЗрдВ рдкреИрдЪ рдХреЛ рдЪреЗрд░реА-рдкрд┐рдХ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдорд╕реНрдпрд╛ рд╣реЛрдЧреА, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрдИ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕реБрдзрд╛рд░реЛрдВ рдХреЛ рдЪреЗрд░реА-рдкрд┐рдХ рдХрд░ рдЪреБрдХреЗ рд╣реИрдВред

рдПрд╡реАрдЖрд░-рд░рд╕реНрдЯ рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рдореЗрдВ рдЪреЗрд░реА-рдЪреБрдиреЗ рдЧрдП рд╕рднреА рдмрдЧрдлрд┐рдХреНрд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрд▓рдПрд▓рд╡реАрдПрдо рдЯреНрд░рдВрдХ рдореЗрдВ рдЕрдкрд╕реНрдЯреНрд░реАрдо рдХрд┐рдП рдЬрд╛ рдЪреБрдХреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ рдЕрдЧрд░ рд╣рдо рдлреЛрд░реНрдХ рдХреЛ рдорд░реНрдЬ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдпрд╣реА рд╕реНрдерд┐рддрд┐ рдмрдиреА рд░рд╣реЗрдЧреА, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдПрд▓рдПрд▓рд╡реАрдПрдо рдлреЛрд░реНрдХ рдХреЗ рдЯреНрд░рдВрдХ рд╕реЗ рдмрд╣реБрдд рджреВрд░ рдЬрд╛рдиреЗ рдХрд╛ рдкреНрд░рд╢рдВрд╕рдХ рдирд╣реАрдВ рд╣реВрдВред

LLVM рдХреЗ 6-рдорд╣реАрдиреЗ рдХреЗ рд░рд┐рд▓реАрдЬрд╝ рдЪрдХреНрд░ рдХреЗ рдХрд╛рд░рдг рдЪреЗрд░реА-рдЪреБрдирдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред

AVR рдмреИрдХрдПрдВрдб рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдореБрджреНрджреЗ

рдПрд╡реАрдЖрд░ -рд░рд╕реНрдЯ/рд░рд╕реНрдЯ рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рдореЗрдВ рдХреЛрдИ рдЬреНрдЮрд╛рдд рдмрдЧ рдирд╣реАрдВ рд╣реИ - рд╕рднреА рдЬреНрдЮрд╛рдд рдмрдЧ рдПрд╡реАрдЖрд░ рдПрд▓рдПрд▓рд╡реАрдПрдо рдмреИрдХрдПрдВрдб рдореЗрдВ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ; рдпрд╣рд╛рдБ рдХреБрдЫ рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк/рдкреНрд░рднрд╛рд╡рд╢рд╛рд▓реА рд╣реИрдВред

libcore рд╕рдВрд╢реЛрдзрди рдХреЗ рдмрд┐рдирд╛ рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛

libcore рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рдВрд╢реЛрдзрди рдХреЗ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рди рдмрдЧреЛрдВ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕реЗ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдореАрд▓ рдХрд╛ рдкрддреНрдерд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдпрд╣ рдЕрдм рддрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд░рд╣реА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ xargo рдЬрд░реВрд░рдд рдкрдбрд╝рдиреЗ рдкрд░ libcore рдХреЛ рдкрд╛рд░рджрд░реНрд╢реА рд░реВрдк рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдЧрд╛, рдФрд░ рд╣рдо Xargo.toml рдореЗрдВ libcore рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рд░рд╕реНрдЯ рдЯреАрдо рдПрдХ рд▓рдХреНрд╖реНрдп рдХреЛ рдорд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рд╕реЛрдЪрддреА рд╣реИ рдЬреЛ рд╕реНрдЯреЙрдХ рд▓рд┐рдмрдХреЛрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

'рдХреЙрд▓' рдПрдХреНрд╕реЗрд╕ рд░реИрдо рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдлрдВрдХреНрд╢рди рдкреЙрдЗрдВрдЯрд░реНрд╕ рдкрд░ рдХреЛрдИ рднреА рдСрдкрд░реЗрд╢рди, рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдореЛрд░реА рдирд╣реАрдВ (avr-rust/rust#68)

рдпрд╣ рдПрд╡реАрдЖрд░ рдХрд╛ рд╣рд╛рд░реНрд╡рд░реНрдб рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓рд╛ рдЗрди-рдЯреНрд░реА рдПрд▓рдПрд▓рд╡реАрдПрдо рдмреИрдХрдПрдВрдб рд╣реЛрдиреЗ рдХрд╛ рдПрдХ рд▓рдХреНрд╖рдг рд╣реИред рдПрд▓рдПрд▓рд╡реАрдПрдо рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдорд╛рдирддрд╛ рд╣реИ рдХрд┐ рд╕рднреА рдлрд╝рдВрдХреНрд╢рди "рдЬреЗрдиреЗрд░рд┐рдХ рдПрдбреНрд░реЗрд╕ рд╕реНрдкреЗрд╕" рдореЗрдВ рд░рд╣рддреЗ рд╣реИрдВ, рдЬреЛ рд░реИрдо рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред рдЗрд╕ рд╡рдЬрд╣ рд╕реЗ, рдпрджрд┐ рдЖрдк рдлрд╝рдВрдХреНрд╢рди рдкреЙрдЗрдВрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реЛрдб/рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдореЛрд░реА рдХреЗ рдмрдЬрд╛рдп рд░реИрдо рддрдХ рдкрд╣реБрдВрдЪ рдЬрд╛рдПрдЧрд╛ред

рдЕрдЪреНрдЫреА рдЦрдмрд░ рдпрд╣ рд╣реИ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрд╕реНрдЯреНрд░реАрдо рдПрд▓рдПрд▓рд╡реАрдПрдо рдкреИрдЪ рд▓рдВрдмрд┐рдд рд╣реИрдВ ( рдбреА37052 , рдбреА37053 , рдбреА37054 , рдбреА37057 )ред

32-рдмрд┐рдЯ рдмрджрд▓рд╛рд╡ compiler-rt рд░реВрдЯреАрди рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ (avr-llvm/llvm#163)

рдХреНрдпреЛрдВрдХрд┐ рдРрд╕реЗ рдХрдИ (рдпрджрд┐ рдХреЛрдИ рд╣реИрдВ) рд▓рдХреНрд╖реНрдп рдирд╣реАрдВ рд╣реИрдВ рдЬреЛ рдореВрд▓ рд░реВрдк рд╕реЗ 32-рдмрд┐рдЯ рд╢рд┐рдлреНрдЯ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, libgcc рдФрд░ compiler-rt рдореЗрдВ рд╢рд┐рдлреНрдЯ рд░реВрдЯреАрди рдХреЗ 32-рдмрд┐рдЯ рд╕рдВрд╕реНрдХрд░рдг рдирд╣реАрдВ рд╣реИрдВ, рднрд▓реЗ рд╣реА LLVM рдЕрднреА рднреА рдЦреБрд╢реА рд╕реЗ рдЗрд╕реЗ рдХреЙрд▓ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред

рдпрд╣ рд▓рд┐рдВрдХ рдХрд░рддреЗ рд╕рдордп рдПрдХ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдкреНрд░рддреАрдХ рддреНрд░реБрдЯрд┐ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИред рдпрд╣ рдХреЗрд╡рд▓ рддрднреА рд╣реЛрдЧрд╛ рдЬрдм рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрдб рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдпрд╛ 32-рдмрд┐рдЯ рд╢рд┐рдлреНрдЯ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд▓рд┐рдВрдХрд░ рд╕рднреА рдореГрдд рдХреЛрдб рдХреЛ рд╣рдЯрд╛рдиреЗ рдореЗрдВ рдХрд╛рдлреА рдЕрдЪреНрдЫрд╛ рд╣реИред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд░рд┐рд▓реАрдЬ рдореЛрдб рдореЗрдВ рд╕рдВрдХрд▓рди рдХреЗ рдХрд╛рд░рдг рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рд▓рд╛рдкрддрд╛ рд╢рд┐рдлреНрдЯ рдмрдЧ рдорд╛рд░рд╛ рд╣реИ, рдЬрд┐рд╕рдиреЗ рдПрдХ "рдЕрдиреБрдХреВрд▓рди" рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдмрджрд▓рд╛рд╡ рдХреЛ рдЧреБрдгрд╛ рдХреЛ рдмрдврд╝рд╛рд╡рд╛ рджрд┐рдпрд╛ред

рдорд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рд╡рд░реНрддрди

рдЖрдк рдЗрд╕ рдЕрдВрддрд░ рдХреЛ рджреЗрдЦрдХрд░ рд╕рднреА AVR-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрдВрддрд░ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЖрдзреЗ рд╕реЗ рдЕрдзрд┐рдХ рдЕрдВрддрд░ рдХреЗрд╡рд▓ рд░реАрдбрдореЗ рдФрд░ рдЯреНрд░реИрд╡рд┐рд╕ рд╕реАрдЖрдИ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╣реИ - рдЕрдкрд╕реНрдЯреНрд░реАрдо рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХреЛрдб рдмрд╣реБрдд рдЫреЛрдЯрд╛ рд╣реИ; AVR рдмреИрдХрдПрдВрдб рдФрд░ рдПрдХ рд▓рдХреНрд╖реНрдп рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╕ рдХреБрдЫ рдЧреЛрдВрдж рдХреЛрдбред

рдпрд╣ рдЕрдВрддрд░ AVR рдХреЗ рд▓рд┐рдП libcore рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рд╕рд╢рд░реНрдд рд░реВрдк рд╕реЗ рдЕрдХреНрд╖рдо рдХрд░ рджреЗрддрд╛ рд╣реИ - рдпреЗ рд╕реБрдзрд╛рд░ рдЕрдкрд╕реНрдЯреНрд░реАрдо рдирд╣реАрдВ рд╣реЛрдВрдЧреЗ, рдФрд░ рдХрдбрд╝рд╛рдИ рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдбрд╛рдЙрдирд╕реНрдЯреНрд░реАрдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ AVR рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯрд╛ libcore рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Xargo рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)ред

рд▓рд┐рдВрдХ

AVR-рд░рд╕реНрдЯ рдкрд░ Gitter
GitHub рдкрд░ AVR-рдЬрдВрдЧ

C-feature-request O-AVR T-core WG-embedded

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдареАрдХ рд╣реИ, рд╕рдордп рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВред

AVR рдХреЗ рд▓рд┐рдП рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдкреИрдЪ рдЖрдЬ рдХреЗ rustc 1.47.0-nightly (0820e54a8 2020-07-23) рд░реВрдк рдореЗрдВ рд╡рд░реНрддрдорд╛рди рд░рд╕реНрдЯ рдирд╛рдЗрдЯрд▓реА рдХрдВрдкрд╛рдЗрд▓рд░ рдореЗрдВ рдореМрдЬреВрдж рд╣реИрдВ ред рд░рд╕реНрдЯ рдирд╛рдЗрдЯрд▓реА рдХрдВрдкрд╛рдЗрд▓рд░, рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рдВрд╢реЛрдзрди рдХреЗ, рдЕрдм рдПрд▓рдИрдбреА рдмреНрд▓рд┐рдВрдХ рдЙрджрд╛рд╣рд░рдг рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╕рдВрдХрд▓рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдПрдХ AVR ELF рдлрд╝рд╛рдЗрд▓ рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддрд╛ рд╣реИред

  • https://avr-rust.com/ рдкрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдирдпрд╛, рдХреЗрдВрджреНрд░реАрдХреГрдд рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд▓реИрдВрдбрд┐рдВрдЧ рдкреЗрдЬ
  • рдПрдХ рдирдИ рдХрд┐рддрд╛рдм - рдж рдПрд╡реАрдЖрд░-рд░рд╕реНрдЯ рдЧрд╛рдЗрдбрдмреБрдХ рдмрдирд╛рдИ рдЧрдИ рд╣реИ, рдЬрд┐рд╕реЗ Book.avr-rust.com рдкрд░ GitHub рдкреЗрдЬ рдкрд░ рд╣реЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
  • рдПрд╡реАрдЖрд░-рдЬрдВрдЧ/рдЬрдВрдЧ рдХрд╛рдВрдЯрд╛ рднрдВрдбрд╛рд░ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдЕрднреА рддрдХ рд╕рдВрдЧреНрд░рд╣реАрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдРрд╕реЗ рдореМрдЬреВрджрд╛ рдореБрджреНрджреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рд▓реЙрдХ рдФрд░ рдмрдВрдж рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
  • Xargo рдХреА рдЕрдм рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ - рдЕрдкрд╕реНрдЯреНрд░реАрдо рд░рд╕реНрдЯ рдореЗрдВ -Z build-std рдзреНрд╡рдЬ AVR рдкрд░ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИред рдХрд╛рд░реНрдЧреЛ рдлреЛрд░реНрдХ рдХреА рдЕрдм рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ - рдЕрдкрд╕реНрдЯреНрд░реАрдо рдХрд╛рд░реНрдЧреЛ рдХрд░реЗрдВрдЧреЗред

рд░рд╕реНрдЯ рдирд╛рдЗрдЯрд▓реА рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдЕрдм AVR рд╕рдкреЛрд░реНрдЯ рдХреЗ рд╕рд╛рде рд░рд╕реНрдЯ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд╢рдВрд╕рд┐рдд рдЪреИрдирд▓ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдореИрдВ рдЕрдм рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░ рд░рд╣рд╛ рд╣реВрдВ - рд╣рдордиреЗ рдХрд░ рджрд┐рдпрд╛!

рдмрдЧ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рдЪрд░рдг AVR рдЧрд╛рдЗрдбрдмреБрдХ рдореЗрдВ рдкрд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рд▓рдХреНрд╖реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП https://github.com/avr-rust/blink рдкрд░ AVR рдЧрд╛рдЗрдбрдмреБрдХ рдФрд░ рдмреНрд▓рд┐рдВрдХ рдЙрджрд╛рд╣рд░рдг рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреЗ рд╕рдВрд╕рд╛рдзрди рд╣реИрдВред

рдЗрд╕ рдЕрдкрд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдкреНрд░рдпрд╛рд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдФрд░ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЧрд╣рд░рд╛, рдЧрд╣рд░рд╛ рдзрдиреНрдпрд╡рд╛рдж - рдЗрд╕рдХреА рдмрд╣реБрдд рд╕рд░рд╛рд╣рдирд╛ рдХреА рдЬрд╛рддреА рд╣реИред

рдкрдВрдЦ

рд╕рднреА 89 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

+1! рдХрдВрдкрд╛рдЗрд▓рд░ рдореЗрдВ рдирд┐рд░реНрдорд┐рдд Avr рд░рд╕реНрдЯ рд╕реБрдкрд░ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред рдпрд╣ рдЕрдм рд▓рдЧрднрдЧ рдмрдЧ рд╕реЗ рдореБрдХреНрдд рд╣реИред

рдмрдЧ рд╕реЗ рдкреВрд░реА рддрд░рд╣ рдореБрдХреНрдд рдирд╣реАрдВ :)

рдореИрдВ рдмреИрдХрдПрдВрдб wrt рдмрдЧреНрд╕ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдЬрд╛рдирдХрд╛рд░реА рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╡рд░рдг рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реВрдВрдЧрд╛

рд▓рдЧрднрдЧ рд╣рд╛рд▓рд╛рдВрдХрд┐ . рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╕ рдПрдХ рдЬреЛрдбрд╝рд╛

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░ рдЬрдм рддрдХ рд╡реЗ рд╣рдо рдкрд░ рд░рдЦрд░рдЦрд╛рд╡ рдХрд╛ рдмреЛрдЭ рдирд╣реАрдВ рдбрд╛рд▓рддреЗ рд╣реИрдВ, рддрдм рддрдХ рд╣рдо рд░рд╕реНрдЯ-рд▓реИрдВрдЧ/рд░рд╕реНрдЯ рдореЗрдВ рдЕрдкрд╕реНрдЯреНрд░реАрдо рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХрд╛ рдХрд╛рдлреА рд╕реНрд╡рд╛рдЧрдд рдХрд░рддреЗ рд╣реИрдВ! рдЖрдк рдЬреЛ рд╕реЛрдЪ рд░рд╣реЗ рд╣реИрдВ рдЙрд╕рд╕реЗ рдХреБрдЫ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рдЪрд╛рд░:

  • рдЪреЗрд░реА-рдкрд┐рдХрд┐рдВрдЧ рдПрд▓рдПрд▓рд╡реАрдПрдо рд╣рд░ рдмрд╛рд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдареАрдХ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреБрдЫ рдмрд╛рд░ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗ рдЧреБрдЬрд░ рдЪреБрдХреЗ рд╣реИрдВ :)
  • рдХрдВрдкрд╛рдЗрд▓рд░-рдЖрд░рдЯреА рдореЗрдВ рдЧреБрдо рдЗрдВрдЯреНрд░рд┐рдирд┐рдХреНрд╕ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдареАрдХ рд╣реИ, рдЖрдкрдХреЗ рдкрд╛рд╕ рдЙрдиреНрд╣реЗрдВ рд░рд╕реНрдЯ рдореЗрдВ рдФрд░ рд╕рд╛рде рд╣реА рдХрдВрдкрд╛рдЗрд▓рд░-рдмрд┐рд▓реНрдЯрд┐рдиреНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИред
  • рдЖрдкрдХреЗ рдкрд╛рд╕ рдЬреЛ рдкреИрдЪ рд╣реИ рд╡рд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓рдЧ рд░рд╣рд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо libcore рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди #[cfg] рдорд╛рдзреНрдпрдо рд╕реЗ рдФрд░ рдЕрдзрд┐рдХ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдХреНрдпрд╛ рдпреЗ рдЖрдЗрдЯрдо "LLVM рдореЗрдВ рдмрдЧ" рдХреЗ рдХрд╛рд░рдг рдЫреВрдЯ рдЧрдП рд╣реИрдВ рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдореВрд▓ рд░реВрдк рд╕реЗ AVR рдкрд░ рдмрд┐рд▓реНрдХреБрд▓ рднреА рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИрдВ? рдкреВрд░реНрд╡ рдХреЛ рдХрд┐рд╕реА рднреА рддрд░рд╣ "рдПрд▓рдПрд▓рд╡реАрдПрдо рдХреЛ рдареАрдХ рдХрд░рдХреЗ" рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЬрдмрдХрд┐ рдмрд╛рдж рд╡рд╛рд▓рд╛ рдЪреАрдЬреЛрдВ рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рдореБрд╢реНрдХрд┐рд▓ рдмрдирд╛ рджреЗрддрд╛ рд╣реИред

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡рд░реНрддрдорд╛рди рдореЗрдВ libcore/libstd рдХреЗ рд╕рдорд╛рди рд╕рдорд╛рди рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╡рд╛рд▓реЗ рд╕рднреА рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЬреИрд╕реЗ-рдЬреИрд╕реЗ рд╣рдо рдЕрдзрд┐рдХ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдЪреБрдирддреЗ рд░рд╣реЗрдВрдЧреЗ, рдпрд╣ рд╕рд╣реА рд░рд╣реЗрдЧрд╛ред

рдЖрдкрдХреЗ рдкрд╛рд╕ рдЬреЛ рдкреИрдЪ рд╣реИ рд╡рд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓рдЧ рд░рд╣рд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо libcore рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди #[cfg] рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдФрд░ рдЕрдзрд┐рдХ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдХреНрдпрд╛ рдпреЗ рдЖрдЗрдЯрдо "LLVM рдореЗрдВ рдмрдЧ" рдХреЗ рдХрд╛рд░рдг рдЫреВрдЯ рдЧрдП рд╣реИрдВ рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдореВрд▓ рд░реВрдк рд╕реЗ AVR рдкрд░ рдмрд┐рд▓реНрдХреБрд▓ рднреА рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИрдВ?

рдпрд╣ рдПрд▓рдПрд▓рд╡реАрдПрдо рдореЗрдВ рдмрдЧ рдХреЗ рдХрд╛рд░рдг рд╣реИред

рдореЗрд░реЗ рджрд┐рдорд╛рдЧ рдореЗрдВ рдПрдХрдорд╛рддреНрд░ рд╕рд╡рд╛рд▓ i128 / u128 рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд╕рдорд░реНрдерди рдкрд░ рд╣реИ - рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрд╡реАрдЖрд░ рдХреЗ рд▓рд┐рдП, рдпреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рд╣реИрдВред i128 рд╕рдорд░реНрдерди libcore рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдПрдХ рдмрдЧ рдХреЗ рдХрд╛рд░рдг рдЯрд┐рдкреНрдкрдгреА рдХреА рдЧрдИ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдиреНрдп рдЕрдирджреЗрдЦрд╛ рдмрдЧ рднреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХреЛрдбрдкрде рдирд╣реАрдВ рд╣реИ, рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЗрд╡рд▓ рдПрд╡реАрдЖрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд░рдЬрд┐рд╕реНрдЯрд░ рдЖрд╡рдВрдЯрдирдХрд░реНрддрд╛ рдХрд╛ рдкреНрд░рдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдпреЛрдЬрди рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХреЗ рд▓рд╛рдпрдХ 32 рдмрд╛рдЗрдЯреНрд╕ рд╣реИрдВред

рдпрд╣ рдЕрднреА рднреА рдХрд╛рдлреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рд╣рдо AVR рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ i128 рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореБрдЭреЗ рдмреИрдХрдПрдВрдб рдореЗрдВ рдЯреНрд░рд┐рдЧрд░ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рдПрдХ рдмрд╛рд░ libcore _does_ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рдВрд╢реЛрдзрди рдХреЗ, рдпрд╛ рдХрдо рд╕реЗ рдХрдо рдХрдИ рдХреЗ рдмрд┐рдирд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХреЗ рд▓рд┐рдП рдкреИрдЪ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рджрд┐рдпрд╛ рдЬрд╛рдПред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдмрд╛рд░ libcore рд╕рдВрд╢реЛрдзрди рдХреЗ рдмрд┐рдирд╛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдпрд╛ рдХрдо рд╕реЗ рдХрдо рдХрдИ рдХреЗ рдмрд┐рдирд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХреЗ рд▓рд┐рдП рдкреИрдЪ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рджреЗрдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╣реЛрдЧрд╛ред

рдореЗрд░реЗ рд▓рд┐рдП рдЙрдЪрд┐рдд рд▓рдЧрддрд╛ рд╣реИ!

рдореЗрд░реЗ рджрд┐рдорд╛рдЧ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рд╕рд╡рд╛рд▓ рд╣реИ рдХрд┐ i128/u128 рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд╕рдорд░реНрдерди рдкрд░ - рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ AVR рдХреЗ рд▓рд┐рдП, рдпреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рд╣реИрдВред

рдПрд╡реАрдЖрд░ рдкрд░ i128 рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рдиреЗ рдХрд╛ рдореЗрд░рд╛ рдореБрдЦреНрдп рдбрд░ рдпрд╣ рд╣реИ рдХрд┐ рдПрд╡реАрдЖрд░ рдпрд╛ рдЕрдиреНрдп рдПрдореНрдмреЗрдбреЗрдб рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддрддрд╛ рдХреЗ рд▓рд┐рдП 128 рдмрд┐рдЯ рдкреВрд░реНрдгрд╛рдВрдХ рдХреЛ рдЕрдкрдирд╛рдиреЗ рдкрд░ рдЗрд╕рдХрд╛ рдардВрдбрд╛ рдкреНрд░рднрд╛рд╡ рдкрдбрд╝реЗрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдпрджрд┐ рдХреЛрдИ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИ рдЬреЛ 128 рдмрд┐рдЯ рдкреВрд░реНрдгрд╛рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдПрд╡реАрдЖрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬреЛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд╡реЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрджреНрджреЛрдВ рдХреЛ рджрд░реНрдЬ рдХрд░реЗрдВрдЧреЗред рдпрд╣ 128 рдмрд┐рдЯ рдкреВрд░реНрдгрд╛рдВрдХреЛрдВ рдХреЛ рдЬрдВрдЧ рдХреЛрдб рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "рд╕реБрд░рдХреНрд╖рд┐рдд" рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдкреЛрд░реНрдЯреЗрдмрд▓ рд╣реЛрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдореИрдВ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ред

AVR рдпрд╛ рдЕрдиреНрдп рдПрдореНрдмреЗрдбреЗрдб рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддрддрд╛ рдХреЗ рд▓рд┐рдП 128 рдмрд┐рдЯ рдкреВрд░реНрдгрд╛рдВрдХреЛрдВ рдХреЛ рдЕрдкрдирд╛рдиреЗ рдкрд░ рдПрдХ рджреНрд░реБрддрд╢реАрддрди рдкреНрд░рднрд╛рд╡

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдпрд╣рд╛рдБ рдмрд╣реБрдд рдмрдбрд╝реА рдбреАрд▓ рд╣реИред рдЫреЛрдЯреЗ рдПрдореНрдмреЗрдбреЗрдб рдЙрдкрдХрд░рдгреЛрдВ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрдбрд╝реА рд╕реАрдорд╛рдПрдБ рд╣реЛрддреА рд╣реИрдВ (рдХреЛрдИ рд╕реНрдЯрдб / рд╕реНрдЯрдбрдЖрдЙрдЯ рдирд╣реАрдВ, рдЖрдо рддреМрд░ рдкрд░ рдХреЛрдИ рдЖрд╡рдВрдЯрдХ рдирд╣реАрдВ, рдЖрджрд┐) рдЬреЛ рдПрдХ рдордирдорд╛рдиреА рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рдмрд╕ рдЫреЛрдбрд╝рдирд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХрдард┐рди рдмрдирд╛рддрд╛ рд╣реИред рдореБрдЭреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ AVR GCC рдХрд╛ double рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ float рд▓рд┐рдП рдПрдХ рдЙрдкрдирд╛рдо рд╣реИ! рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рд╣рдо рдЙрд╕ рд╡рд┐рдЪрд┐рддреНрд░рддрд╛ рдХреЛ рдмрдирд╛рдП рд░рдЦреЗрдВрдЧреЗ рдпрд╛ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдХреНрд░реЗрдЯ рдХреЛ i128 рд╕реЗ рдЕрдзрд┐рдХ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░реЗрдЧрд╛ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╣рдореЗрд╢рд╛ рд╡рд┐рд╢реЗрд╖ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реЛрдВрдЧреА рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рдЯреЛрдХрд░рд╛ рдХреЛ рдПрдореНрдмреЗрдбреЗрдб рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдареАрдХ рдЙрд╕реА рддрд░рд╣ рдЬреИрд╕реЗ рд╣рдо рдиреЛ-рдПрд╕рдЯреАрдбреА рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВред

рдХреЛрдИ рд╕реНрдЯрдб / рд╕реНрдЯрдбрдЖрдЙрдЯ рдирд╣реАрдВ, рдЖрдо рддреМрд░ рдкрд░ рдХреЛрдИ рдЖрд╡рдВрдЯрдХ рдирд╣реАрдВ, рдЖрджрд┐ред

рдЖрдк #![no_std] рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдХрд╛ рд╡рд░реНрдгрди рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдРрд╕реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИрдВ рдЬреЛ рдЗрд╕ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдФрд░ рдЙрд╕ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рдирд┐рдпрдо libcore рдХреЛ рджрд┐рдП рдЧрдП рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрдирд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ i128 рднреА рд╢рд╛рдорд┐рд▓ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рд▓рдХреНрд╖реНрдп рдЬреЛ i128 рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдХреЗ рдЕрдВрджрд░ рдПрдХ рдмрдбрд╝рд╛ рджреНрд░реБрддрд╢реАрддрди рдкреНрд░рднрд╛рд╡ рдкрдбрд╝рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рдПрдореНрдмреЗрдбреЗрдб рд▓рдХреНрд╖реНрдп рдХрд╛ "рдмрд╛рдЬрд╛рд░ рд╣рд┐рд╕реНрд╕реЗрджрд╛рд░реА" рдкреВрд░реЗ рдЬрдВрдЧ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдХреЗ рд╕рдмрд╕реЗрдЯ рдХреЗ рдЕрдВрджрд░ рдмрдбрд╝рд╛ рд╣реЛрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ x86 рдкрд░рд┐рд╡рд╛рд░ рдмрд╣реБрдд рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдЦрд┐рд▓рд╛рдбрд╝реА рдирд╣реАрдВ рд╣реИ .

рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рд╣рдо рдЙрд╕ рд╡рд┐рдЪрд┐рддреНрд░рддрд╛ рдХреЛ рдмрдирд╛рдП рд░рдЦреЗрдВрдЧреЗ рдпрд╛ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдпрд╣ i128 рд╕реЗ рдЕрдзрд┐рдХ рдХреНрд░реЗрдЯ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░реЗрдЧрд╛ред

рджрд┐рд▓рдЪрд╕реНрдк! рдореИрдВ рдЗрд╕ рдмрд╛рдд рд╕реЗ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рдпрджрд┐ рд╣рдо f64 рд╕реЗ f32 (рдпрд╛ рдЗрд╕реЗ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддреЗ) рдЙрд░реНрдл тАЛтАЛтАЛтАЛрдХрд░реЗрдВрдЧреЗ, рддреЛ рдпрд╣ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░реЗрдЧрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдЧрд░ рд╣рдо рдирд┐рд░рдВрддрд░рддрд╛ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдХреНрдпреЛрдВ рдирд╣реАрдВ? рд╣рдорд╛рд░реЗ рд▓рд┐рдП i128 рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рдВрднрд╡ рд╣реИред

рд╣рдорд╛рд░реЗ рд▓рд┐рдП i128 рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рдВрднрд╡ рд╣реИред

рдмрд┐рд▓реНрдХреБрд▓, рдФрд░ рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдпрд╣ рдирд╣реАрдВ рдмрддрд╛рдпрд╛ рдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдПрд╡реАрдЖрд░ рдХреЗ рд▓рд┐рдП i128 рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдХреЛрдИ рднреА рдХреЛрдб рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ AVR рдкрд░ i128 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рджрд░реНрдж рдХреА рджреБрдирд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рд╣реИред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдЧрд░ рд╣рдо рдирд┐рд░рдВрддрд░рддрд╛ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдХреНрдпреЛрдВ рдирд╣реАрдВ?

рдХрд┐рд╕рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддрд┐, рд╕рд╡рд╛рд▓ рд╣реИред рдЬреАрд╕реАрд╕реА ( f64 == f32 ) рдпрд╛ рд╣рд░ рджреВрд╕рд░реЗ рдЬрдВрдЧ рд▓рдХреНрд╖реНрдп ( f64 != f32 ) рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддрд┐?

рдЖрдк #![no_std] рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдХрд╛ рд╡рд░реНрдгрди рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рд╣рд╛рдВ, рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдХрд╣рд╛ "рд╡рд┐рд╢реЗрд╖ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдЬреЛ рдПрдХ рдЯреЛрдХрд░рд╛ рдХреЛ рдПрдореНрдмреЗрдбреЗрдб рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рддреА рд╣реИрдВ, рдареАрдХ рдЙрд╕реА рддрд░рд╣ рдЬреИрд╕реЗ рд╣рдо рдиреЛ-рдПрд╕рдЯреАрдбреА рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВред" рдореИрдВ

рдореВрд▓ рд░реВрдк рд╕реЗ 16-рдмрд┐рдЯ usize рдкреИрдЪ рдкрд░ рдЙрддрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╕реЗ рдореЗрд░реЗ рджрд┐рдорд╛рдЧ рдореЗрдВ рдПрдХ рдмрдбрд╝реА рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐, рдореВрд▓ рд░реВрдк рд╕реЗ, рдЬрдВрдЧ рдФрд░ рдЬрдВрдЧ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдпрд╣ рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ usize "рдореВрд▓" рд╣реИ рдПрдХ рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд╛ рдЖрдХрд╛рд░ред AFAIK, рдпрд╣ рдЕрдиреНрдп рд╕рднреА рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдЪ рд╣реИ, рдЬрдВрдЧ рд▓рдХреНрд╖реНрдп, рд▓реЗрдХрд┐рди рдПрд╡реАрдЖрд░ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред

рдХрд┐рд╕рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддрд┐, рд╕рд╡рд╛рд▓ рд╣реИред рдЬреАрд╕реАрд╕реА (f64 == f32) рдпрд╛ рд╣рд░ рджреВрд╕рд░реЗ рдЬрдВрдЧ рд▓рдХреНрд╖реНрдп (f64!= f32) рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддрд┐?

f64 рд╢рд╛рдмреНрджрд┐рдХ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ 64 рдмрд┐рдЯ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдирд╛рдо рдХрд╛ рдкрд╛рд▓рди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рд╡реИрд╕реЗ рд╣реА рдЕрд░реНрдерд╣реАрди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдЬреИрд╕реЗ рдпрд╣ рд╕реА рдореЗрдВ рд╣реИред

рдпрд╣рд╛рдВ рдЕрдЪреНрдЫреЗ рдЕрдВрдХ, рдореИрдВ 128-рдмрд┐рдЯ рдкреВрд░реНрдгрд╛рдВрдХ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреА рдЪрд┐рдВрддрд╛ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВред рдореБрдЭреЗ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрдирдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рднрд▓реЗ рд╣реА рд╣рдореЗрдВ рдЙрдирдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореБрдЭреЗ i128 рдкреНрд░рдХрд╛рд░реЛрдВ рдкрд░ рд╡рд┐рд╢реЗрд╖рддрд╛ рдЗрдореНрдкреНрд▓рд╛рдВрдЯ рдЬреИрд╕реА рдЪреАрдЬрд╝реЛрдВ рдХреЗ рд▓рд┐рдП рдлреАрдЪрд░ рдлрд╝реНрд▓реИрдЧ рдЬреЛрдбрд╝рдиреЗ рд╡рд╛рд▓реЗ рдХреНрд░реЗрдЯ рдХреЛ рджреЗрдЦрдиреЗ рд╕реЗ рдирдлрд░рдд рд╣реЛрдЧреАред рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдореБрджреНрджрд╛ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рд╕рднреА рдЕрдкреНрд░рдпреБрдХреНрдд i128 рд╕рд╛рдорд╛рди рдХреЛ рд▓рд┐рдВрдХрд░ рджреНрд╡рд╛рд░рд╛ рдЯреНрд░рд┐рдо рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

F32/64 рд╕рдорд╕реНрдпрд╛ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИред F64 рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ 64-рдмрд┐рдЯ рдмрдирд╛рдиреЗ рдХреЗ рд╕рд╛рде рдореЗрд░реА рдореБрдЦреНрдп рдЪрд┐рдВрддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ C FFI рдмрд╣реБрдд рднрдВрдЧреБрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдпрд╣ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдПрд╡реАрдЖрд░-рдЬреАрд╕реАрд╕реА 32-рдмрд┐рдЯ рдбрдмрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдПрдлрдПрдлрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЙрд▓ рдЕрдкреНрд░рд╛рд░рдВрднрд┐рдХ рдореЗрдореЛрд░реА рдпрд╛ рд╕реЗрдЧрдлреЙрд▓реНрдЯ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рд╕реЗ libc рдХреНрд░реЗрдЯ рд╕реЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рдХреЗ рдЗрд╕реЗ рдХрдо рдпрд╛ рдЬреНрдпрд╛рджрд╛ рд╣рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдо c_double рд╕реЗ f32 рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП AVR-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЙрдЪрд┐рдд рд░реВрдк рд╕реЗ рд▓реЛрдЧреЛрдВ рд╕реЗ рдЕрдкрдиреЗ FFI рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдореЗрдВ libc рдХреНрд░реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╡рд┐рд▓рдп рдХреЗ рд▓рд┐рдП рдпрд╛рдж рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ, main() рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд c_int рдкреНрд░рдХрд╛рд░ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: https://github.com/rust-lang/rust/pull/44906#discussion_r141843808

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдореБрджреНрджрд╛ рдЦреЛрд▓рд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ MSP430 рдХреЛ рднреА рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ: https://github.com/rust-lang/rust/issues/44934

рдореБрдЦреНрдп () рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ

@mattico рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рд╕рд┐рд░реНрдл рдЕрдЬреАрдм рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдХрд┐рд╕реА рднреА рдХреЛрдб рдиреЗ рд░рд╕реНрдЯ рдХреЗ main :

#[no_mangle]
pub extern fn main() {

рдЗрд╕рд╕реЗ рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдЖ рд╕рдХрддреЗ рдХреНрдпреЛрдВрдХрд┐ рд▓реМрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдирд╣реАрдВ

@mattico рд╣рдореЗрдВ рдЕрднреА рднреА рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ libc рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рддрд╛рдХрд┐ рдкреНрд░рдХрд╛рд░ AVR рдХреЗ рд▓рд┐рдП GCC рд╕реЗ рдореЗрд▓ рдЦрд╛рддреЗ рд╣реЛрдВ

рдУрд╣, рдмрд┐рд▓реНрдХреБрд▓, рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ main рд╣рдо рдкрд░ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдкреНрд░рднрд╛рд╡ рдбрд╛рд▓реЗрдЧрд╛ред

@shepmaster рдЧреИрд░-рдПрдореНрдмреЗрдбреЗрдб рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░ рднреА, рдореБрдЦреНрдп рд░реВрдк рд╕реЗ argc рдХрд╛ рдЖрдХрд╛рд░ рдХреЛрдИ рдорд╛рдпрдиреЗ рдирд╣реАрдВ рд░рдЦрддрд╛ рд╣реИ, рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рд╣рдордиреЗ рдЗрд╕ рдмрд╛рд░ рдЧрд▓рдд рдХрд┐рдпрд╛ рд╣реИ рдФрд░ IR рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрд┐рд╕реА рдиреЗ рднреА рдзреНрдпрд╛рди рдирд╣реАрдВ рджрд┐рдпрд╛ рд╣реИред рдХреБрдЫ рдЖрд░рдЯреАрдУрдПрд╕ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЕрдкрдиреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рдореБрдЦреНрдп () рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ? рднрд▓реЗ рд╣реА, рдЗрд╕реЗ рдареАрдХ рдХрд░рдирд╛ рдХрд╛рдлреА рдЖрд╕рд╛рди рд╣реИред

рдлрд┐рдХреНрд╕ рд╕рдмрдорд┐рдЯ рдХрд░рдиреЗ рдореЗрдВ рд╢рд╛рдпрдж рдЙрддрдирд╛ рд╣реА рд╕рдордп рд▓рдЧрд╛ рд╣реЛрдЧрд╛ рдЬрд┐рддрдирд╛ рдЗрд╕реЗ рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдореЗрдВ рд▓рдЧрд╛ рдерд╛, рдЕрдм рдЬрдмрдХрд┐ рдореИрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрддрд╛ рд╣реВрдБ

рдХреНрдпрд╛ рдпрд╣ рд╕рд┐рд░реНрдл рд▓рд┐рдмрдХреЛрд░ рдореБрджреНрджреЗ рд╣реИрдВ рдЬреЛ рдЗрд╕ рд╡рд┐рд▓рдп рдХреЛ рд░реЛрдХ рд░рд╣реЗ рд╣реИрдВ? рдмрд╕ рдЗрд╕рд▓рд┐рдП рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЛ рдХрд╣рд╛рдВ рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдирд╛ рд╣реИред

рдореЗрд░реЗ рдкрд╛рд╕ libcore рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рд╡рд╛рд▓реЗ рдПрдХрдорд╛рддреНрд░ рдореБрджреНрджреЗ рдЕрдЬреАрдм рд▓рд┐рдВрдХрд░ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╣реИрдВ рдЬреЛ рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ 32 рдмрд┐рдЯ рдмрд┐рдЯрд╢рд┐рдлреНрдЯрд┐рдВрдЧ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдХреНрдпрд╛ рд╣реИрдВ (рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдВрддрд░рд┐рдХ рдЧрд╛рдпрдм рд╣реИ)ред рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рд╡реЗ рдорд░реНрдЬ рдХреЛ рд░реЛрдХ рд░рд╣реЗ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВред

chocol4te: рдХреНрдпрд╛ рдпрд╣ рд╕рд┐рд░реНрдл рд▓рд┐рдмрдХреЛрд░ рдореБрджреНрджреЗ рд╣реИрдВ рдЬреЛ рдЗрд╕ рд╡рд┐рд▓рдп рдХреЛ рд░реЛрдХ рд░рд╣реЗ рд╣реИрдВ? рдмрд╕ рдЗрд╕рд▓рд┐рдП рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЛ рдХрд╣рд╛рдВ рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдирд╛ рд╣реИред

рд╣рд╛рдБ - рдпрд╣рд╛рдБ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдп LLVM рдХреЗ рднреАрддрд░ рдХрд┐рдП рдЬрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рд░реЗрд╕реНрдЯрд┐рдпреЛрд╕рди: рдореЗрд░реЗ рдкрд╛рд╕ libcore рд╕реЗ рдмрд╛рд╣рд░ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдПрдХрдорд╛рддреНрд░ рдореБрджреНрджреЗ рдЕрдЬреАрдм рд▓рд┐рдВрдХрд░ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╣реИрдВ рдЬреЛ рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ 32 рдмрд┐рдЯ рдмрд┐рдЯрд╢рд┐рдлреНрдЯрд┐рдВрдЧ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдХреНрдпрд╛ рд╣реИрдВ (рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдВрддрд░рд┐рдХ рдпрд╛рдж рдЖ рд░рд╣реА рд╣реИ)ред

рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдПрд╡реАрдЖрд░ рдмреИрдХрдПрдВрдб рдЪреЛрдХ рдмрдирд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдХреЛрдб рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХреА рдЧрдИ рд╣реИ :)

рд░реЗрд╕реНрдЯрд┐рдпреЛрд╕рди: рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рд╡реЗ рдорд░реНрдЬ рдХреЛ рд░реЛрдХ рд░рд╣реЗ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВред

рд╕реАрдзреЗ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдмреИрдХрдПрдВрдб рдХреЗ рд╡рд┐рд▓рдп рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕реЗ рдареАрдХ рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреА рдХреБрдЫ рдкрд░реЗрд╢рд╛рди рдХрд░рдиреЗ рд╡рд╛рд▓реА рдмрдЧреНрд╕ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдореЗрдВ рдорд░реНрдЬ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдареАрдХ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдЬрд░реВрд░реА рдирд╣реАрдВ рдХрд┐ рд╡реЗ рдЗрд╕реЗ рдмрдирд╛рдП рд░рдЦреЗрдВред

@dylanmckay LLVM6 рдХрд╛ рд╡рд┐рд▓рдп https://github.com/rust-lang/rust/pull/47828 рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ - рдЗрд╕ RFC рдХрд╛ рдХреНрдпрд╛ рдЕрд░реНрде рд╣реИ?

@kellerkindt "AVR рдмреИрдХрдПрдВрдб рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдореБрджреНрджреЗ" рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рд╕рднреА рдореБрджреНрджреЗ рдЕрднреА рднреА рд╕рддреНрдп рд╣реИрдВред рдпрд╣ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ avr-rust рдХреЗ рд╡рд░реНрддрдорд╛рди HEAD рдХреЛ рд░рд┐рдмреЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рд░рд╕реНрдЯ-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреЛрдб рдХреЛ рдорд░реНрдЬ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдЙрд╕реЗ рд╡рд░реНрдХрд┐рдВрдЧ рдХреЛрдб рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИред

рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдЕрднреА рднреА рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рд╣реВрдБ

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдмрд╛рд░ libcore рд╕рдВрд╢реЛрдзрди рдХреЗ рдмрд┐рдирд╛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдпрд╛ рдХрдо рд╕реЗ рдХрдо рдХрдИ рдХреЗ рдмрд┐рдирд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХреЗ рд▓рд┐рдП рдкреИрдЪ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рджреЗрдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╣реЛрдЧрд╛ред

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрддрд┐рд░рд┐рдХреНрдд рд░рд┐рдмреЗрд╕рд┐рдВрдЧ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛ рд░рд╣реА рдЕрдЪреНрдЫрд╛ рд╣реИред

рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ AVR рдкрд░ рдЬрдВрдЧ рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐, рдЕрдм рдЬрдмрдХрд┐ рд╣рдо рдЖрдзрд╛ рд╕рд╛рд▓ рдмрд╛рдж рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рд╣реИрдВред рдореИрдВ рдЕрдкрдиреЗ рд╢рд╣рд░ рдореЗрдВ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ Arduino рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕рдореВрд╣ рдЪрд▓рд╛рддрд╛ рд╣реВрдВ, рдФрд░ рдореИрдВ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рд░рд╕реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП _love_ рдХрд░реВрдВрдЧрд╛ред

рддреЛ, рдЕрдЪреНрдЫреА рдЦрдмрд░!

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдмрд╛рд░ libcore рд╕рдВрд╢реЛрдзрди рдХреЗ рдмрд┐рдирд╛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдпрд╛ рдХрдо рд╕реЗ рдХрдо рдХрдИ рдХреЗ рдмрд┐рдирд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХреЗ рд▓рд┐рдП рдкреИрдЪ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рджреЗрдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╣реЛрдЧрд╛ред

рдЕрдм рдпрд╣реА рд╣рд╛рд▓ рд╣реИ!

рд╡рд░реНрддрдорд╛рди avr-rust fork рдореЗрдВ libcore рдореЗрдВ рдХреЛрдИ рд╕рдВрд╢реЛрдзрди рдирд╣реАрдВ рд╣реИред

рд╕реНрдЯреЙрдХ Rus рд╕реЗ AVR рдХреЛ рд╕рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рдВрд╢реЛрдзрди рд╣реИрдВ:

  • AVR рдмреИрдХрдПрдВрдб рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдлрд╝рдВрдХреНрд╢рдВрд╕ LLVMInitializeAVR{Target,TargetInfo,AsmPrinter,AsmParser, ...} рдШреЛрд╖рд┐рдд рдФрд░ рдХреЙрд▓ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
  • рдПрдХ рдЖрдзрд╛рд░-рдиреНрдпреВрдирддрдо avr рд▓рдХреНрд╖реНрдп рд╡рд┐рдирд┐рд░реНрджреЗрд╢ avr-unknown-unknown рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдореЙрдбрд▓ avr-gcc рдХреЗ рд╕рдмрд╕реЗ рдХрдо рд╕рд╛рдорд╛рдиреНрдп рд╣рд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛред avr-gcc рд╡рд┐рдкрд░реАрдд, рдЬреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ -mmcu=<avr mcu name> рддрд░реНрдХ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, AVR рдХреЗ рд▓рд┐рдП рдХреЛрдИ AVR-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рддрд░реНрдХ рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╕реНрдЯрдо рд▓рдХреНрд╖реНрдп рд╡рд┐рдирд┐рд░реНрджреЗрд╢ JSON рдлрд╝рд╛рдЗрд▓ рд▓рд┐рдЦреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХрдИ рдЬрдВрдЧ рдПрдореНрдмреЗрдбреЗрдб рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рдорд╛рдорд▓рд╛ рд╣реИред
  • рдХрд╛рдВрдЯреЗ рдореЗрдВ, AVR LLVM рдмреИрдХрдПрдВрдб рдХреЛ рд╣рдореЗрд╢рд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░рд╕реНрдЯ рдЪреЗрдХрдЖрдЙрдЯ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдФрд░ рд▓рд┐рдВрдХ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ config.toml.example рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рдХреНрдпрд╛ AVR рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЕрдкрд╕реНрдЯреНрд░реАрдо рд░рд╕реНрдЯ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╛ рдЗрд╕реЗ рднреА рдСрдкреНрдЯ-рдЗрди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?
  • рд╕рднреА рдирдП рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдиреЗ рдкрд░ рдХрдВрдкрд╛рдЗрд▓рд░ рдореЗрдВ AVR рд╡рд┐рд╢рд┐рд╖реНрдЯ рддрд░реНрдХ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛
  • "avr-interrupt" рдХреЙрд▓рд┐рдВрдЧ рдХрдиреНрд╡реЗрдВрд╢рди рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ extern "avr-interrupt" fn my_isr_handler() { .. } рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЗрд╕реЗ рд╕реНрдерд┐рд░ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рд╢рд╛рдпрдж RFC рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗ рдЧреБрдЬрд░рдирд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдЧрд▓рдд рд╣реЛ рд╕рдХрддрд╛ рдерд╛ред
  • рд╕реАрдкреАрдпреВ рдкрд░ рд╕рд╢рд░реНрдд рд╕рдВрдХрд▓рди рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди, рдПрдХ рд▓рд╛ #[cfg(target_cpu = "...")] рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИред рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдпрд╣рд╛рдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ ruduino рдХреНрд░реЗрдЯ рдХреЛ рд╕рд╢рд░реНрдд рд░реВрдк рд╕реЗ рдПрдХ рдбрд┐рд╡рд╛рдЗрд╕-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдореЙрдбреНрдпреВрд▓ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬреЛ рд╕рд┐рд▓рд┐рдХреЙрди рдореЗрдВ рд╕рдорд░реНрдерд┐рдд рд╕рднреА рдЖрдИрдУ, рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдФрд░ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рддрд╛ рд╣реИред рдЗрд╕реЗ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЕрдкрд╕реНрдЯреНрд░реАрдо рд╕реЗ рдкрд╣рд▓реЗ RFC рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗ рдЧреБрдЬрд░рдирд╛ рд╣реЛрдЧрд╛ред

рд╢рд╛рдпрдж рдЕрдм рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдмреИрдХрдПрдВрдб рдХреЛ рдЧреИрд░-рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдмрдврд╝рд╛рд╡рд╛ рджреЗрдиреЗ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдПрд▓рдПрд▓рд╡реАрдПрдо-рджреЗрд╡ рдХреЛ рдПрдХ рдЖрд░рдПрдлрд╕реА рднреЗрдЬреВрдВред

рдЖрдк AVR-рдЬрдВрдЧ рдХреЗ рд▓рд┐рдП рдирджреА рдХреЗ рдКрдкрд░ рдЬрдВрдЧ рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдкреВрд░рд╛ рд╕реЗрдЯ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╣рд╛рдВ ред

рдкрд┐рдЫрд▓реЗ рджреЛ рдорд╣реАрдиреЛрдВ рдореЗрдВ рдЕрднреА рднреА рдХреБрдЫ рдПрд▓рдПрд▓рд╡реАрдПрдо рдкреИрдЪ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдордиреЗ рдЪреЗрд░реА-рдкрд┐рдХ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрд▓рдПрд▓рд╡реАрдПрдо рдХреЗ рдПрдорд╕реНрдХреНрд░рд┐рдкреНрдЯрди рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЕрдиреНрдп рд╕рднреА рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдПрд▓рдПрд▓рд╡реАрдПрдо рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рдЕрдкрд╕реНрдЯреНрд░реАрдо рд░рд╕реНрдЯ рдкреНрд░рдпрд╛рд╕реЛрдВ рдиреЗ рдЗрд╕реЗ рд▓рд╛рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд╕рд╛рди рдмрдирд╛ рджрд┐рдпрд╛ рд╣реИред рдпреЗ рдкрд░рд┐рд╡рд░реНрддрди rust-lang/llvm рд░реЗрдкреЛ рд╕реЗ рд╣реЛрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЕрдм рдЗрд╕реЗ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдЕрдкрд╕реНрдЯреНрд░реАрдо рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

<4 рдЪреЗрд░реА-рдЪреБрдиреЗ рдЧрдП рдПрд▓рдПрд▓рд╡реАрдПрдо рдкреИрдЪ рдЬреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЕрдкрд╕реНрдЯреНрд░реАрдо рдПрд▓рдПрд▓рд╡реАрдПрдо рдореЗрдВ рд╕рдореАрдХреНрд╖рд╛ рдореЗрдВ рд╣реИрдВ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдПрдХ рдмрд╛рд░ рд╕рдореАрдХреНрд╖рдХ рдХреЛ рдкрд░реНрдпрд╛рдкреНрдд рд╕рдордп рдорд┐рд▓ рдЬрд╛рдиреЗ рдкрд░, рд╡реЗ рдкреИрдЪ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЕрдкрд╕реНрдЯреНрд░реАрдо рд░рд╕реНрдЯ рдореЗрдВ рддреИрд░ рдЬрд╛рдПрдВрдЧреЗред рдЕрдкрд╕реНрдЯреНрд░реАрдо рд░рд╕реНрдЯ рдореЗрдВ рд▓рдХреНрд╖реНрдп-рд╡рд┐рд╢рд┐рд╖реНрдЯ рд░рд╕реНрдЯ-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреИрдЪ рднреА рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдЪреЗрд░реА рджреНрд╡рд╛рд░рд╛ рдЪреБрдиреЗ рдЧрдП LLVM рдкреИрдЪ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ avr-rust рдЕрдкрд╕реНрдЯреНрд░реАрдо рдХреЛ рдорд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд╡рд░реЛрдзрдХ рдирд╣реАрдВ рд╣реИрдВред

AVR рдкрд░ рдЬрдВрдЧ рдХреА рд╕реНрдерд┐рддрд┐ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ?

рдЬрд╛рдирдиреЗ рдореЗрдВ рднреА рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ! рдЕрднреА рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ STM32 рдиреАрд▓реА рдЧреЛрд▓реА рдкрд░ рд╣реИрдХрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдЬрдВрдЧ рдореЗрдВ avr рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рддреИрдпрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ arduino рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рд╣рдо @slowtec рднреА рдЕрдкрдиреЗ AVR рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд▓рд┐рдП Rust рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

рдЯрдХреНрдХрд░, рд╕рдорд░реНрдерди рдХреЛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдмрдирд╛рдпрд╛ рджреЗрдЦрдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛ред рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдХрд╛рдВрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗред

рдЕрдкрдбреЗрдЯ: рдлрд┐рд▓рд╣рд╛рд▓, рд╣рдо рдлреЛрд░реНрдХ рдХреЛ рд░рд╕реНрдЯ (avr-rust/rust#137) рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╣рдордиреЗ рдкрд╛рдпрд╛ рд╣реИ рдХрд┐ рджреЛ рдмрдЧ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдордиреЗ рдорд╛рд░рд╛ рд╣реИред

рдПрд▓рдПрд▓рд╡реАрдПрдо рддреНрд░реБрдЯрд┐: рд░рдЬрд┐рд╕реНрдЯрд░ рдЖрд╡рдВрдЯрди рдХреЗ рджреМрд░рд╛рди рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рд╕реЗ рдмрд╛рд╣рд░ рд╣реЛ рдЧрдпрд╛

рдпрд╣ LLVM рдЯреНрд░рдВрдХ рдореЗрдВ llvm/ llvm-project@45eb4c7e55341c0b83a21dedecc092e273795eda рдореЗрдВ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ

LLVM рддреНрд░реБрдЯрд┐: рдЪрдпрди рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛: t2: i16 = addrsspacecast[1 -> 0] undef:i16
t1: i16 = undef
рд╕рдорд╛рд░реЛрд╣ рдореЗрдВ: _ZN4core3ptr87_$LT$impl$u20$core..fmt..$u20$unsafe$u20$fn$LP$A$RP$$u20$ рдХреЗ рд▓рд┐рдП рдбреАрдмрдЧ$u20$ред$GT$$u20$Ret$GT $3fmt17h0fdf8ca7140def9b

рдЗрд╕реЗ рдареАрдХ рдХрд░рдирд╛ рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реИред рдпрд╣ рд╣рд╛рд░реНрд╡рд░реНрдб рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдкрд░ рд░рд╕реНрдЯ рдорд┐рд╕рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреЗ рдХрд╛рд░рдг рд╣реЛрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдореБрдЦреНрдп рдореЗрдореЛрд░реА рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдореЛрд░реА рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреЙрдЗрдВрдЯрд░ рдПрдбреНрд░реЗрд╕ рд╕реНрдкреЗрд╕ рд╣реЛрддреЗ рд╣реИрдВред

рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ @ рдкрд░рдорд╛рдирдВрдж-рдореЛрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ

рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдореБрджреНрджрд╛ рдпрд╣ рд╣реИ рдХрд┐ *const T рдореЗрдВ рд╣рдореЗрд╢рд╛ addrspace(0) рд╣реЛрддрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕реНрдкрд╖реНрдЯ рдХрд╛рд╕реНрдЯ (ptr as *const T) рдХреЛ рдпрд╣рд╛рдВ рдЙрдирдХреЗ рдЗрдирдкреБрдЯ рдХреЗ рдПрдбреНрд░реЗрд╕ рд╕реНрдкреЗрд╕ рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдлрд╝рдВрдХреНрд╢рди рдФрд░ рдлрд╝рдВрдХреНрд╢рди рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреЗ рд▓рд┐рдП std::fmt::Debug рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рджреНрд╡рд╛рд░рд╛ рдмрдЧ рдХрд╛ рдЦреБрд▓рд╛рд╕рд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЬрдВрдЧ рдПрд▓рдПрд▓рд╡реАрдПрдо рд░реВрдЯреАрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП addrspace(0)* i16 рд▓рдХреНрд╖реНрдп рд╕реВрдЪрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде рдПрдХ рдкреЙрдЗрдВрдЯрд░ рдбрд┐рд░реЗрдлрд░реЗрдВрд╕ рдХрд╛ рдЙрддреНрд╕рд░реНрдЬрди рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рдПрдХ рдмрд┐рдЯрдХрд╛рд╕реНрдЯ (iN -> iM рдмрд┐рдЯреНрд╕) рдпрд╛ рдПрдХ рдПрдбреНрд░реЗрд╕ рд╕реНрдкреЗрд╕ рдХрд╛рд╕реНрдЯ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░реЗрдЧрд╛ред рдлрд╝рдВрдХреНрд╢рди рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд░рд╕реНрдЯ рдХреЛ addrspace(1)* i16 рдкреЙрдЗрдВрдЯрд░ рдХреЛ рдХреЛрдбрдЬреЗрди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рддрд╛рдХрд┐ LLVM рдХреЛ рдореИрдк рди рдХрд░рдирд╛ рдкрдбрд╝реЗ ( addrspacecast ) PROGMEM RAM рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд╕рдВрднрд╡ рдХрд╛рд░реНрдп рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдИ рдореЗрдореЛрд░реА рдореИрдкрд┐рдВрдЧ рдирд╣реАрдВ рд╣реИ рдФрд░ рдкрддрд╛ рд╕реНрдерд╛рди рдУрд╡рд░рд▓реИрдк рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред

рдпрд╣ рдмрдЧ рдореБрдЦреНрдп рдЕрд╡рд░реЛрдзрдХ рд╣реИред

рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдПрд▓рдПрд▓рд╡реАрдПрдо рдорд╛рд╕реНрдЯрд░ (AFAICT, рдпрд╣ 8.0 рд░рд┐рд▓реАрдЬ рдкрд░ рдХрд╛рдлреА рдЬреНрдпрд╛рджрд╛ рд╣реИ) рд╕реЗ рдЕрдкрд╕реНрдЯреНрд░реАрдо рдЬрдВрдЧ рдЦреАрдВрдЪрддреА рд╣реИ рддрд╛рдХрд┐ рд╣рдо рдЪреЗрд░реА-рдкрд┐рдХреНрд╕ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд╣рдЯрд╛ рд╕рдХреЗрдВред

рдореБрдЭреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ https://github.com/dylanmckay/avr-compiler-integration-tests/ рдкрд░реАрдХреНрд╖рдг рдПрдХ рдПрд╡реАрдЖрд░ рдПрдореБрд▓реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдлрд▓ рд╣реБрдП, рдЬреЛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдИ рдЕрдиреНрдп рдкрд░реАрдХреНрд╖рдг рд╕реВрдЯ рдирд╣реАрдВ рд╣реИ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрд▓рдПрд▓рд╡реАрдПрдо рджреНрд╡рд╛рд░рд╛ рдПрд╡реАрдЖрд░ рдЕрд╕реЗрдВрдмрд▓реА рдереВрдХ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИред рдореИрдВрдиреЗ рдкреНрд░рддреНрдпреЗрдХ рдПрд╡реАрдЖрд░-рд░рд╕реНрдЯ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ (рдПрдХ рдЧрд┐рдЯрд▓реИрдм рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рдорд┐рд░рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ) рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЧрд┐рдЯрд▓реИрдм рдзрд╛рд╡рдХ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЧрд┐рдЯрд▓реИрдм рдкреБрд▓ рдЕрдиреБрд░реЛрдзреЛрдВ рдкрд░ рд╕реАрдЖрдИ рдмрд┐рд▓реНрдб рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХреЛрдб рдПрдХ рдореЗрдВ рд╣реЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд╛рдВрдЯреЗрджрд╛рд░ рднрдВрдбрд╛рд░ред

рдЕрдкрдбреЗрдЯ @dylanmckay рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЗрд╕рдореЗрдВ рдХрд┐рдП рдЧрдП рдкреНрд░рдпрд╛рд╕ рдХреА рд╣рдо рд╕рднреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддреЗ рд╣реИрдВред

рдЕрдм рд╣рдордиреЗ рд░рд╕реНрдЯ рдмреЗрд╕ рд░рд╕реНрдЯ-рд▓реИрдВрдЧ/ рд░рд╕реНрдЯ@fb7cca33f рдХреЗ рдлреЛрд░реНрдХ рдСрдирдЯреЙрдк рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХрд┐рдпрд╛ рд╣реИ , рдмреНрд▓рд┐рдВрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╕рдВрдХрд▓рд┐рдд рд╣реЛрддрд╛ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдореБрджреНрджрд╛ рдардк рд╣реЛ рдЧрдпрд╛?

рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрд╕ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ рд╣реИ? рдХреНрдпрд╛ рдкрддрд╛ рд╕реНрдерд╛рди рдХреЗ рдореБрджреНрджреЗ рдкрд░ рдкреАрдЖрд░ рдЕрднреА рднреА рдардк рд╣реИ?

рдЕрд░реЗ @dylanmckay , рдЗрд╕рдХреЗ рд╕рд╛рде рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИ .. рдХреНрдпрд╛ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ рд╣реИ?

рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░, рдпрд╣рд╛рдБ рдореЗрд░реА рдУрд░ рд╕реЗ рдХреБрдЫ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рд╣реИрдВ

рдЪреЗрд░реА-рдкрд┐рдХрд┐рдВрдЧ рдлрд┐рдХреНрд╕

libcore рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдЧрднрдЧ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдлрд┐рдХреНрд╕ рдХреЛ рдПрд▓рдПрд▓рд╡реАрдПрдо рдорд╛рд╕реНрдЯрд░ рдореЗрдВ рдЕрдкрд╕реНрдЯреНрд░реАрдо рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЬрдВрдЧ-рд▓реИрдВрдЧ/рдПрд▓рдПрд▓рд╡реАрдПрдо рдлреЛрд░реНрдХ рдореЗрдВ рдореМрдЬреВрдж рд╣реИред рдХрд▓ рдореИрдВрдиреЗ AVR рдлреЛрд░реНрдХ рдХреЛ 1.39.0 (avr-rust/rust#155) рдкрд░ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ PR рд╢реБрд░реВ рдХрд┐рдпрд╛, рдореБрдЭреЗ рдХреЗрд╡рд▓ рдПрдХ рдлрд┐рдХреНрд╕ рдХреЛ рдЪреЗрд░реА-рдкрд┐рдХ рдХрд░рдирд╛ рдерд╛ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рдирд╣реАрдВ рдерд╛ - avr- rust /

libcore рдХреЛ рдмрд┐рдирд╛ рд╕рдВрд╢реЛрдзрди рдХреЗ рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ

AVR рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдм рд╣рдореЗрдВ рдХрд╕реНрдЯрдо libcore рдлреЛрд░реНрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред avr- rust fork рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ libcore рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рд╕рдВрд╢реЛрдзрди рд╣реИ - avr- rust / рд▓рд┐рдЦреЗрдВ ред

рд╣рдо AVR-рд░рд╕реНрдЯ рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП xargo рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИрдВ - рдпрд╣ рдПрд╕рдЯреАрдбреА-

'рдХреЙрд▓' рдПрдХреНрд╕реЗрд╕ рд░реИрдо рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдлрдВрдХреНрд╢рди рдкреЙрдЗрдВрдЯрд░реНрд╕ рдкрд░ рдХреЛрдИ рднреА рдСрдкрд░реЗрд╢рди, рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдореЛрд░реА рдирд╣реАрдВ (avr-rust#68)

рдпрд╣ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

32-рдмрд┐рдЯ рд╢рд┐рдлреНрдЯ рдПрдХ рдХрдВрдкрд╛рдЗрд▓рд░-рдЖрд░рдЯреА рд░реВрдЯреАрди рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ (avr-llvm/llvm#163)

рдпрд╣ рдЕрднреА рднреА рдПрдХ рджрд░реНрджрдирд╛рдХ рдореБрджреНрджрд╛ рд╣реИред рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдПрд▓рдПрд▓рд╡реАрдПрдо рдПрд╡реАрдЖрд░ рдмреИрдХрдПрдВрдб рдореЗрдВ рдХрд╕реНрдЯрдо рд▓реЛрдЕрд░рд┐рдВрдЧ рдХреЛрдб рд▓рд┐рдЦрдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдлрд┐рдХреНрд╕ рд╣реЛрдЧрд╛ рдЬреЛ рдЗрди рдмрджрд▓рд╛рд╡реЛрдВ рдХреЛ рд╢реБрджреНрдз рдЕрд╕реЗрдВрдмрд▓реА рдореЗрдВ рдХрдо рдХрд░рддрд╛ рд╣реИ, рдХрдВрдкрд╛рдЗрд▓рд░-рдЖрд░рдЯреА рдпрд╛ libgcc рдкрд░ рдХрд┐рд╕реА рднреА рдПрдмреАрдЖрдИ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЬреЗрдирд░реЗрдЯ рдХреЛрдб рдХрд╛ рдЖрдХрд╛рд░ рдХрд┐рддрдирд╛ рдмрдбрд╝рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдЕрдкрд╕реНрдЯреНрд░реАрдо рд╕реЗ рдкрд╣рд▓реЗ рдХреЗ рдкреНрд░рд╢реНрди

RFC рдФрд░ рдЕрд╕реНрдерд┐рд░ рдХреЙрд▓рд┐рдВрдЧ рдХрдиреНрд╡реЗрдВрд╢рди

рдореИрдВрдиреЗ рдЗрд╕ рдЯрд┐рдкреНрдкрдгреА рдХреЛ рд╕реВрддреНрд░ рдореЗрдВ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рд╣реИ

"рдПрд╡реАрдЖрд░-рдЗрдВрдЯрд░рдкреНрдЯ" рдХреЙрд▓рд┐рдВрдЧ рдХрдиреНрд╡реЗрдВрд╢рди рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдмрд╛рд╣рд░реА "avr-interrupt" fn my_isr_handler() {..} рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЗрд╕реЗ рд╕реНрдерд┐рд░ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рд╢рд╛рдпрдж RFC рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗ рдЧреБрдЬрд░рдирд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдЧрд▓рдд рд╣реЛ рд╕рдХрддрд╛ рдерд╛ред

рдХреНрдпрд╛ рдЖрд░рдПрдлрд╕реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗ рдЧреБрдЬрд░реЗ рдмрд┐рдирд╛ рдЕрд╕реНрдерд┐рд░ рдХреЙрд▓рд┐рдВрдЧ рд╕рдореНрдореЗрд▓рдиреЛрдВ рдХреЛ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?

рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ "avr-interrupt" рдФрд░ "avr-non-blocking-interrupt" #![feature(abi_avr_interrupt)] рдлреАрдЪрд░ рдЧреЗрдЯ рдХреЗ рдЕрдВрддрд░реНрдЧрдд рд╣реИрдВред рдХреНрдпрд╛ рдЗрдиреНрд╣реЗрдВ рдЕрд╕реНрдерд┐рд░ рдХреЙрд▓рд┐рдВрдЧ рд╕рдореНрдореЗрд▓рдиреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдкрд╕реНрдЯреНрд░реАрдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╕реНрдерд┐рд░реАрдХрд░рдг RFC рд▓рдВрдмрд┐рдд рд╣реИ?

рдмрд┐рд▓реНрдбрдмреЙрдЯреНрд╕

рдПрд▓рдПрд▓рд╡реАрдПрдо рдмреИрдХрдПрдВрдб рдХреЛ рдЕрдкрд╕реНрдЯреНрд░реАрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд░реНрдкрд┐рдд рдмрд┐рд▓реНрдбрдмреЙрдЯ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬреЛ рдЙрд╕ рдмреИрдХрдПрдВрдб рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ рдмрдирд╛рдП рд░рдЦрддрд╛ рд╣реИред рдХреНрдпрд╛ рд░рд╕реНрдЯ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдРрд╕рд╛ рд╣реИ? рд╣рдо рдпрд╣ рдХреИрд╕реЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдкрд░реАрдХреНрд╖рдг рд╕реВрдЯ рдкреНрд░рддреНрдпреЗрдХ рдзрдХреНрдХрд╛ рдкрд░ AVR рдореЛрдб рдореЗрдВ рдЪрд▓рддрд╛ рд╣реИ? рдЕрдиреНрдп рдмреИрдХрдПрдВрдб (рдЬреИрд╕реЗ WASM) рдиреЗ рдХреНрдпрд╛ рдХрд┐рдпрд╛?

рд╡рд┐рддрд░рдг

рдХреНрдпрд╛ "рдПрд╡реАрдЖрд░-рд░рд╕реНрдЯ рдлреЛрд░реНрдХ рдЕрдкрд╕реНрдЯреНрд░реАрдо рдХреЛ рдорд░реНрдЬ рдХрд░рдирд╛" рдХрд╛ рдорддрд▓рдм рдХреЗрд╡рд▓ рджреЛ рдХрд╛рдВрдЯреЗ рдХреЛ рдПрдХ рдореЗрдВ рдорд┐рд▓рд╛рдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдПрдХ рдмрд┐рд▓реНрдб-рдлреНрд░реЙрдо-рд╕реЛрд░реНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рд╢рд╛рдпрдж рдмреИрдХрдПрдВрдб рдХреЛ рд╡рд┐рддрд░рд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рд░рд╛рдд рдХреЗ рд▓рд┐рдП? рдЕрдиреНрдп рдмреИрдХрдПрдВрдб рдиреЗ рдХреНрдпрд╛ рдХрд┐рдпрд╛?

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрд╡реАрдЖрд░-рд░рд╕реНрдЯ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреИрдЪ рдмрд╣реБрдд рдкрддрд▓реЗ рд╣реЛрддреЗ рд╣реИрдВ, рдЖрдЬрдХрд▓ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╣реИрдХ рдХреЗред

рдкреВрд░рд╛ рдкреИрдЪрд╕реЗрдЯ рдпрд╣рд╛рдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ https://github.com/rust-lang/rust/compare/master...avr-rust :avr-support

рдорд╛рдИ рдбрдмреНрд▓реНрдпреВрдЖрдИрдкреА 1.39.0 рд░рд┐рдмреЗрд╕ рдкреИрдЪрд╕реЗрдЯ (рдЬреЛ рдЬреНрдпрд╛рджрд╛рддрд░ рд╕рдорд╛рди рд╣реИ) рдпрд╣рд╛рдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ https://github.com/rust-lang/rust/compare/master...avr-rust :avr-support-1.39.0-4560ea788c . рдЗрд╕реЗ рдЕрдЧрд▓реЗ рдХреБрдЫ рджрд┐рдиреЛрдВ рдореЗрдВ avr-rust/master рдореЗрдВ рдорд┐рд▓рд╛ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореИрдВ рдХреБрдЫ рднреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реЛрдЪ рд╕рдХрддрд╛ рдЬреЛ рдЗрд╕реЗ рдЕрд╡рд░реБрджреНрдз рдХрд░ рд░рд╣рд╛ рд╣реИ - рд╢рд╛рдпрдж, рдкреИрдЪ рд╕рдмрдорд┐рдЯ рдХрд░рдиреЗ рдФрд░ рдпрд╣ рджреЗрдЦрдиреЗ рдХрд╛ рд╕рдордп рд╣реИ рдХрд┐ рдпрд╣ рдХреИрд╕рд╛ рдЪрд▓ рд░рд╣рд╛ рд╣реИ?

https://github.com/rust-lang/rust/issues/44036

рдореИрдВрдиреЗ рдКрдкрд░ рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ AVR рдмреИрдХрдПрдВрдб рдХреЗ рдЕрдкрд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░рддрд╛ рд╣реИред рд╣рдореЗрдВ рдЗрд╕рдХреЗ рдмрд┐рдирд╛ AVR рдХреЗ рд╕рд╛рде rustc рдХреЗ рдПрдХ рдХрд╛рд░реНрдпрд╢реАрд▓, рдЙрдкрдпреЛрдЧреА рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЙрддрд╛рд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдФрд░ рд╣реИрдХ рд╣реИрдВ рдЬреЛ рд╣рдо рдлрд┐рд░ рд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдмреИрдХрдПрдВрдб рдХреЗ рдХрд╛рд▓реНрдкрдирд┐рдХ рд░реВрдк рд╕реЗ рд╡рд┐рд▓рдп рдХреЗ рдмрд╛рдж, рдФрд░ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд░рд╕реНрдЯ рдореЗрдВ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд▓рдХреНрд╖реНрдп-рд╕реАрдкреАрдпреВ рдХреНрд╡реЗрд░реАрд┐рдВрдЧ рдПрдкреАрдЖрдИ рднреВрдорд┐ рд╕реЗ рдкрд╣рд▓реЗ, рдПрд╡реАрдЖрд░ рдХреНрд░реЗрдЯ рдореЗрдВ рдбрд┐рд╡рд╛рдЗрд╕ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ред

рд╡рд╣ рд░рд╣рддрд╛ рд╣реИ! рдЕрджреНрдпрддрди @dylanmckay рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд░реЛрдорд╛рдВрдЪрдХ рдкреНрд░рдЧрддрд┐ред

рдмрдврд╝рд┐рдпрд╛ рдХрд╛рдо @dylanmckay! рд╣реБрдореЗрдВ рд╕реВрдЪрд┐рдд рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рдереЛрдбрд╝рд╛ рд╕рд╛ рд╡рд┐рд╖рдп, рд▓реЗрдХрд┐рди: рдХреНрдпрд╛ рдПрд╡реАрдЖрд░ рдХреЗ рд▓рд┐рдП рдЬрдВрдЧ рд╕реА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдлрдПрдлрдЖрдИ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛?
рдПрд╡реАрдЖрд░ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрд╣реБрдд рд╕рд╛рд░реЗ рдкрд░рд┐рдкрдХреНрд╡ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЙрдкрд▓рдмреНрдз рд╣реИрдВ рд▓реЗрдХрд┐рди рд╕реА/рд╕реА ++ рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВред
рдЙрдирдХреЗ рд▓рд┐рдП рдХреБрдЫ рд░рд╕реНрдЯ-рд╕реНрдЯрд╛рдЗрд▓ рд░реИрдкрд░ рдмрдирд╛рдиреЗ рдФрд░ рд╣рдорд╛рд░реЗ рд░рд╕реНрдЯ рдПрд╡реАрдЖрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдореЗрдВ рдЙрдирдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред

рдЬрдВрдЧ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╕реА рдХреЗ рд╕рд╛рде рдПрдлрдПрдлрдЖрдИ рдХрд░ рд╕рдХрддреА рд╣реИред

рд╣рд╛рдБ рдФрд░ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ! рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдЬрдВрдЧ-рдПрд╡реАрдЖрд░ рдореЗрдВ рддрдмреНрджреАрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ?

рдЬрдм рддрдХ рдПрд╡реАрдЖрд░ рдХреЗ рд▓рд┐рдП рдПрд▓рдПрд▓рд╡реАрдПрдо рдХрд╛ рд╕реА рдПрдмреАрдЖрдИ рдЬреАрд╕реАрд╕реА рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП

рдХреНрдпрд╛ рдЖрд░рдПрдлрд╕реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗ рдЧреБрдЬрд░реЗ рдмрд┐рдирд╛ рдЕрд╕реНрдерд┐рд░ рдХреЙрд▓рд┐рдВрдЧ рд╕рдореНрдореЗрд▓рдиреЛрдВ рдХреЛ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?

рдореЗрд░рд╛ рд╡реЛрдЯ рд╣рд╛рдБ рд╣реИ , рдХреНрдпреЛрдВрдХрд┐ рдПрд╡реАрдЖрд░ рдХреЙрд▓рд┐рдВрдЧ рд╕рдореНрдореЗрд▓рдиреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рд╡рд░реНрддрди рдореВрд▓ рд░реВрдк рд╕реЗ рд╕рд┐рд░реНрдл рдЙрдиреНрд╣реЗрдВ рдПрдХ рдирд╛рдо рджреЗ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрд▓рдПрд▓рд╡реАрдПрдо рдирдВрдмрд░ рдкрд░ рдореИрдк рдХрд░ рд░рд╣рд╛ рд╣реИред рдХреЛрдИ рдореВрд▓рднреВрдд рдХреЛрдб рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрд╕реНрдерд┐рд░ рд╕рдореНрдореЗрд▓рдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╣реИред

рдПрд▓рдПрд▓рд╡реАрдПрдо рдмреИрдХрдПрдВрдб рдХреЛ рдЕрдкрд╕реНрдЯреНрд░реАрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд░реНрдкрд┐рдд рдмрд┐рд▓реНрдбрдмреЙрдЯ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬреЛ рдЙрд╕ рдмреИрдХрдПрдВрдб рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ рдмрдирд╛рдП рд░рдЦрддрд╛ рд╣реИред рдХреНрдпрд╛ рд░рд╕реНрдЯ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдРрд╕рд╛ рд╣реИ? рд╣рдо рдпрд╣ рдХреИрд╕реЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдкрд░реАрдХреНрд╖рдг рд╕реВрдЯ рдкреНрд░рддреНрдпреЗрдХ рдзрдХреНрдХрд╛ рдкрд░ AVR рдореЛрдб рдореЗрдВ рдЪрд▓рддрд╛ рд╣реИ? рдЕрдиреНрдп рдмреИрдХрдПрдВрдб (рдЬреИрд╕реЗ WASM) рдиреЗ рдХреНрдпрд╛ рдХрд┐рдпрд╛?

рдЬрдВрдЧ рдХреА рд╕реНрддрд░реАрдп рдкреНрд░рдгрд╛рд▓реА рдереЛрдбрд╝реА рд╢рд┐рдерд┐рд▓ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ AVR- рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреЛрдб рдХреЛ рдорд░реНрдЬ рдХрд░рдирд╛ рд╕рд╣реА рдмрд╛рдд рд╣реИред рддрдм AVR рдЯрд┐рдпрд░ 3 рд╣реЛрдЧрд╛ , рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдирд┐рд░реНрдорд┐рдд рдпрд╛ рдкрд░реАрдХреНрд╖рдг

рдХреНрдпрд╛ "рдПрд╡реАрдЖрд░-рд░рд╕реНрдЯ рдлреЛрд░реНрдХ рдЕрдкрд╕реНрдЯреНрд░реАрдо рдХреЛ рдорд░реНрдЬ рдХрд░рдирд╛" рдХрд╛ рдорддрд▓рдм рдХреЗрд╡рд▓ рджреЛ рдХрд╛рдВрдЯреЗ рдХреЛ рдПрдХ рдореЗрдВ рдорд┐рд▓рд╛рдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдПрдХ рдмрд┐рд▓реНрдб-рдлреНрд░реЙрдо-рд╕реЛрд░реНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ?

рдореЗрд░реА рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рдкреАрдЖрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдХрдорд┐рдЯ рдЬрдорд╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЬрдм рддрдХ рдпрд╣ рдЕрдзрд┐рдХ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рд▓рдХреНрд╖реНрдп рдирд╣реАрдВ рдмрди рдЬрд╛рддрд╛, рддрдм рддрдХ рд╣рдорд╛рд░рд╛ рдХрд╕реНрдЯрдо рдХрд╛рдВрдЯрд╛ AVR-рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ рдорд░ рдЬрд╛рдПрдЧрд╛ / рдПрдХ рд╕реНрдерд╛рди рдмрди рдЬрд╛рдПрдЧрд╛ред

рд╢рд╛рдпрдж, рдкреИрдЪ рд╕рдмрдорд┐рдЯ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИ

рдореБрдЭреЗ рднреА рдРрд╕рд╛ рд╣реА рд▓рдЧрддрд╛ рд╣реИред

@edvorg рд╡рд┐рд╖рдп рдкрд░ рдмрд╣реБрдд IMO

рдереЛрдбрд╝рд╛ рд╕рд╛ рд╡рд┐рд╖рдп, рд▓реЗрдХрд┐рди: рдХреНрдпрд╛ рдПрд╡реАрдЖрд░ рдХреЗ рд▓рд┐рдП рдЬрдВрдЧ рд╕реА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдлрдПрдлрдЖрдИ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛?
рдПрд╡реАрдЖрд░ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрд╣реБрдд рд╕рд╛рд░реЗ рдкрд░рд┐рдкрдХреНрд╡ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЙрдкрд▓рдмреНрдз рд╣реИрдВ рд▓реЗрдХрд┐рди рд╕реА/рд╕реА ++ рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВред

рд╣рд╛рдБ .. рдЬреНрдпрд╛рджрд╛рддрд░ред рдПрд╡реАрдЖрд░ рдмреИрдХрдПрдВрдб рджреНрд╡рд╛рд░рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдПрд╡реАрдЖрд░ рдХреЙрд▓рд┐рдВрдЧ рд╕рдореНрдореЗрд▓рди рдПрд╡реАрдЖрд░-рдЬреАрд╕реАрд╕реА ( рдпрд╣рд╛рдВ рджрд╕реНрддрд╛рд╡реЗрдЬ) рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдХреБрдЫ рд╡рд┐рдЪрд┐рддреНрд░рддрд╛рдПрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди LLVM рдкреИрдЪ D68524 рдЬрд┐рд╕рдХреА рдореБрдЭреЗ рд╕рдореАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЙрдиреНрд╣реЗрдВ рдареАрдХ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рд░рд╕реНрдЯ рдХреЙрд▓рд╕рд╛рдЗрдЯреНрд╕ рд╣рдореЗрд╢рд╛ рд░рд╕реНрдЯ рдпрд╛ avr-clang рд╕рдВрдХрд▓рд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗ (рдЬреИрд╕рд╛ рдХрд┐ avr-clang C рд╕рдорд╛рди extern "C" рд░рд╕реНрдЯ рдлреНрд░рдВрдЯрдПрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ рдХреЙрд▓рд┐рдВрдЧ рдХрдиреНрд╡реЗрдВрд╢рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ), рдФрд░ AVR-GCC _ should_ рдХрд╛рдо рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░ рдСрдкрд░реЗрд╢рди, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕рд╛рдзрд╛рд░рдг рдлрд╝рдВрдХреНрд╢рди рд╣рд╕реНрддрд╛рдХреНрд╖рд░реЛрдВ рдХреЗ рд▓рд┐рдП, рд▓реЗрдХрд┐рди рдпрд╣ рдХрднреА-рдХрднреА рдШреБрдЯ рд╕рдХрддрд╛ рд╣реИ (рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП D68524 рдХрд╛ рд╡рд┐рд╡рд░рдг рджреЗрдЦреЗрдВ)ред

рдЗрд╕ рдкрд░ рдХрд┐рд╕реА рднреА рдЕрджреНрдпрддрди ?
рдмрд╕ рдЙрддреНрд╕реБрдХред

LLVM AVR рдмреИрдХрдПрдВрдб рдХреЛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдмреИрдХрдПрдВрдб рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрдорд┐рдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЕрдиреБрд░реЛрдз - https://reviews.llvm.org/D75099

@dylanmckay рдЕрдЧрд░ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢реЗрд╖ рдЯреБрдХрдбрд╝реЗ рдХреНрдпрд╛ рд╣реИрдВ?

@dylanmckay рдЕрдЧрд░ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢реЗрд╖ рдЯреБрдХрдбрд╝реЗ рдХреНрдпрд╛ рд╣реИрдВ?

рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ, рд░рд╕реНрдЯ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдФрд░ рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рджреЛрдиреЛрдВ рдмреИрдХрдПрдВрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдореИрдВрдиреЗ рдмреИрдХрдПрдВрдб рдХреЗ рдмрдбрд╝реЗ рд╣рд┐рд╕реНрд╕реЗ рдХреА рдЕрдкрд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдХреЗ рд▓рд┐рдП #69478 рдЙрдард╛рдпрд╛ рд╣реИред

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдПрд╡реАрдЖрд░ рдХреЛ рдЯреАрдпрд░ 3 рд▓рдХреНрд╖реНрдп рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд┐рд▓рдп рдХрд░рдирд╛ рдПрд╡реАрдЖрд░ рдкрд░ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдПрд▓рдПрд▓рд╡реАрдПрдо рдмреИрдХрдПрдВрдб рдмрдирдиреЗ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ - рд╡рд┐рдЪрд╛рд░реЛрдВ рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИред

рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрддреЗ рд╣реБрдП, рдПрд▓рдПрд▓рд╡реАрдПрдо рдХреЗ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдмрдирд╛рдо рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рднреЗрдж рдХреЛ рд░рд╕реНрдЯ рдХреА рд╕реНрддрд░реАрдп рдкреНрд░рдгрд╛рд▓реА рдкрд░ рдореИрдк рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рд░рд╕реНрдЯ рдХреЗ рддреАрди рд╕реНрддрд░ рд╣реИрдВ рдФрд░ рдПрд▓рдПрд▓рд╡реАрдПрдо рдореЗрдВ рджреЛ рд╣реИрдВред рдПрд▓рдПрд▓рд╡реАрдПрдо рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдмреИрдХрдПрдВрдб рдЯрд┐рдпрд░ 1 рдФрд░ 2 рдХреЗ рдорд┐рд╢реНрд░рдг рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ - рдореВрд▓ рд░реВрдк рд╕реЗ, рдкрд░реАрдХреНрд╖рдг рд╕реВрдЯ рдФрд░ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд░рд┐рд▓реАрдЬ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИред рдПрдХ рдПрд▓рдПрд▓рд╡реАрдПрдо рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рдмреИрдХрдПрдВрдб, рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдореИрдВ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реВрдВ, рд╢рдмреНрджрд╛рд░реНрде рд░реВрдк рд╕реЗ рд░рд╕реНрдЯ рдЯрд┐рдпрд░ 3 рдмреИрдХрдПрдВрдб рдХреЗ рд╕рдорд╛рди рд╣реИ; рд╕реНрд░реЛрдд рдЯреНрд░реА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ CI рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИ, рдЖрджрд┐ред

рддрдм рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рд╢реЗрд╖ рдЯреБрдХрдбрд╝реЗ рд╡реЗ рд╣реЛрдВрдЧреЗ рдЬреЛ # 69478 рдХреА рдХреЛрдб рд╕рдореАрдХреНрд╖рд╛ рдореЗрдВ рдЖрдПрдВрдЧреЗред

рдЯреАрдПрд▓; рдбреЙ рдПрд╡реАрдЖрд░ рдмреИрдХрдПрдВрдб рдЬрдВрдЧ-рд▓реИрдВрдЧ/рд░рд╕реНрдЯ # 69478 рдореЗрдВ рдПрдХ рдЯреАрдпрд░ 3 рдЕрдкрд╕реНрдЯреНрд░реАрдо рд▓рдХреНрд╖реНрдп рдмрди рдЬрд╛рдПрдЧрд╛, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛рдВрдЯрд╛ рдХреЛ рдорд╛рд░ рджреЗрдЧрд╛ред

рдПрд╡реАрдЖрд░-рд░рд╕реНрдЯ/рд░рд╕реНрдЯ рдлреЛрд░реНрдХ рдФрд░ #69478 рдХреЗ рдмреАрдЪ рдПрдХрдорд╛рддреНрд░ рдЕрдВрддрд░ target_cpu cfg рдлреНрд▓реИрдЧ рд╣реИ рдЬреЛ AVR рдлреЛрд░реНрдХ рдореЗрдВ рдореМрдЬреВрдж рд╣реИ рд▓реЗрдХрд┐рди рдЕрдкрд╕реНрдЯреНрд░реАрдо рдирд╣реАрдВ рд╣реИред рдореИрдВрдиреЗ рдЗрд╕реЗ рд╢реБрд░реБрдЖрддреА рдкреАрдЖрд░ рд╕реЗ рдмрд╛рд╣рд░ рдХрд░ рджрд┐рдпрд╛ рд╣реИред

рд╢реЗрд╖ рдЯреБрдХрдбрд╝реЗ рдХреНрдпрд╛ рд╣реИрдВ

рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ рдЕрднреА рднреА рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдХреЛрдб рдХреА рдХрдИ рдЧрд▓рддрд┐рдпрд╛рдБ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЪреАрдЬреЛрдВ рдХреЛ рдЖрдЬрд╝рдорд╛рдиреЗ рдФрд░ рдмрдЧ рдХреЛ рдХрдо рдХрд░рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрднреА рднреА рдЕрдзрд┐рдХ рд▓реЛрдЧреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рд▓реЛрдЧ рдЪреАрдЬреЛрдВ рдХреЛ рдЖрдЬрдорд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рд░ рдХреЛ рдХрдо рдХрд░ рджреЗрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдЖрдорддреМрд░ рдкрд░ рдкреБрд░рд╛рдиреЗ рдХрд╛рдВрдЯреЗ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рд░рд╛рдд рдореЗрдВ рдирд┐рдпрдорд┐рдд рдЬрдВрдЧ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдПрдХ рдмрд╛рд░ рдЬрдм рдпрд╣ рдЯреАрдпрд░ 3 рд▓рдХреНрд╖реНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдкрд╕реНрдЯреНрд░реАрдо рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдХреНрдпрд╛ AVR рд╡рд┐рдХрд╛рд╕ рдХрд╛рд░реНрдЧреЛ рдХреА -Z build-std рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдЧрд╛, рдпрд╛ рдЗрд╕рдХреЗ рд▓рд┐рдП xargo рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА? рдХреНрдпрд╛ рдПрд▓рдПрд▓рдбреА рдЬреЛ рдЬрдВрдЧ рдХреЗ рд╕рд╛рде рдЬрд╣рд╛рдЬреЛрдВ рдореЗрдВ рдПрд╡реАрдЖрд░ рд╕рдорд░реНрдерди рд╣реИ, рдпрд╛ рдХреНрдпрд╛ рдЬреАрдПрдирдпреВ рд▓рд┐рдВрдХрд░реНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА?

рдХреНрдпрд╛ рдХрд╛рд░реНрдЧреЛ рдХреА -Z build-std рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд╕рд╛рде AVR рд╡рд┐рдХрд╛рд╕ рдХрд╛рд░реНрдп рдХрд░реЗрдЧрд╛, рдпрд╛ рдЗрд╕рдХреЗ рд▓рд┐рдП xargo рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА? рдХреНрдпрд╛ рдПрд▓рдПрд▓рдбреА рдЬреЛ рдЬрдВрдЧ рдХреЗ рд╕рд╛рде рдЬрд╣рд╛рдЬреЛрдВ рдореЗрдВ рдПрд╡реАрдЖрд░ рд╕рдорд░реНрдерди рд╣реИ, рдпрд╛ рдХреНрдпрд╛ рдЬреАрдПрдирдпреВ рд▓рд┐рдВрдХрд░реНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА?

рдореИрдВ рдпрд╣ рдирд╣реАрдВ рдХрд╣ рд╕рдХрддрд╛ рдХрд┐ рд╡реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ , рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЬреЛ рдХреБрдЫ рднреА рдХрд┐рдпрд╛ рд╣реИ рдЙрд╕рдореЗрдВ рдЬрд╝рд╛рд░реНрдЧреЛ рдФрд░ рдЬреАрдПрдирдпреВ рд▓рд┐рдВрдХрд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд╡рд┐рдВрдбреЛрдЬрд╝ рдкрд░ рдЬреАрдПрдирдпреВ рд▓рд┐рдВрдХрд░реНрд╕ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдХрдард┐рди рд╣реИ рдФрд░ xargo рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдЯреВрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдкреВрдЫ рд░рд╣рд╛ рд╣реВрдВред

рдХреНрдпрд╛ рдПрд▓рдПрд▓рдбреА рдЬреЛ рдЬрдВрдЧ рдХреЗ рд╕рд╛рде рдЬрд╣рд╛рдЬреЛрдВ рдореЗрдВ рдПрд╡реАрдЖрд░ рд╕рдорд░реНрдерди рд╣реИ, рдпрд╛ рдХреНрдпрд╛ рдЬреАрдПрдирдпреВ рд▓рд┐рдВрдХрд░реНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА?

рдПрд▓рдПрд▓рдбреА рдХреЗ рдкрд╛рд╕ рдПрд╡реАрдЖрд░ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдмрд╣реБрдд рд╣реА рдмреБрдирд┐рдпрд╛рджреА рд╕рдорд░реНрдерди рд╣реИ, рдпрд╣ рдЕрднреА рддрдХ рдХрд┐рд╕реА рднреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рд▓рд┐рдВрдХ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, avr-ld рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

рдЗрд╕рд▓рд┐рдП рдореИрдВ рдкреВрдЫ рд░рд╣рд╛ рд╣реВрдБред

рдХреЛрдИ рдЧрд▓рддреА рди рдХрд░реЗрдВ, рдореБрдЭреЗ рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рд╣реА рдЕрдВрддрд┐рдо рд▓рдХреНрд╖реНрдп рд╣реИ, рдпрд╣ рджреБрдирд┐рдпрд╛ рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИред рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ, рдореБрдЭреЗ рдУрд╡рд░рд╣реЗрдб рдХреЛ рдХрдо рдФрд░ рдХрдо рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреАред рдЗрд╕реЗ рдорд░реНрдЬ рдХрд░рдирд╛ рдЙрд╕реА рдХреА рдУрд░ рдкрд╣рд▓рд╛ рдХрджрдо рд╣реИред

рдПрд╡реАрдЖрд░ рдмреИрдХрдПрдВрдб рдХреЛ рдЕрдм рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдПрд▓рдПрд▓рд╡реАрдПрдо рд▓рдХреНрд╖реНрдп рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдХреНрд╖рдо рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: рдЯрд╛рдбрд╛: рдПрд▓рдПрд▓рд╡реАрдПрдо рдорд╛рд╕реНрдЯрд░ рдореЗрдВ рдЕрдм рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдПрд╡реАрдЖрд░ рд╕рдорд░реНрдерди рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ AVR рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдкрд╣рд▓реА LLVM рд░рд┐рд▓реАрдЬрд╝ рд▓рдЧрднрдЧ 6 рдорд╣реАрдиреЗ рдХреЗ рд╕рдордп рдореЗрдВ LLVM 11 рд╣реЛрдЧреАред

рдЕрдЪреНрдЫрд╛! рдЖрдк рдЗрд╕рдореЗрдВ рдЬреЛ рднреА рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЙрд╕рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рдмрд╣реБрдд рд╣реА рд╢рд╛рдВрдд!

рдЗрд╕ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдЙрдкрд▓рдмреНрдзрд┐ рдХреЗ рд▓рд┐рдП @dylanmckay рдХреЛ рдмрдзрд╛рдИред рдЗрд╕ рдкрд░ рдЖрдкрдХреЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рд╕рдореБрджрд╛рдп рдЖрдкрдХреЛ рдзрдиреНрдпрд╡рд╛рдж рджреЗрддрд╛ рд╣реИред

рдореИрдВ рдХреБрдЫ рд╕рдордп рд╕реЗ рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЬрдмрдХрд┐ рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЬреНрдпрд╛рджрд╛рддрд░ рд╡рд┐рд╖рдп рд╕реЗ рд╣рдЯрдХрд░ рд╣реИ, рдореБрдЭреЗ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ рдХрд┐ рдФрд╕рдд-рд╕реЗ-рд╕реНрд░реЛрдд-рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдЕрд░реНрде рд╣реИ ... рдХреНрдпрд╛ рдпрд╣ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЬрдЯрд┐рд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИ Arduino Uno рдКрдкрд░ рдФрд░ рджреЗрд╢реА рд░рд╕реНрдЯ рдХреЗ рд╕рд╛рде рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ? рдореБрдЭреЗ рдЗрд╕рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд░рд╕реНрдЯ рдХреЗ рдкрд╛рд╕ рдкрд░реНрдпрд╛рдкреНрдд рд╕реБрд░рдХреНрд╖рд╛ рд╣реИ, рдореИрдВ рд╕рдВрднрд╡рддрдГ рд▓рдЧрднрдЧ рдЙрддрдиреЗ рдЙрдлрд╝ рдХреНрд╖рдгреЛрдВ рдХрд╛ рдХрд╛рд░рдг рдирд╣реАрдВ рдмрди рд╕рдХрддрд╛ xP

@Jimmio92 рдореИрдВ рдЬреЛ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реВрдВ, рд╣рд╛рдВред рдЬреИрд╕рд╛ рдХрд┐ "рд╣рд╛рдБ, рдпрд╣ рдЬрдЯрд┐рд▓ рд╣реИ"ред рдпрд╛ рдХрдо рд╕реЗ рдХрдо рд▓рдВрдмрд╛ рдФрд░ рдердХрд╛рдК, рднрд▓реЗ рд╣реА рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЬрдЯрд┐рд▓ рди рд╣реЛ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ рдЕрднреА рднреА рд╕реНрд░реЛрдд рд╕реЗ рд░рд╕реНрдЯ рдХрдВрдкрд╛рдЗрд▓рд░ рдХрд╛ рдпрд╣ рдХрд╕реНрдЯрдо рдХрд╛рдВрдЯрд╛ рдмрдирд╛рдирд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕реНрд░реЛрдд рд╕реЗ рдПрд▓рдПрд▓рд╡реАрдПрдо рдХрд╛ рдирд┐рд░реНрдорд╛рдг рднреА рд╢рд╛рдорд┐рд▓ рд╣реИред рдЕрдЧрд░ рд╕рдм рдХреБрдЫ рдареАрдХ рд░рд╣рд╛ рддреЛ рдЖрдорддреМрд░ рдкрд░ рдЗрд╕рдореЗрдВ рдХреБрдЫ рдШрдВрдЯреЗ рд▓рдЧрддреЗ рд╣реИрдВ

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрд▓рдПрд▓рд╡реАрдПрдо рдХреЗ рд╕рд╛рде рдореЗрд░рд╛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЕрдиреБрднрд╡ рдпрд╣ рд╣реИ рдХрд┐ рдЕрдХреНрд╕рд░ рдпрд╣ рдЖрдкрдХреЗ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдХреБрдЫ рдкрд╕рдВрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ (рдХрдо рд╕реЗ рдХрдо рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдореИрдХреЛрдЬрд╝ рдкрд░ - рдпрд╣ рд▓рд┐рдирдХреНрд╕ рдкрд░ рдЖрд╕рд╛рди рд╣реИ рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╡рд┐рдВрдбреЛрдЬрд╝ рдкрд░ рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рд╕рдкрдирд╛ рднреА рдирд╣реАрдВ рджреЗрдЦрддрд╛ рд╣реИ), рдЗрд╕рд▓рд┐рдП рдЬрдм рддрдХ рдЖрдк рд╕рдлрд▓ рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддреЗ рдпрд╛ рд╣рд╛рд░ рдирд╣реАрдВ рдорд╛рди рд▓реЗрддреЗ, рддрдм рддрдХ рдЖрдк рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдкрдереЛрдВ рдФрд░ рдХрд╕реНрдЯрдо рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рдорд╛рд▓рд┐рд╢ рдХрд░рдирд╛ рд╕рдорд╛рдкреНрдд рдХрд░ рджреЗрддреЗ рд╣реИрдВред

рдЙрдкрд░реЛрдХреНрдд (рдЙрддреНрдХреГрд╖реНрдЯ) рд╕рдорд╛рдЪрд╛рд░ рдХрд╛ рдорддрд▓рдм рдХреЗрд╡рд▓ рдпрд╣реА рд╣реИ: рдПрд▓рдПрд▓рд╡реАрдПрдо рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЕрдм рдПрд╡реАрдЖрд░ рдХреЛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рд▓рдХреНрд╖рд┐рдд/рд╕рдорд░реНрдерди рдХрд░ рд░рд╣реЗ рд╣реИрдВ (?), рдФрд░ рдПрд▓рдПрд▓рд╡реАрдПрдо рдХреА рдЕрдЧрд▓реА рд░рд┐рд▓реАрдЬ рдореЗрдВ рдПрд╡реАрдЖрд░ рд╕рдорд░реНрдерди рд╢рд╛рдорд┐рд▓ рд╣реЛрдЧрд╛ред рдпрд╣ рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд░рд╕реНрдЯ рдЕрдм рдЕрд▓реНрдкрд╛рд╡рдзрд┐ рдореЗрдВ AVR рдХрд╛ рднреА рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ рдпрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдЧрд╛ред рдпрджрд┐ рдЖрдк рдореБрджреНрджреЛрдВ рдФрд░ рдЙрдкрд░реЛрдХреНрдд рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ AVR рд╕рдорд░реНрдерди рд╕реНрдЯреЙрдХ рд░рд╕реНрдЯ рдЯреВрд▓рдЪреЗрди рдХреЗ рд╕рд╛рде "рдмрд╕ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ" рддрдХ рдпрд╣ рдмрд╣реБрдд рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИред

рдХреНрдпрд╛ рдХреЛрдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛/рдЙрджрд╛рд╣рд░рдг рд╣реИ рдХрд┐ рдореИрдВ рдЪреЗрд░реА-рдкрд┐рдХрд┐рдВрдЧ рдПрд╡реАрдЖрд░ рдлрд┐рдХреНрд╕ рдХреЛ рдПрд▓рдПрд▓рд╡реАрдПрдо рдорд╛рд╕реНрдЯрд░ рд╕реЗ рдЬрдВрдЧ рдПрд▓рдПрд▓рд╡реАрдПрдо рдлреЛрд░реНрдХ рдореЗрдВ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ?

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреНрдпрд╛ рд░рд╕реНрдЯ рдЕрднреА рднреА LLVM рдорд╛рд╕реНрдЯрд░ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рддрд╛ рд╣реИ? рдЗрд╕рдХреЗ рд▓реБрдХ рд╕реЗ, рдпрд╣ рд╡рд░реНрддрдорд╛рди рд░рд┐рд▓реАрдЬрд╝ рдФрд░ рдХреБрдЫ рдЪреЗрд░реА-рдЪреБрдиреЗ рд╣реБрдП рдлрд╝рд┐рдХреНрд╕реЗрд╕ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рддрд╛ рд╣реИред рдХреНрдпрд╛ рдкреАрдЖрд░ рдХреЛ рдПрд▓рдПрд▓рд╡реАрдПрдо рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдорд╛рд╕реНрдЯрд░ рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрднреА рднреА рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ?

@dylanmckay

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреНрдпрд╛ рд░рд╕реНрдЯ рдЕрднреА рднреА LLVM рдорд╛рд╕реНрдЯрд░ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рддрд╛ рд╣реИ?

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрднреА рд░рд┐рд▓реАрдЬ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рддрд╛ рд╣реИред

рдХреНрдпрд╛ рдкреАрдЖрд░ рдХреЛ рдПрд▓рдПрд▓рд╡реАрдПрдо рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдорд╛рд╕реНрдЯрд░ рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрднреА рднреА рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ?

рдореБрдЭреЗ рдРрд╕рд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд▓реЗрдХрд┐рди cc @nikic

@dylanmckay 10.0 рд░рд┐рд▓реАрдЬ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд░рд╕реНрдЯ рдХреЗ рдПрд▓рдПрд▓рд╡реАрдПрдо рдлреЛрд░реНрдХ рдкрд░ рдлрд┐рдХреНрд╕ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд╣реИ: https://github.com/rust-lang/llvm-project/commits/rustc/10.0-2020-05-05

рдХреНрдпрд╛ рдХреЛрдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛/рдЙрджрд╛рд╣рд░рдг рд╣реИ рдХрд┐ рдореИрдВ рдЪреЗрд░реА-рдкрд┐рдХрд┐рдВрдЧ рдПрд╡реАрдЖрд░ рдлрд┐рдХреНрд╕ рдХреЛ рдПрд▓рдПрд▓рд╡реАрдПрдо рдорд╛рд╕реНрдЯрд░ рд╕реЗ рдЬрдВрдЧ рдПрд▓рдПрд▓рд╡реАрдПрдо рдлреЛрд░реНрдХ рдореЗрдВ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ?

рдпрд╣рд╛рдВ рдирд┐рд░реНрджреЗрд╢ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ: https://rustc-dev-guide.rust-lang.org/backend/updating-llvm.html#bugfix -updates

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреНрдпрд╛ рд░рд╕реНрдЯ рдЕрднреА рднреА LLVM рдорд╛рд╕реНрдЯрд░ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рддрд╛ рд╣реИ? рдЗрд╕рдХреЗ рд▓реБрдХ рд╕реЗ, рдпрд╣ рд╡рд░реНрддрдорд╛рди рд░рд┐рд▓реАрдЬрд╝ рдФрд░ рдХреБрдЫ рдЪреЗрд░реА-рдЪреБрдиреЗ рд╣реБрдП рдлрд╝рд┐рдХреНрд╕реЗрд╕ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рддрд╛ рд╣реИред рдХреНрдпрд╛ рдкреАрдЖрд░ рдХреЛ рдПрд▓рдПрд▓рд╡реАрдПрдо рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдорд╛рд╕реНрдЯрд░ рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрднреА рднреА рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ?

рдЬрдВрдЧ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдПрд▓рдПрд▓рд╡реАрдПрдо рд░рд┐рд▓реАрдЬ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд▓реЛрдЧреЛрдВ рдХреЛ рд╕рдВрдмрдВрдзрд┐рдд рдХреНрд▓реИрдВрдЧ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдЖрд╕рд╛рдиреА рд╕реЗ рдХреНрд░реЙрд╕-рд▓реИрдВрдЧреНрд╡реЗрдЬ рдПрд▓рдЯреАрдУ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рддреЛ рдпрд╣рд╛рдБ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЙрддреНрддрд░ рд╢рд╛рдпрдж "рдирд╣реАрдВ" рд╣реИред

рдЙрд╕ рдиреЗ рдХрд╣рд╛, рдПрд▓рдПрд▓рд╡реАрдПрдо 10 рд╕рдВрдХрд▓рди-рд╕рдордп рдкреНрд░рддрд┐рдЧрдорди рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрд▓рдПрд▓рд╡реАрдПрдо рдорд╛рд╕реНрдЯрд░ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдкрд░ рдХреБрдЫ рдЪрд░реНрдЪрд╛ рд╣реБрдИ рд╣реИред рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдореВрд▓реНрдпрд╛рдВрдХрди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрд╕ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдорд╛рди рд▓реЗрдирд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИ рдХрд┐ рд╣рд╛рд▓рд╛рдВрдХрд┐ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдФрд░ рд╣рдорд╛рд░реЗ рдПрд▓рдПрд▓рд╡реАрдПрдо 10 рдХрд╛рдВрдЯреЗ рдХреЗ рдЦрд┐рд▓рд╛рдл рдЪреЗрд░реА-рдкрд┐рдХреНрд╕ рд╕рдмрдорд┐рдЯ рдХрд░реЗрдВ (рдХреНрдпрд╛ рдЙрдирдореЗрдВ рд╕реЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╣реИрдВ?)

рдХрд╛рдВрдЯрд╛ рдорд┐рд▓рд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ! рдореИрдВ рдЖрдЬ рджреЛрдкрд╣рд░ рдПрдХ рдЙрдЪрд┐рдд рдЕрдкрдбреЗрдЯ рд▓рд┐рдЦреВрдВрдЧрд╛

https://github.com/rust-lang/rust/pull/69478

рдореИрдВ рдЖрдЬ рджреЛрдкрд╣рд░ рдПрдХ рдЙрдЪрд┐рдд рдЕрдкрдбреЗрдЯ рд▓рд┐рдЦреВрдВрдЧрд╛

рдореБрдЭреЗ рдЙрдХреНрдд рдЕрджреНрдпрддрди рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИред рдЖрдк рдЗрд╕реЗ рдХрд╣рд╛рдВ рдкреЛрд╕реНрдЯ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ рдереЛрдбрд╝рд╛_рд╕реНрдорд╛рдЗрд▓рд┐рдВрдЧ_рдлреЗрд╕ :)?

рдореИрдВ рд╕рдЪрдореБрдЪ рд╡рд░реНрд╖реЛрдВ рд╕реЗ рд░рд╕реНрдЯ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдореЗрдВ рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рд╣реЛрдиреЗ рдХрд╛ рдмреЗрд╕рдмреНрд░реА рд╕реЗ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ! рд╣рд╛рд▓рд╛рдВрдХрд┐ рдорд╛рд╕реНрдЯрд░ рдкрд░ рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдиреЗ рдХрд╛ рдореЗрд░рд╛ рдЕрдиреБрднрд╡рд╣реАрди рдкреНрд░рдпрд╛рд╕ рддреНрд░реБрдЯрд┐рдкреВрд░реНрдг рд▓рдЧрддрд╛ рд╣реИред

рдореИрдВ рдорд╛рдирдХ рдХреЗ рд╕рд╛рде рдорд╛рд╕реНрдЯрд░ рдЬрдВрдЧ рдмрдирд╛рдпрд╛ ./x.py build , toolchain рдХреЗ рд░реВрдк рдореЗрдВ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ master , рддреЛ AVR-рдЬрдВрдЧ / рдЭрдкрдХреА рдЙрджрд╛рд╣рд░рдг (рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ src/main.rs рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП llvm_asm! ):

RUST_TARGET_PATH=`pwd`
XARGO_RUST_SRC=/home/nixpulvis/Projects/rust

rustup run master xargo build --target avr-atmega328p --release

рдЗрд╕рдХреЗ рд╕рд╛рде рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ:

error: no matching package named `core` found
location searched: registry `https://github.com/rust-lang/crates.io-index`
required by package `sysroot v0.0.0 (/tmp/xargo.oXlxlujoXvXJ)`
error: `"cargo" "build" "--release" "--manifest-path" "/tmp/xargo.oXlxlujoXvXJ/Cargo.toml" "--target" "avr-atmega328p" "-p" "core"` failed with exit code: Some(101)
note: run with `RUST_BACKTRACE=1` for a backtrace

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрднреА рднреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рдореБрдЭреЗ рдпрд╛рдж рдЖ рд░рд╣реА рд╣реИред

@nixpulvis рджреЗрдЦреЗрдВ https://github.com/rust-lang/rust/issues/44052#issuecomment -591396417

рдореИрдВ рдЕрдм рдХреБрдЫ рднреА рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж рдирд╣реАрдВ рдХрд░рддрд╛ рдХреНрдпреЛрдВрдХрд┐ libcore рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред

AVR rustc рдХрд╛рдВрдЯрд╛ рдХреЛ рдЕрдкрд╕реНрдЯреНрд░реАрдо рдореЗрдВ рдорд┐рд▓рд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЕрдкрд╕реНрдЯреНрд░реАрдо рдХрд╛рдВрдЯрд╛ рдЕрднреА рддрдХ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИред рдХреБрдЫ рдЪреАрдЬреЗрдВ рд╣реИрдВ рдЬреЛ рдкрд╣рд▓реЗ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред

AVR LLVM рдЕрдкрд╕реНрдЯреНрд░реАрдо рдареАрдХ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЬрдВрдЧ рдХреЛ рдЕрднреА рддрдХ рдЪреЗрд░реА-рдкрд┐рдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ

@nikic рдХреЗ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдзрд┐рдХрддрдо 20 LLVM рдХрдорд┐рдЯ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЪреЗрд░реА-рдкрд┐рдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдореИрдВ рдПрд▓рдПрд▓рд╡реАрдПрдо рдЕрдкрд╕реНрдЯреНрд░реАрдо рд╕реЗ рд╕реНрдерд╛рдиреАрдп рдлреЛрд░реНрдХ рдореЗрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЪреЗрд░реА-рдкрд┐рдХ _all_ AVR рдХрдорд┐рдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
рдпрд╣ рдПрдХ рдмрдбрд╝рд╛ рд╣рдереМрдбрд╝рд╛ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдЪреЗрд░реА-рдЪреБрдиреЗ рд╣реБрдП рдлрд╝рд┐рдХреНрд╕реЗрд╕ рд╣реЛрдВрдЧреЗ рдЬреЛ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╣реИрдВ - рдЕрдкрд╕реНрдЯреНрд░реАрдо рдПрд▓рдПрд▓рд╡реАрдПрдо рдлрд╝рд┐рдХреНрд╕реЗрд╕ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдмреИрдХрдПрдВрдб рдХреЗ рдЙрдкрдпреЛрдЧ рдпреЛрдЧреНрдп рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЕрдкрд╕реНрдЯреНрд░реАрдо рд░рд╕реНрдЯ рдореЗрдВ рдЦреАрдВрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЙрдиреНрд╣реЗрдВ рдЫрд╛рдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдФрд░ рдЪреЗрд░реА рдХреЛ рдЕрдкрд╕реНрдЯреНрд░реАрдо рд░рд╕реНрдЯ рдореЗрдВ рд▓реЗ рдЬрд╛рдирд╛ рд╣реЛрдЧрд╛ред

рдЕрдкрд╕реНрдЯреНрд░реАрдо рд░рд╕реНрдЯ рдорд╛рд╕реНрдЯрд░ рд╢рд╛рдЦрд╛ рд╕реЗ AVR рдПрд▓рдИрдбреА рдмреНрд▓рд┐рдВрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛ рд╕рдВрдХрд▓рди

рдЪреВрдВрдХрд┐ рдЕрдкрд╕реНрдЯреНрд░реАрдо рдкреНрд░рдпрд╛рд╕ рдЕрднреА рдХреБрдЫ рдорд╣реАрдиреЛрдВ рд╕реЗ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рдбрд╛рдЙрдирд╕реНрдЯреНрд░реАрдо рдПрд╡рд░-рд░рд╕реНрдЯ рдХрд╛рдВрдЯрд╛
рдЕрднреА рднреА рдЬрдВрдЧ рдХреЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рд╣реИред рддрдм рд╕реЗ рдЕрдкрд╕реНрдЯреНрд░реАрдо рд░рд╕реНрдЯ рдореЗрдВ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдмрджрд▓рд╛рд╡ рдЖрдпрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП LLVM рдЕрднрд┐рдХрдерди рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ AVR рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдпреАрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдореИрдВрдиреЗ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрд▓ рдЕрдиреБрд░реЛрдз #73270 рдЦреЛрд▓рд╛ рд╣реИред

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдЕрдкрд╕реНрдЯреНрд░реАрдо рд░рд╕реНрдЯ рдореЗрдВ рдЕрдиреНрдп рдмрджрд▓рд╛рд╡ рд╣реБрдП рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ AVR рдХреЗ рд▓рд┐рдП рдмрджрд▓рд╛рд╡ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рд╢рд╛рдпрдж рдирд╣реАрдВред

рдПрдХ рдмрд╛рд░ рдЬрдм рдореИрдВ рдмреНрд▓рд┐рдВрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдХрд╛рдо рдХрд░ рд▓реЗрддрд╛ рд╣реВрдВ, рддреЛ рдореИрдВ рдПрдХ рдФрд░ рдЕрдкрдбреЗрдЯ рдкреЛрд╕реНрдЯ рдХрд░реВрдВрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЙрд╕ рд╕рдордп, рдЕрдкрд╕реНрдЯреНрд░реАрдо рдПрд╡реАрдЖрд░ рд╕рдорд░реНрдерди рдЙрдкрдпреЛрдЧ/рдкреНрд░рдпреЛрдЧ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

AVR рд╕рдВрдЪрд╛рд░ рдХрд╣рд╛рдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП/рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП

@wezm рдЖрдк рдПрдХ рдЕрдЪреНрдЫрд╛ рдореБрджреНрджрд╛ рдЙрдард╛рддреЗ рд╣реИрдВ - рдЬрд░реВрд░реА рдирд╣реАрдВ рдХрд┐ рдЕрдкрдбреЗрдЯ рдХреЗ рд▓рд┐рдП "рдзрдиреНрдп" рд╕рдВрдЪрд╛рд░ рдЪреИрдирд▓ рд╣реЛред рдЗрд╕ рдЯрд┐рдХрдЯ рдиреЗ рдЕрдЪреНрдЫреА рд╕реЗрд╡рд╛ рджреА рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдЬрд▓реНрдж рд╣реА рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдПрд╡реАрдЖрд░-рд░рд╕реНрдЯ рдЧрд┐рдЯрд░ рдЪреИрдирд▓ рд╕рдмрд╕реЗ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рдореМрдЬреВрджрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИред рдореБрдЭреЗ рдореЗрд▓рд┐рдВрдЧ рд╕реВрдЪреА рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдкрд╕рдВрдж рд╣реИ (рд▓реЗрдХрд┐рди рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ рдореБрдЭреЗ рдореЗрд▓ рд╕рд░реНрд╡рд░ рдХреЛ рд╣реЛрд╕реНрдЯ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ)ред Gitter рдЪреИрдирд▓ рдореЗрдВ рдЗрд╕рдореЗрдВ рдЪрд░реНрдЪрд╛ рд╣реЛрддреА рд╣реИ рдЗрд╕рд▓рд┐рдП рд╢рд╛рдпрдж рдореЗрд▓рд┐рдВрдЧ рд╕реВрдЪреА рдЬреИрд╕реА рдХреЛрдИ рдЪреАрдЬрд╝ рдорджрджрдЧрд╛рд░ рд╣реЛрдЧреАред
рд╢рд╛рдпрдж рдШреЛрд╖рдгрд╛рдУрдВ/рдЕрджреНрдпрддрдиреЛрдВ рдХреЛ рдХреЗрдВрджреНрд░реАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмреНрд▓реЙрдЧ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред рдореИрдВ рдПрдХ "рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдорд╛рдзреНрдпрдо" рд░рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рддрд╛рдХрд┐ рдЖрдХрд╕реНрдорд┐рдХ рдЕрдкрдбреЗрдЯ рдЪрд╛рд╣рдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧ рдЪреВрдХ рди рдЬрд╛рдПрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдмреНрд▓реЙрдЧ рдХреЛ рдирдИ рдкреЛрд╕реНрдЯ рдХреЗ рд▓рд┐рдП рдирд┐рд░рдВрддрд░ рдЬрд╛рдБрдЪ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬрдмрдХрд┐ рдПрдХ рдореЗрд▓рд┐рдВрдЧ рд╕реВрдЪреА рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рд╕реВрдЪрд┐рдд рдХрд░рддреА рд╣реИ
рд╣рд░ рдХреЛрдИ рдЬреЛ рджрд┐рд▓рдЪрд╕реНрдкреА рд░рдЦрддрд╛ рд╣реИред рд╕реБрдЭрд╛рд╡реЛрдВ рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИред

рдкреНрд░рд╢реНрди рдЦреЛрд▓реЗрдВ

  • рдХреНрдпрд╛ рдПрд╡реАрдЖрд░-рд░рд╕реНрдЯ рдлреЛрд░реНрдХ рдкрд░ рдЧрд┐рдЯрд╣рдм рдореБрджреНрджреЛрдВ рдХреЛ рдЕрдкрд╕реНрдЯреНрд░реАрдо рдЬрдВрдЧ рднрдВрдбрд╛рд░ рдореЗрдВ рд▓реЗ рдЬрд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП?
    ** рднрд▓реЗ рд╣реА, рдЕрдкрд╕реНрдЯреНрд░реАрдо рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдкрд░ рдирдП рдореБрджреНрджреЗ рдЙрдард╛рдП рдЬрд╛рдиреЗ рдЪрд╛рд╣рд┐рдП - рдкреБрд░рд╛рдиреЗ рдЗрд╢реНрдпреВ рдЯреНрд░реИрдХрд░ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

    • рд░рд╕реНрдЯ рдХреЛ AVR рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рдирд┐рд░реНрджреЗрд╢ рдХрд╣рд╛рдБ рд░рд╣рдиреЗ рдЪрд╛рд╣рд┐рдП?

рднрд╡рд┐рд╖реНрдп рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЪреАрдЬреЗрдВ (рдкрдврд╝реЗрдВ: рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдПрдВ)

  • AVR рд░рд╕реНрдЯ рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХреА рдкреИрдХреЗрдЬрд┐рдВрдЧ рдФрд░ рд╡рд┐рддрд░рдгред рд░рд╕реНрдЯ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ рдЖрдХрд╕реНрдорд┐рдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдбрд╝рд╛ рд╕рд┐рд░рджрд░реНрдж рд╣реЛ рд╕рдХрддрд╛ рд╣реИ,
    рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрдИ рдбрд┐рд╕реНрдЯреНрд░реЛ рдХреЛ рдХреБрдЫ рдирд┐рд╢реНрдЪрд┐рдд рдХрд╛рд░реНрдпрдкреНрд░рд╡рд╛рд╣реЛрдВ рдореЗрдВ рд╕рдордп-рд╕рдордп рдкрд░ рд╕рдорд╕реНрдпрд╛рдПрдБ рдЖрддреА рд╣реИрдВред рдХрдИ OOM рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдЧрд▓рдд рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ
    рд╕рдВрдХрд▓рдХ рдмрдЧред рдкреНрд░рд╡реЗрд╢ рдХреА рдмрд╛рдзрд╛ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ рдФрд░ рдЗрд╕реЗ рдХрдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдмрд╕ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рдЬрд╛рдПрдВред
    https://github.com/avr-rust/rust/issues/162 . рджреНрд╡рд╛рд░рд╛ рдЯреНрд░реИрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛
  • "рд╕рдорд░реНрдерд┐рдд" рдпрд╛ рдХрдо рд╕реЗ рдХрдо рдкрд░реАрдХреНрд╖рдг рдХрд┐рдП рдЧрдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рд╕реВрдЪреА рдмрдирд╛рдирд╛ред рд╣рдореЗрдВ (rustc version, Xargo version) рдХреА рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕рд▓рд┐рдП
    рдЬреЛ рдирд┐рдЬреА рд░рд╕реНрдЯ рдПрдкреАрдЖрдИ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ Xargo рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдЕрдкрдЧреНрд░реЗрдб рдкрд░ AVR рд░рд╕реНрдЯ рдЯреВрд▓рдЪреЗрди рдХреЛ рдирд╣реАрдВ рддреЛрдбрд╝рддрд╛ рд╣реИред
    Xargo рд░рдЦрд░рдЦрд╛рд╡ рдореЛрдб рдореЗрдВ рд╣реИ - рдХрд╛рд░реНрдЧреЛ-рдПрдХреНрд╕рдмрд┐рд▓реНрдб рдХрд╛рдлреА рд╕реАрдорд┐рдд рд▓рдЧрддрд╛ рд╣реИ (рдореИрдВрдиреЗ рдЗрд╕реЗ рдХреБрдЫ рд╣рдлреНрддреЗ рдкрд╣рд▓реЗ рдХреЛрд╢рд┐рд╢ рдХреА рдереА, рдореБрдЭреЗ рдХрд╛рд░рдг рдпрд╛рдж рдирд╣реАрдВ рд╣реИ),
    рд╣рдореЗрдВ Xargo рдХреЛ рдлреЛрд░реНрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред рдЯреВрд▓рд┐рдВрдЧ рдХреЛ рд╕реАрдзреЗ рдХрд╛рд░реНрдЧреЛ рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ (рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреНрд░реИрдХрд┐рдВрдЧ рд╕рдорд╕реНрдпрд╛ рд╣реИ)ред
  • рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рд╕рд╣рд┐рдд рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╣реЛрдордкреЗрдЬ рд╕реЗрдЯ рдХрд░рдирд╛
  • рдПрдХреАрдХрд░рдг рдкрд░реАрдХреНрд╖рдг (рдПрдХ рдирдХрд▓реА/рдирдХрд▓реА AVR рдкрд░, рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рдкрд░)

рдлрд┐рд▓рд╣рд╛рд▓, рдореИрдВ рдЗрд╕ GitHub рдореБрджреНрджреЗ рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкреЛрд╕реНрдЯ рдХрд░рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реВрдВрдЧрд╛, рдЬрдм рддрдХ рдХрд┐ рдПрдХ рдмреЗрд╣рддрд░ рдорд╛рдзреНрдпрдо рдирд╣реАрдВ рдорд┐рд▓ рдЬрд╛рддрд╛ред рдореИрдВ рдЙрдиреНрд╣реЗрдВ Gitter рдореЗрдВ рднреА рдкреЛрд╕реНрдЯ рдХрд░реВрдВрдЧрд╛ред

рд╢рд╛рдпрдж рдШреЛрд╖рдгрд╛рдУрдВ/рдЕрджреНрдпрддрдиреЛрдВ рдХреЛ рдХреЗрдВрджреНрд░реАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмреНрд▓реЙрдЧ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред рдореИрдВ рдПрдХ "рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдорд╛рдзреНрдпрдо" рд░рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рддрд╛рдХрд┐ рдЖрдХрд╕реНрдорд┐рдХ рдЕрдкрдбреЗрдЯ рдЪрд╛рд╣рдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧ рдЪреВрдХ рди рдЬрд╛рдПрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдмреНрд▓реЙрдЧ рдХреЛ рдирдИ рдкреЛрд╕реНрдЯ рдХреЗ рд▓рд┐рдП рдирд┐рд░рдВрддрд░ рдЬрд╛рдБрдЪ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬрдмрдХрд┐ рдПрдХ рдореЗрд▓рд┐рдВрдЧ рд╕реВрдЪреА рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рд╕реВрдЪрд┐рдд рдХрд░рддреА рд╣реИ
рд╣рд░ рдХреЛрдИ рдЬреЛ рджрд┐рд▓рдЪрд╕реНрдкреА рд░рдЦрддрд╛ рд╣реИред рд╕реБрдЭрд╛рд╡реЛрдВ рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИред

рдореЗрд░реА рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдПрдХ рдмреНрд▓реЙрдЧ (RSS рдлрд╝реАрдб рдХреЗ рд╕рд╛рде) рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдмреНрд▓реЙрдЧ рдЖрдорддреМрд░ рдкрд░ рдЦреЛрдЬ рдЗрдВрдЬрди рдкрд░рд┐рдгрд╛рдореЛрдВ рдореЗрдВ рдмреЗрд╣рддрд░ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ рдФрд░ рдореЗрд▓рд┐рдВрдЧ рд╕реВрдЪреА рдереНрд░реЗрдбреНрд╕ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд▓рд┐рдВрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреЗ рд╣реЛрддреЗ рд╣реИрдВред RSS рдлрд╝реАрдб рдЬрд╛рдБрдЪ/рд╕реВрдЪрдирд╛ рдкрд╣рд▓реВ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред

рдореБрдЭреЗ 100% рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рдЬрдЧрд╣ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдВрдмреЗрдбреЗрдб рдбрдмреНрд▓реНрдпреВрдЬреА рдмреНрд▓реЙрдЧ рд╣реИред рд╕рдВрдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рдХрдо рдкреНрд░рдпрд╛рд╕ рд╡рд╛рд▓рд╛ рдЪреИрдирд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

https://rust-embedded.github.io/blog/

рд╢рд╛рдпрдж рдПрдХ рдЯреНрд╡рд┐рдЯрд░ рдЕрдХрд╛рдЙрдВрдЯ рднреА? рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирдП рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЕрдк рдЯреВ рдбреЗрдЯ рд░рд╣рдиреЗ рдХреЗ рд▓рд┐рдП)ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдореНрдмреЗрдбреЗрдб рд╡рд░реНрдХрд┐рдВрдЧ рдЧреНрд░реБрдк рдХреЛ рдпрд╣рд╛рдВ рдорджрдж рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреАред рд╣рдорд╛рд░рд╛ рдПрдХ рдЯреНрд╡рд┐рдЯрд░ рдЕрдХрд╛рдЙрдВрдЯ @rustembedded рд╣реИ рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдиреНрдпреВрдЬрд╝рд▓реЗрдЯрд░ рдореЗрдВ AVR рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕рдорд╛рдЪрд╛рд░ рднреА рд╢рд╛рдорд┐рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдореИрдВрдиреЗ рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ O-AVR рд▓реЗрдмрд▓ рднреА рдмрдирд╛рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП AVR-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдореБрджреНрджреЛрдВ рдХреЗ рд▓рд┐рдП рднреА рд░рд╕реНрдЯ рдЗрд╢реНрдпреВ рдЯреНрд░реИрдХрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВ (рд▓реЗрдХрд┐рди рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рд░реЗрдкреЛ рджреЗрдЦрдиреЗ рд╡рд╛рд▓реЗ 1.5k рд▓реЛрдЧ рд╣реИрдВ)ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдк рд░рд╕реНрдЯ-рд▓реИрдВрдЧ рдЬрд╝реВрд▓рд┐рдк рдкрд░ рд╕рдордиреНрд╡рдп рдХрд░рдирд╛ рдЪрд╛рд╣ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣реАрдВ рдкрд░ рд░рд╕реНрдЯ рдХреА рдЕрдзрд┐рдХрд╛рдВрд╢ рдЯреАрдореЗрдВ рд░рд╣рддреА рд╣реИрдВред рд╣рдо "рд▓рдХреНрд╖рд┐рдд рд╕рдореВрд╣реЛрдВ" рдХреЛ рднреА рдмрдврд╝рд╛рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╣реИрдВ рдЬреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЬрдВрдЧ рд▓рдХреНрд╖реНрдпреЛрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╡рд┐рдВрдбреЛрдЬрд╝ рдпрд╛ рдЖрд░реНрдо) рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдПрд╡реАрдЖрд░ рдЙрд╕рдХреЗ рд▓рд┐рдП рднреА рдЙрдкрдпреБрдХреНрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП рдЬрд╝реВрд▓рд┐рдк рдкрд░ рдмреЗрдЭрд┐рдЭрдХ рд╕рдВрдкрд░реНрдХ рдХрд░реЗрдВред

рдЕрджреНрдпрддрдиред

рд╕реНрдЯреЙрдХ рд░рд╕реНрдЯ-рд▓реИрдВрдЧ/рдорд╛рд╕реНрдЯрд░ рд╢рд╛рдЦрд╛ рдкрд░ AVR рдХреЗ рд▓рд┐рдП libcore рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рджреЛ рдЪреАрдЬреЗрдВ рд╢реЗрд╖ рд╣реИрдВ:

  1. рдПрдХ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рд╣реИ рдЬреЛ рдПрд╡реАрдЖрд░ рдкрд░ "рдПрдбреНрд░реЗрд╕ рд╕реНрдкреЗрд╕ рдХрд╛рд╕реНрдЯ рдЕрдорд╛рдиреНрдп" рдмрдЧреНрд╕ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЛ рдареАрдХ рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ рдХрд┐ рдХреИрд╕реЗ рд╣рд╛рд░реНрд╡рд░реНрдб рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рди рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреЛ рд╡реЙрди-рдиреНрдпреВрдореИрди рд▓рдХреНрд╖реНрдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ addrspace(1) рд░реВрдк рдореЗрдВ рдЯреИрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдЬрдВрдЧ рдХреЗ рд╡рд░реНрддрдорд╛рди рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЗ рд╕рд╛рде рдареАрдХ рд╣реИрдВ addrspace(0) ред рд░рд╕реНрдЯ-рд▓реИрдВрдЧ/рд░рд╕реНрдЯ#73270 - рдпрд╣ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХреЛрдб рд╕рдореАрдХреНрд╖рд╛ рдореЗрдВ рд╣реИред

~ 2. рдПрдХ рдФрд░ рдмрдЧ рд╣реИ рдЬреЛ blink рдЙрджрд╛рд╣рд░рдг рдХреЛ рдХрд╛рдо рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХ рд░рд╣рд╛ рд╣реИ - avr-rust/rust#92ред рдПрдХ рдЕрднреА рддрдХ рдЕрдкрд╕реНрдЯреНрд░реАрдо рдкреИрдЪ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдЗрд╕реЗ рдареАрдХ рдХрд░реЗрдЧрд╛ - https://reviews.llvm.org/D68524ред рдПрдХ рдмрд╛рд░ рдпреВрдирд┐рдЯ рдФрд░ рдЗрдВрдЯреАрдЧреНрд░реЗрд╢рди рдЯреЗрд╕реНрдЯ рд╕реЗ рдЧреБрдЬрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЗрд╕реЗ рдЕрдкрд╕реНрдЯреНрд░реАрдо рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдлрд┐рд░ рд░рд╕реНрдЯ рдХреЗ рдПрд▓рдПрд▓рд╡реАрдПрдо рдлреЛрд░реНрдХ рдореЗрдВ рдЪреЗрд░реА-рдкрд┐рдХ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ ред ~ рдЗрд╕реЗ рдЕрдкрд╕реНрдЯреНрд░реАрдо рдПрд▓рдПрд▓рд╡реАрдПрдо рдореЗрдВ рдорд┐рд▓рд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдПрдХ рдмрд╛рд░ рдпреЗ рджреЛ рдЪреАрдЬреЗрдВ рд╣реЛ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдЕрдкрд╕реНрдЯреНрд░реАрдо рд░рд╕реНрдЯ AVR рд▓рдХреНрд╖реНрдп AVR рдХреЛрдб рдХреЛ рд╡рд░реНрддрдорд╛рди avr-rust/rust fork рдХреЗ рд╕рдорд╛рди рд╕реНрддрд░ рдкрд░ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛, рдФрд░ рдлрд┐рд░ рд╣рдо blink рдЙрджрд╛рд╣рд░рдг рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред , arduino рдЕрдкрд╕реНрдЯреНрд░реАрдо рд╢рд╛рдЦрд╛ рдХреЗ рд▓рд┐рдП рдЯреЛрдХрд░рд╛, рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг, рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛рдПрдБред рддрдм рдЕрдкрд╕реНрдЯреНрд░реАрдо рд╢рд╛рдЦрд╛ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред

рдПрдХ рдФрд░ TODO:

  1. ~рдЕрдкрд╕реНрдЯреНрд░реАрдо рд░рд╕реНрдЯ рдореЗрдВ рдирдП рдЗрдирд▓рд╛рдЗрди рдЕрд╕реЗрдВрдмрд▓реА рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд▓рд┐рдП AVR рдкреНрд▓рдВрдмрд┐рдВрдЧ рдЬреЛрдбрд╝реЗрдВ~

    • ~рдирдИ рдЗрдирд▓рд╛рдЗрди рдЕрд╕реЗрдВрдмрд▓реА рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, Arduino рдХреНрд░реЗрдЯ рдХреЛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП

      рдПрдХ рдмрд╛рд░ Arduino рдХреНрд░реЗрдЯ рдЕрдкрдбреЗрдЯ рд╣реЛ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдмреНрд▓рд┐рдВрдХ рдХреНрд░реЗрдЯ рдХреЛ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВред ~ рд╣рдо рдкреБрд░рд╛рдиреЗ рдореИрдХреНрд░реЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрднреА рдХреЗ рд▓рд┐рдП llvm_asm! рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрднреА рднреА рд░рд╛рдд рдореЗрдВ рдореМрдЬреВрдж рд╣реИред

  2. рдПрд▓рдПрд▓рд╡реАрдПрдо рдорд╛рд╕реНрдЯрд░ рд╕реЗ рдЕрдкрд╕реНрдЯреНрд░реАрдо рд░рд╕реНрдЯ рдПрд▓рдПрд▓рд╡реАрдПрдо рдлреЛрд░реНрдХ (рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдкреАрдЖрд░: https://github.com/rust-lang/llvm-project/pull/66) рддрдХ рдЪреЗрд░реА-рдПрд╡реАрдЖрд░ рд╢реБрджреНрдзрддрд╛ рдкреИрдЪ (рдЬреНрдпрд╛рджрд╛рддрд░ рдЖрдпрдХреЗ) рдЪреБрдиреЗрдВ

рдпрд╣рд╛рдБ рд╕рдм рдХреБрдЫ рдХреЗ рд╕рд╛рде рд╢рд╛рдЦрд╛ рд╣реИ: https://github.com/dylanmckay/rust/commits/dylan/avr-workable-upstream-candidateред рдпрд╣ рд╢рд╛рдЦрд╛ libcore рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред

рдЗрд╕реЗ рдЕрдкрд╕реНрдЯреНрд░реАрдо rust-lang/master рд╕реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдЕрднреА рддрдХ рдЕрдкрд╕реНрдЯреНрд░реАрдо рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ LLVM рдкреИрдЪ D68524 , рдЕрднреА рддрдХ рдорд░реНрдЬ рдирд╣реАрдВ рд╣реБрдЖ Rust PR рд░рд╕реНрдЯ-рд▓реИрдВрдЧ/рд░рд╕реНрдЯ#73270, рдФрд░ 46 AVR рд╕рдВрдмрдВрдзрд┐рдд рдХрдорд┐рдЯ рдЕрдкрд╕реНрдЯреНрд░реАрдо LLVM рд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЪреЗрд░реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдард╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╕реНрдХреНрд░рд┐рдкреНрдЯ (рдПрд▓рдПрд▓рд╡реАрдПрдо рд╢рд╛рдЦрд╛: https://github.com/dylanmckay/llvm-project/commits/dylan/avr-workable-upstream-candidate)ред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╕рднреА 46 рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЕрдВрддрд┐рдо рд╕реВрдЪреА рдЫреЛрдЯреА рд╣реЛрдЧреАред

рдЕрджреНрдпрддрди : рдПрдХ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдЦреЛрд▓рд╛ рдЬрд┐рд╕рдореЗрдВ рд╕рднреА рдЕрдкрд╕реНрдЯреНрд░реАрдо LLVM рд╕реБрдзрд╛рд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

рдПрд▓рдИрдбреА рдмреНрд▓рд┐рдВрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдФрд░ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЪрд▓рд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╢реЗрд╖ рдХрд╛рд░реНрдпреЛрдВ рдХреА рдПрдХ рд╡рд┐рд╕реНрддреГрдд рд╕реВрдЪреА рдпрд╣рд╛рдВ рджреА рдЧрдИ рд╣реИред

рдмрдЪрд╛ рд╣реБрдЖ рдХрд╛рд░реНрдп

  • [x] рд▓реИрдВрдб рд░рд╕реНрдЯ рдкреАрдЖрд░ рд░рд╕реНрдЯ-рд▓реИрдВрдЧ/рд░рд╕реНрдЯ#73270 ред рдпрд╣ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдПрд╡реАрдЖрд░ рдкрд░ "рдПрдбреНрд░реЗрд╕ рд╕реНрдкреЗрд╕ рдХрд╛рд╕реНрдЯ рдЕрдорд╛рдиреНрдп" рдмрдЧреНрд╕ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЛ рдареАрдХ рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ рдХрд┐ рд╣рд╛рд░реНрд╡рд░реНрдб рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рди рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреЛ рд╡реЙрди-рдиреНрдпреВрдореИрди рд▓рдХреНрд╖реНрдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдПрдбрд░реНрд╕рд╕реНрдкреЗрд╕ (1) рдХреЗ рд░реВрдк рдореЗрдВ рдХреИрд╕реЗ рдЯреИрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреЛ рд░рд╕реНрдЯ рдХреЗ рдПрдбрд░реНрд╕рд╕реНрдкреЗрд╕ (0) рдХреЗ рд╡рд░реНрддрдорд╛рди рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЗ рд╕рд╛рде рдареАрдХ рд╣реИрдВред . рдпрд╣ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХреЛрдб рд╕рдореАрдХреНрд╖рд╛ рдореЗрдВ рд╣реИред
  • [x] рд▓реИрдВрдб рд░рд╕реНрдЯ рдПрд▓рдПрд▓рд╡реАрдПрдо рдкреАрдЖрд░ https://github.com/rust-lang/llvm-project/pull/66 ред рдпрд╣ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ AVR рдлрд┐рдХреНрд╕ рдХреЛ рдЕрдкрд╕реНрдЯреНрд░реАрдо LLVM рд╕реЗ рд░рд╕реНрдЯ рдХреЗ LLVM рдлреЛрд░реНрдХ рдореЗрдВ рдЦреАрдВрдЪ рд▓реЗрддрд╛ рд╣реИред рдЕрдВрдд рдореЗрдВ, ~17~16 LLVM рдлрд╝рд┐рдХреНрд╕реЗрд╕ рдереЗ рдЬрд┐рдиреНрд╣реЗрдВ рдЪреЗрд░реА-рдкрд┐рдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред
  • [x] рд▓реИрдВрдб рд░рд╕реНрдЯ рдкреАрдЖрд░ рд░рд╕реНрдЯ-рд▓реИрдВрдЧ/рд░рд╕реНрдЯ#73658 рдЬреЛ рдПрд▓рдПрд▓рд╡реАрдПрдо рд╕рдмрдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИ ред рд░рд╕реНрдЯ рдХрдВрдкрд╛рдЗрд▓рд░ рдбреЙрдХреНрд╕ рдХреЗ рдкрд╛рд╕ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рдирд┐рд░реНрджреЗрд╢ рд╣реИрдВред рдпрд╣ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХреЛрдб рд╕рдореАрдХреНрд╖рд╛ рдореЗрдВ рд╣реИ ред
  • [x] рднреВрдорд┐ рдЬрдВрдЧ рдкреАрдЖрд░ ~ рдЬрдВрдЧ-рд▓рдВрдЧ/рдЬрдВрдЧ#74625~ рдЬрдВрдЧ-рд▓рдВрдЧ/рдЬрдВрдЧ#74631 ред 79a42e37084d0 рдореЗрдВ рд░рд╕реНрдЯ рдиреЗ рдмрд┐рдирд╛ рд╢рд░реНрдд рд▓рд┐рдВрдХрд░ рдХреЛ --eh-frame-hdr рддрд░реНрдХ рджреЗрдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред AVR-GCC рд▓рд┐рдВрдХрд░ рдЗрд╕ рдлрд╝реНрд▓реИрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдкрд╛рд╕ рдХрд░рдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП Windows рдХреЗ рдореМрдЬреВрджрд╛ рдмрд╣рд┐рд╖реНрдХрд░рдг рдХреЗ рд╕рдорд╛рди AVR рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓рд╛ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕реЛрд▓рд╛рд░рд┐рд╕, рдФрд░ рдпреВрдИрдПрдлрдЖрдИред

рдЯреВрд▓рд┐рдВрдЧ рдХреЛ рд╕реАрдзреЗ рдХрд╛рд░реНрдЧреЛ рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ (рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреНрд░реИрдХрд┐рдВрдЧ рд╕рдорд╕реНрдпрд╛ рд╣реИ)ред

рдореИрдВ рдорд╛рди рд░рд╣рд╛ рд╣реВрдБ рдХрд┐ рдпрд╣ рд╕рд╣реА рдореБрджреНрджрд╛ рд╣реИ: рд░рд╕реНрдЯ-рд▓реИрдВрдЧ/рдХрд╛рд░реНрдЧреЛ#4959.

cargo build -Z build-std=core рдиреЗ рдореЗрд░реЗ рдПрд╡реАрдЖрд░ рдЙрджрд╛рд╣рд░рдг рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИред

@shepmaster рдЬреЛ рдореБрдЭреЗ рд╡реИрд╕реЗ рднреА рдХрд░реАрдм рд▓реЗ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдзрдиреНрдпрд╡рд╛рдж! рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЕрднреА рдмрд┐рдЯрдХрд╛рд╕реНрдЯ рд╕рд╛рдордЧреНрд░реА рдкрд░ рдЕрдЯрдХрд╛ рд╣реБрдЖ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕рдХреЗ рд╡рд┐рд▓рдп рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдХрд░реВрдВрдЧрд╛ (рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдкреАрдЖрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдПрдХ рдлрд╛рдЗрд▓ рдпрд╛рдж рдЖ рд░рд╣реА рд╣реИ, рдФрд░ рдЖрдИрдбреАрдХреЗ рдЬреЛ рдореИрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ)ред

-Z build-std=core рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдореБрдЭреЗ рд▓рдХреНрд╖реНрдп рдЯреНрд░рд┐рдкрд▓ рдХреА рдЖрдкреВрд░реНрддрд┐ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ rustc +master --print target-list | grep avr рдЪрд▓рд╛рдпрд╛, рдФрд░ avr-unknown-unknown ред рд▓реЗрдХрд┐рди рд╕рдВрдЧреНрд░рд╣реАрдд рдореБрджреНрджрд╛ avr-llvm/llvm#35 рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдЬреИрд╕реЗ рдЯреНрд░рд┐рдкрд▓ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ avr-atmel-none рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рдЬреЛ рд╡реИрд╕реЗ рднреА рдореЗрд░реЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ)ред рдХреНрдпрд╛ рдпрд╣рд╛рдВ рдХреБрдЫ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдпрд╛ рдХреНрдпрд╛ рдореБрдЭреЗ рдХреБрдЫ рдпрд╛рдж рдЖ рд░рд╣рд╛ рд╣реИ?

avr-unknown-unknown рд╕рд╣реА рд╣реИред

рдкреНрд░рд╢реНрди рдЦреЛрд▓реЗрдВ

* Should GitHub issues on the avr-rust fork be moved to the upstream Rust repository?
  ** Regardless, new issues should be raised on the upstream repository - the old issue tracker will need to be wound down.

* Where should the instructions for compiling Rust with AVR live?

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрдХреНрд╖ рдкрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИред рдпрд╣ рдбреАрдбреАрдЬреА рдФрд░/рдпрд╛ рдЗрд╕-рд╕рдкреНрддрд╛рд╣-рдореЗрдВ-рдЬрдВрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЦреЛрдЬрдирд╛ рдХрд╛рдлреА рдЖрд╕рд╛рди рдерд╛ред
рдЬреЛ рдХреБрдЫ рднреА рджреЗрд╡реЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИред

рдкреНрд░рд╢реНрди рдЦреЛрд▓реЗрдВ

* Should GitHub issues on the avr-rust fork be moved to the upstream Rust repository?
  ** Regardless, new issues should be raised on the upstream repository - the old issue tracker will need to be wound down.

* Where should the instructions for compiling Rust with AVR live?

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрдХреНрд╖ рдкрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИред рдпрд╣ рдбреАрдбреАрдЬреА рдФрд░/рдпрд╛ рдЗрд╕-рд╕рдкреНрддрд╛рд╣-рдореЗрдВ-рдЬрдВрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЦреЛрдЬрдирд╛ рдХрд╛рдлреА рдЖрд╕рд╛рди рдерд╛ред
рдЬреЛ рдХреБрдЫ рднреА рджреЗрд╡реЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд░рд╕реНрдЯ рдХреЛ AVR рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рдирд┐рд░реНрджреЗрд╢ рдХрд┐рд╕реА рддрд░рд╣ https://docs.rust-embedded.org/ рдореЗрдВ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред

рдареАрдХ рд╣реИ, рд╕рдордп рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВред

AVR рдХреЗ рд▓рд┐рдП рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдкреИрдЪ рдЖрдЬ рдХреЗ rustc 1.47.0-nightly (0820e54a8 2020-07-23) рд░реВрдк рдореЗрдВ рд╡рд░реНрддрдорд╛рди рд░рд╕реНрдЯ рдирд╛рдЗрдЯрд▓реА рдХрдВрдкрд╛рдЗрд▓рд░ рдореЗрдВ рдореМрдЬреВрдж рд╣реИрдВ ред рд░рд╕реНрдЯ рдирд╛рдЗрдЯрд▓реА рдХрдВрдкрд╛рдЗрд▓рд░, рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рдВрд╢реЛрдзрди рдХреЗ, рдЕрдм рдПрд▓рдИрдбреА рдмреНрд▓рд┐рдВрдХ рдЙрджрд╛рд╣рд░рдг рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╕рдВрдХрд▓рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдПрдХ AVR ELF рдлрд╝рд╛рдЗрд▓ рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддрд╛ рд╣реИред

  • https://avr-rust.com/ рдкрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдирдпрд╛, рдХреЗрдВрджреНрд░реАрдХреГрдд рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд▓реИрдВрдбрд┐рдВрдЧ рдкреЗрдЬ
  • рдПрдХ рдирдИ рдХрд┐рддрд╛рдм - рдж рдПрд╡реАрдЖрд░-рд░рд╕реНрдЯ рдЧрд╛рдЗрдбрдмреБрдХ рдмрдирд╛рдИ рдЧрдИ рд╣реИ, рдЬрд┐рд╕реЗ Book.avr-rust.com рдкрд░ GitHub рдкреЗрдЬ рдкрд░ рд╣реЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
  • рдПрд╡реАрдЖрд░-рдЬрдВрдЧ/рдЬрдВрдЧ рдХрд╛рдВрдЯрд╛ рднрдВрдбрд╛рд░ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдЕрднреА рддрдХ рд╕рдВрдЧреНрд░рд╣реАрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдРрд╕реЗ рдореМрдЬреВрджрд╛ рдореБрджреНрджреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рд▓реЙрдХ рдФрд░ рдмрдВрдж рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
  • Xargo рдХреА рдЕрдм рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ - рдЕрдкрд╕реНрдЯреНрд░реАрдо рд░рд╕реНрдЯ рдореЗрдВ -Z build-std рдзреНрд╡рдЬ AVR рдкрд░ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИред рдХрд╛рд░реНрдЧреЛ рдлреЛрд░реНрдХ рдХреА рдЕрдм рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ - рдЕрдкрд╕реНрдЯреНрд░реАрдо рдХрд╛рд░реНрдЧреЛ рдХрд░реЗрдВрдЧреЗред

рд░рд╕реНрдЯ рдирд╛рдЗрдЯрд▓реА рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдЕрдм AVR рд╕рдкреЛрд░реНрдЯ рдХреЗ рд╕рд╛рде рд░рд╕реНрдЯ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд╢рдВрд╕рд┐рдд рдЪреИрдирд▓ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдореИрдВ рдЕрдм рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░ рд░рд╣рд╛ рд╣реВрдВ - рд╣рдордиреЗ рдХрд░ рджрд┐рдпрд╛!

рдмрдЧ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рдЪрд░рдг AVR рдЧрд╛рдЗрдбрдмреБрдХ рдореЗрдВ рдкрд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рд▓рдХреНрд╖реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП https://github.com/avr-rust/blink рдкрд░ AVR рдЧрд╛рдЗрдбрдмреБрдХ рдФрд░ рдмреНрд▓рд┐рдВрдХ рдЙрджрд╛рд╣рд░рдг рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреЗ рд╕рдВрд╕рд╛рдзрди рд╣реИрдВред

рдЗрд╕ рдЕрдкрд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдкреНрд░рдпрд╛рд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдФрд░ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЧрд╣рд░рд╛, рдЧрд╣рд░рд╛ рдзрдиреНрдпрд╡рд╛рдж - рдЗрд╕рдХреА рдмрд╣реБрдд рд╕рд░рд╛рд╣рдирд╛ рдХреА рдЬрд╛рддреА рд╣реИред

рдкрдВрдЦ

рд╡рд╛рд╣ рд╡рд╛рд╣ рд╡рд╛рд╣ред

рдЗрд╕рдореЗрдВ рдпреЛрдЧрджрд╛рди рджреЗрдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж - рдореИрдВ рд╣рдореЗрд╢рд╛ рд╕реЗ рдЗрд╕ рджрд┐рди рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ!

рдПрд╡реНрд░реА рдореЗрдВ рд░рд╕реНрдЯ рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдбрд╛рдпрд▓рди рдореИрдХреЗ

image
рдФрд░ рдмрд╛рдж рдореЗрдВ
image

рд╕рднреА рдХрдбрд╝реА рдореЗрд╣рдирдд рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рдпрд╛рд░! :-) рдЕрдЪреНрдЫреЗ рд╕реЗ рдЖрд░рд╛рдо рдХрд░реЛ!

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

SharplEr picture SharplEr  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

overvenus picture overvenus  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Robbepop picture Robbepop  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

lambda-fairy picture lambda-fairy  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

eddyb picture eddyb  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ