Redd рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд FPGAs рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд╕рд░рд▓ "рдлрд░реНрдорд╡реЗрдпрд░" рдХрд╛ рд╡рд┐рдХрд╛рд╕ред рднрд╛рдЧ 2. рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛрдб

рдЗрд╕рд▓рд┐рдП, рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рд╣рдордиреЗ рд╕рд░рд▓рддрдо рдкреНрд░реЛрд╕реЗрд╕рд░ рдкреНрд░рдгрд╛рд▓реА рд╡рд┐рдХрд╕рд┐рдд рдХреА, рдЬрд┐рд╕рдХреА рдорджрдж рд╕реЗ рд╣рдо рд░реЗрдб рдХреЙрдореНрдкреНрд▓реЗрдХреНрд╕ рдХреЗ FPGA рд╕реЗ рдЬреБрдбрд╝реЗ RAM рдЪрд┐рдк рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рддреЗ рд╣реИрдВред рдЖрдЬ, рд╣рдо рдЗрд╕ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ C ++ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдмрдирд╛рдПрдВрдЧреЗ, рдФрд░ рд╣рдо рдпрд╣ рднреА рдкрддрд╛ рд▓рдЧрд╛рдПрдВрдЧреЗ рдХрд┐ рдЗрд╕ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдХреИрд╕реЗ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдП, рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд, рдЗрд╕реЗ рдбреАрдмрдЧ рдХрд░реЗрдВред



рдХрд╛рд░реНрдпрдХреНрд░рдо рдЧреНрд░рд╣рдг рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореЗрдиреВ рдЖрдЗрдЯрдо рдЯреВрд▓реНрд╕ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ-> Nios II рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдмрд┐рд▓реНрдб рдЯреВрд▓реНрд╕ рдлреЙрд░ рдПрдХреНрд▓рд┐рдкреНрд╕ ред



рд╣рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдФрд░ рдмреАрдПрд╕рдкреА рдмрдирд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд░рд╛рдЗрдЯ рдорд╛рдЙрд╕ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рдореЗрдиреВ рдЖрдЗрдЯрдо рдирдИ-> рдПрдирдЖрдИрдУрдПрд╕ II рдПрдкреНрд▓реАрдХреЗрд╢рди рдФрд░ рдмреАрдПрд╕рдкреА рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕реЗ рдЪреБрдиреЗрдВ ред



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



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



рд╣рдордиреЗ рджреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдП рд╣реИрдВред рдкрд╣рд▓рд╛ рд╣рдорд╛рд░рд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реИ, рджреВрд╕рд░рд╛ рд╣реИ рдмреАрдПрд╕рдкреА (рдмреЛрд░реНрдб рд╕рдкреЛрд░реНрдЯ рдкреИрдХреЗрдЬ, рдореЛрдЯреЗ рддреМрд░ рдкрд░ рдмреЛрд▓рдирд╛, рдЙрдкрдХрд░рдг рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрдмреНрд░реЗрд░реА)ред



рдкрд╣рд▓реА рдЪреАрдЬ рдЬреЛ рдореИрдВ рдЖрдорддреМрд░ рдкрд░ рдХрд░рддрд╛ рд╣реВрдВ рд╡рд╣ рд╣реИ рдмреАрдПрд╕рдкреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдирд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдмрдирд╛рдИ рдЧрдИ рджреВрд╕рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реВрдВ, рджрд╛рдпрд╛рдВ рдорд╛рдЙрд╕ рдмрдЯрди рджрдмрд╛рддрд╛ рд╣реВрдВ рдФрд░ рдореЗрдиреВ рдЖрдЗрдЯрдо Nios II -> рдмреАрдПрд╕рдкреА рд╕рдВрдкрд╛рджрдХ рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реВрдВред



рд╕рдВрдкрд╛рджрдХ рдореЗрдВ, рд╕рдм рдХреБрдЫ рд╕рдореВрд╣реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реИ:



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



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

рдЕрдм рдордЬрд╝рд╛ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдХреИрд╕реЗ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рд╕рд╛рдорд╛рдиреНрдп Ctrl + B рджрдмрд╛рдПрдВ - рд╣рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИред рдбрд┐рдХреЛрдбрд┐рдВрдЧ рддреНрд░реБрдЯрд┐ рд╕рдВрдЦреНрдпрд╛:



рдХрдВрд╕реЛрд▓ рдореЗрдВ рдХреБрдЫ рднреА рдЙрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ:



SDRAMtest рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдб рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ, рд╣рдореЗрдВ рдПрдХ рдЙрдЪрд┐рдд рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдорд┐рд▓рддрд╛ рд╣реИ:



рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЧреИрд░-рдХрд╛рд░реНрдпрд╢реАрд▓ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреНрд╡рд╛рд░реНрдЯрд╕ рдХреА рдХреЙрд░реНрдкреЛрд░реЗрдЯ рдкрд╣рдЪрд╛рди рд╣реИрдВред рдпрд╣ рдПрдХ рдФрд░ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдореЗрдореЛрд░реА рдЯреЗрд╕реНрдЯ рдХреЛ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдЪреБрдирд╛ред рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдЪрд▓ рд░рд╣рд╛ рд╣реИред рдпрд╣рд╛рдБ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдорд╛рдорд▓рд╛ рд╣реИ

Alt_putstr.c рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдпрд╣ рдХрд╛рд░реНрдп рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ :

/* * Uses the ALT_DRIVER_WRITE() macro to call directly to driver if available. * Otherwise, uses newlib provided fputs() routine. */ int alt_putstr(const char* str) { #ifdef ALT_SEMIHOSTING return write(STDOUT_FILENO,str,strlen(str)); #else #ifdef ALT_USE_DIRECT_DRIVERS ALT_DRIVER_WRITE_EXTERNS(ALT_STDOUT_DEV); return ALT_DRIVER_WRITE(ALT_STDOUT_DEV, str, strlen(str), 0); #else return fputs(str, stdout); #endif #endif } 

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

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



рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓реА рд╡рд┐рдВрдбреЛ рдореЗрдВ, рдкрд╣рд▓реЗ рд╡рд┐рдХрд▓реНрдк рдХреЛ рдЪреБрдирдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ ( mem_init_install ):



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

 ../SDRAMtest_bsp//mem_init.mk:230: *** Deprecated Makefile Target: 'mem_init_install'. Use target 'mem_init_generate' and then add mem_init/meminit.qip to your Quartus II Project. Stop. 

рд╣рдо mem_init_generate рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдб рдХрд╛ рдЪрдпрди рдХрд░реЗрдВрдЧреЗ , рдЬрд┐рд╕рдХреЗ рдмрд╛рдж (рдмрд╕ !!! рдХреЗ рдмрд╛рдж) рд╣рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ qip рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЬреЛрдбрд╝ рджреЗрдВрдЧреЗ (рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╣реА рд╕реАрдЦрд╛ рдХрд┐ рдЬрдм рд╣рдордиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдПрдХ рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕рд┐рд╕реНрдЯрдо рдЬреЛрдбрд╝рд╛ рддреЛ рдлрд╛рдЗрд▓реЗрдВ рдХреИрд╕реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ)ред



рдЦреИрд░, рд╣реЗрдХреНрд╕ рдлрд╛рдЗрд▓ рдХреЛ рднреА рдЕрдкрдиреЗ рд╣рд╛рдереЛрдВ рд╕реЗ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣рд╛рдБ рдпрд╣ рд╣реИ:



рдареАрдХред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рднрд░рдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рд╣реИред рд╣рдо рдлрд╝рд╛рдЗрд▓ hello_world_small.c рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ ред рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ, рдореИрдВ рд╢реБрджреНрдз рд╕реА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдХреЗ рдереЛрдбрд╝рд╛ рдЖрд╣рдд рд╣реВрдВред рдЗрд╕рд▓рд┐рдП, рдореИрдВ рдЗрд╕реЗ cpp рдХрд╛ рдирд╛рдо рджреВрдВрдЧрд╛ред рдФрд░ рддрд╛рдХрд┐ рдХреБрдЫ рднреА рдЧрд▓рдд рди рд╣реЛ, рдореИрдВ рдореМрдЬреВрджрд╛ рдкрд╛рда рдореЗрдВ рдПрдХ рдЬрд╛рджреВ рдЬреЛрдбрд╝ рджреВрдВрдЧрд╛:



рдПрдХ рд╣реА рдкрд╛рда:
 extern "C" { #include "sys/alt_stdio.h" } int main() { alt_putstr("Hello from Nios II!\n"); /* Event loop never exits. */ while (1); return 0; } 


рдлрд╝рд╛рдЗрд▓ рдкреНрд░рдХрд╛рд░ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рдмрд╛рдж рдХреНрд▓реАрди рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдСрдкрд░реЗрд╢рди рдХрд░рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдЕрдиреНрдпрдерд╛ рдХрдВрдкрд╛рдЗрд▓рд░ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧрд╛ рдХрд┐ рдХреБрдЫ рдХреИрд╢ рдХреА рдЧрдИ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдЖрдзрд╛рд░ рдкрд░ * .c рдлрд╝рд╛рдЗрд▓ рдирд╣реАрдВ рдорд┐рд▓реАред

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

рдЖрдЗрдП рдПрдХ рд╕рд░рд▓ рдФрд░ рдкреНрд░рд╛рдХреГрддрд┐рдХ рдкреНрд░рд╢реНрди рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ: "рдкрддрд╛ рд╕реНрдерд╛рди рдореЗрдВ рдПрд╕рдбреАрдЖрд░рдПрдПрдо рдХрд╣рд╛рдБ рд╕реНрдерд┐рдд рд╣реИ?" рдореБрдЭреЗ рдпрд╛рдж рд╣реИ рдХрд┐ рд╣рдордиреЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрддрд╛ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдлрд╝рдВрдХреНрд╢рди рдХрд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рднреА рдирд╣реАрдВ рджреЗрдЦрд╛ рдХрд┐ рдХреМрди рд╕реЗ рдкрддреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрд╕рд╛рдЗрди рдХрд┐рдП рдЧрдП рдереЗред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЕрдм рднреА рд╣рдо рд╡рд╣рд╛рдБ рдирд╣реАрдВ рджреЗрдЦреЗрдВрдЧреЗред рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдЬрд╛рдирдХрд╛рд░реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣реИ:
... \ SDRAMtest_bsp \ system.h ред

рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдорд┐рд▓рддреЗ рд╣реИрдВ:
 extern "C" { #include "sys/alt_stdio.h" #include <stdint.h> #include "../SDRAMtest_bsp/system.h" #include <altera_avalon_pio_regs.h> } int main() { bool bRes = true; volatile static uint32_t* const pSDRAM = (uint32_t*)NEW_SDRAM_CONTROLLER_0_BASE; static const int sizeInDwords = NEW_SDRAM_CONTROLLER_0_SPAN / sizeof (uint32_t); //  for (int i=0;i<sizeInDwords;i++) { pSDRAM [i] = 0; } //   for (int i=0;i<sizeInDwords;i++) { if (pSDRAM [i] != 0) { bRes = false; } } //   for (int i=0;i<sizeInDwords;i++) { pSDRAM [i] = i; } //    for (int i=0;i<sizeInDwords;i++) { if (pSDRAM [i] != i) { bRes = false; } } if (bRes) { IOWR_ALTERA_AVALON_PIO_DATA (PIO_0_BASE,0x01); } else { IOWR_ALTERA_AVALON_PIO_DATA (PIO_0_BASE,0x02); } /* Event loop never exits. */ while (1); return 0; } 


рд╣рдо рд╣реЗрдХреНрд╕ рдлрд╝рд╛рдЗрд▓ рдПрдХрддреНрд░ рдХрд░рддреЗ рд╣реИрдВ (рдореИрдВ рдЖрдкрдХреЛ рдЗрд╕ рд╕рдВрд╡рд╛рдж рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдпрд╛рдж рджрд┐рд▓рд╛рддрд╛ рд╣реВрдВ):



рдЙрд╕рдХреЗ рдмрд╛рдж рд╣рдо рдХреНрд╡рд╛рд░реНрдЯрд╕ рдореЗрдВ рдЙрдкрдХрд░рдг рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдкреНрд░рд╡реЗрд╢ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк "рдлрд░реНрдорд╡реЗрдпрд░" рдХреЛ рдЪрд┐рдк рдореЗрдВ рдкрд░рд┐рдгрд╛рдореА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛрдб рдХреЗ рд╕рд╛рде рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред



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



рдХрдиреЗрдХреНрдЯрд░ рдкрд░ рд░реИрдо рдкрд░реАрдХреНрд╖рдг рдХреЗ рдкрд░рд┐рдгрд╛рдо, C21 (рд╕рдлрд▓) рдпрд╛ B21 (рддреНрд░реБрдЯрд┐) рдХреЗ рд╕рдВрдкрд░реНрдХреЛрдВ рдХреЛ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рдо рдЙрдиреНрд╣реЗрдВ рдПрдХ рдЖрд╕реНрдЯрд╕реАрд▓рд╕реНрдХрдк рд╕реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред



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



рдкрд╣рд▓реА рдмрд╛рд░ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдирд╣реАрдВ рдорд┐рд▓рд╛ред рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ (рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдП рдЧрдП рдЯреИрдм рд╣реЗрдбрд░ рдореЗрдВ рд▓рд╛рд▓ рдХреНрд░реЙрд╕ рдХреЛ рдиреЛрдЯ рдХрд░реЗрдВ):



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



рд▓рд╛рдЧреВ рдХрд░реЗрдВ ( рд▓рд╛рдЧреВ рдХрд░реЗрдВ ), рдлрд┐рд░ рддрд╛рдЬрд╝рд╛ рдХрд░реЗрдВ рдХрдиреЗрдХреНрд╢рди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ (рдпрд╣ рдмрдЯрди рдЫрд┐рдкрд╛ рд╣реБрдЖ рд╣реИ, рдЖрдкрдХреЛ рдЗрд╕реЗ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ):



рд╕реВрдЪреА рдореЗрдВ рдПрдХ рдбрд┐рдмрдЧрд░ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ, рдЖрдк рдбреАрдмрдЧ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ...



рд╣рдо рдореБрдЦреНрдп () рд╕рдорд╛рд░реЛрд╣ рдореЗрдВ рд░реБрдХ рдЧрдПред рдпрджрд┐ рд╡рд╛рдВрдЫрд┐рдд рд╣реИ, рддреЛ рдЖрдк рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдЕрдВрдд рдореЗрдВ рдПрдХ рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЬрд╛рдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдЙрд╕ рддрдХ рдкрд╣реБрдВрдЪрддрд╛ рд╣реИ:



рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЪрд▓рд╛рдПрдБ:



рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдЖрдЗрдП рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рд░реЛрдХреЗрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдпрд╣ рдХрд╣рд╛рдВ рдЪрд▓рддрд╛ рд╣реИред



рд╕рдм рдмреБрд░рд╛ рд╣реИред рдХрд╛рд░реНрдпрдХреНрд░рдо рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рдЧрдпрд╛ред рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рдХреА рд╡реНрдпрд╡рд╕реНрдерд╛ рдХрд░рдирд╛, рдлрд┐рд░ рдмрдВрдж рдХрд░рдирд╛ (рд▓рд╛рд▓ "рд╕реНрдЯреЙрдк" рдмрдЯрди рдХреЗ рд╕рд╛рде) рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдирд╛ (рдмрдЧ рдмрдЯрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ), рд╣рдо рд╕рдорд╕реНрдпрд╛ рдХреНрд╖реЗрддреНрд░ рдкрд╛рддреЗ рд╣реИрдВред

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


рдПрдХ рд╣реА рдкрд╛рда:
  for (int i=0;i<sizeInDwords;i++) { if (pSDRAM [i] != 0) { bRes = false; } } 


C ++ рдХреА рджреГрд╖реНрдЯрд┐ рд╕реЗ, рдпрд╣рд╛рдБ рд╕рдм рдХреБрдЫ рд╕рд╛рдл рд╣реИред рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рдбрд┐рд╕реИрдореНрдмрд▓реНрдб рдХреЛрдб рдЦреЛрд▓рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╡рд╣рд╛рдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдорд╛рди рдХрдорд╛рдВрдб рд╣реИрдВред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдб рдиреЗ рдЦреБрдж рдХреЛ рдорд┐рдЯрд╛ рджрд┐рдпрд╛ рд╣реИред рдФрд░ рд╡рд╣ рдРрд╕рд╛ рдХрд░ рд╕рдХрддрд╛ рдерд╛ рдпрджрд┐ рд▓рд┐рдВрдХрд░ рдПрд╕рдбреАрдЖрд░рдПрдПрдо (рдЗрд╕ рд╕рд╛рдордЧреНрд░реА рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░рддрд╛ рд╣реИ) рдореЗрдВ рдбрд╛рд▓ рджреЗрддрд╛ рд╣реИред



рд╣рдо рдбреАрдмрдЧ рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрддреЗ рд╣реИрдВ, рдбрд┐рдмрдЧрд┐рдВрдЧ рдкрд░рд┐рдкреНрд░реЗрдХреНрд╖реНрдп рдХреЛ рдмрдВрдж рдХрд░ рджреЗрддреЗ рд╣реИрдВред



рд╣рдо рдмреАрдПрд╕рдкреА рд╕рдВрдкрд╛рджрдХ рдХреЗ рдкрд╛рд╕ рдЬрд╛рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдЗрд╕ рд▓реЗрдЦ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдереЗ, рд▓реЗрдХрд┐рди рд▓рд┐рдВрдХрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЯреИрдм рдкрд░ред рдпрджрд┐ рдореИрдВрдиреЗ рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╣реА рдЗрд╕ рдЯреИрдм рдХреЛ рд╕рд╣реА рдХрд░ рджрд┐рдпрд╛, рддреЛ рдореИрдВ JTAG рдбрд┐рдмрдЧрд┐рдВрдЧ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рдХреА рддрдХрдиреАрдХ рдирд╣реАрдВ рджрд┐рдЦрд╛ рдкрд╛рдКрдВрдЧрд╛ (рдФрд░ рд╕рд╛рдзрд╛рд░рдг рдбреАрдмрдЧрд┐рдВрдЧ рдЖрдЙрдЯрдкреБрдЯ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЗрд╕рдХреА рд╕рд╛рд░реА рд╢рдХреНрддрд┐ рдкрд░ рдЬреЛрд░ рджреВрдВрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ JTAG рдбреАрдмрдЧрд┐рдВрдЧ рдХреЗ рджреМрд░рд╛рди рдЬрд╛рдо рдХреЛрдб рдХреЗ рддрдереНрдп рдиреЗ рдЖрдкрдХреА рдЖрдВрдЦ рдХреЛ рдкрдХрдбрд╝рд╛)ред рддреЛ рдпрд╣ рд╣реИред рдПрдХ рдЕрдЪреНрдЫрд╛ рд▓рд┐рдВрдХрд░ рд╕рдм рдХреБрдЫ рд╕реНрдореГрддрд┐ рдореЗрдВ рдбрд╛рд▓рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЖрдХрд╛рд░ рдмрдбрд╝рд╛ рд╣реЛрддрд╛ рд╣реИред



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



рд╣рдо bsp рдХрд╛ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реИрдВ, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реИрдВред рдХреНрдпрд╛ рдореБрдЭреЗ рдореЗрдореЛрд░реА рдЗрдореЗрдЬ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдиреЗ рдФрд░ FPGA рдХреЛ рдУрд╡рд░рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рдлрд┐рд░, рдЕрд░реНрдз-рд╕реНрд╡рд╛рдпрддреНрдд рдХрд╛рдо рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЬрдм рдбрд┐рдмрдЧрд┐рдВрдЧ рдЬрд╛рд░реА рд╣реИ - рдирд╣реАрдВред рдирдпрд╛ рдбрд┐рдмрдЧрд┐рдВрдЧ рд╕рддреНрд░ рд╢реБрд░реВ рд╣реЛрдиреЗ рдкрд░ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рдПрдХ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рддреБрд░рдВрдд рд░реИрдо рдореЗрдВ рд▓реЛрдб рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рд▓реЗрдХрд┐рди рдЗрддрдирд╛ рд╣реИ рдХрд┐ FPGA рдХреЗ рдЕрдЧрд▓реЗ рд▓реЛрдбрд┐рдВрдЧ рдкрд░ рдбрд┐рдмрдЧрд░ рд╢реБрд░реВ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдбреАрдмрдЧрд┐рдВрдЧ рдХреЗ рдЕрдВрдд рдореЗрдВ рдПрдХ рдирдИ HEX рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдВ рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде FPGA "рдлрд░реНрдорд╡реЗрдпрд░" рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рд╡рд╛рдВрдЫрдиреАрдп рд╣реИред

рдирдП рдХреЛрдб рдХреЗ рд▓рд┐рдП, рдПрдХ рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдкрд░реАрдХреНрд╖рд╛ рдкрд░рд┐рдгрд╛рдо рд╕рдЪ рд╣реИ :



рдЖрд╕реНрдЯрд╕реАрд▓рд╕реНрдХрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: рдкреАрд▓реА рдХрд┐рд░рдг рдЗрдХрд╛рдИ рдореЗрдВ рдмрд╣ рдЧрдИ рд╣реИред



рдЯреЗрд╕реНрдЯ рдкрд╛рд╕ рдХрд░ рд▓рд┐рдпрд╛ред рдЪрд▓реЛ рдереЛрдбрд╝рд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдФрд░ рдПрдХ рд╕рд╛рде рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВред рдЖрдЗрдП рдЗрд╕ рддрд░рд╣ рд╕реЗ рдлрд╛рдЗрдирд▓ рдХрд░реЗрдВ:

  //    GPIO if (bRes) { while (true) { IOWR_ALTERA_AVALON_PIO_DATA (PIO_0_BASE,0x01); IOWR_ALTERA_AVALON_PIO_DATA (PIO_0_BASE,0x00); } } else { while (true) { IOWR_ALTERA_AVALON_PIO_DATA (PIO_0_BASE,0x02); IOWR_ALTERA_AVALON_PIO_DATA (PIO_0_BASE,0x00); } } 

рдирддреАрдЬрддрди, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЖрд╕реНрдЯрд╕реАрд▓рд╕реНрдХрдк рдкрд░ рдРрд╕рд╛ рдореЗрдпрд░ рд╣реИ (рд╕рдм рдХреБрдЫ рдПрдХ рд▓рдВрдмреЗ рд▓реВрдк рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рдерд╛, рдЗрд╕рд▓рд┐рдП рдПрдХ рдХреИрдкреЗрд╕рд┐рдЯрд┐рд╡ рдкрд┐рдХрдЕрдк рджреВрд╕рд░реА рдкрдВрдХреНрддрд┐ рдкрд░ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛, рдЗрд╕ рдкрд░ рдзреНрдпрд╛рди рди рджреЗрдВ):



рдкрд░рд┐рдгрд╛рдо рд▓рдЧрднрдЧ 8.3 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рдХреА рдЖрд╡реГрддреНрддрд┐ рд╣реИ, рдЬреЛ рдХрд┐рд╕реА рднреА рдлрд╛рдЗрди-рдЯреНрдпреВрдирд┐рдВрдЧ рдХреЗ рдмрд┐рдирд╛ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛрд░ рдХреЗ 50 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рдХреА рдШрдбрд╝реА рдЖрд╡реГрддреНрддрд┐ рдкрд░ рд╣реИ рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛрдб рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИред рдпрд╣реА рд╣реИ, рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рддрдХ рдкрд╣реБрдВрдЪ 16 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдереЛрдбрд╝реА рдЕрдзрд┐рдХ рдЖрд╡реГрддреНрддрд┐ рдкрд░ рдЬрд╛рддреА рд╣реИ, рдЬреЛ рд╕рд┐рд╕реНрдЯрдо рдЖрд╡реГрддреНрддрд┐ рдХреЗ рдПрдХ рддрд┐рд╣рд╛рдИ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИред рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдерд╛, рд▓реЗрдХрд┐рди рд╕рд╛рдЗрдХреНрд▓реЛрди рд╡реА SoC рдХреЗ рд▓рд┐рдП 925 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рдХреА рдШрдбрд╝реА рдХреА рдЖрд╡реГрддреНрддрд┐ рдкрд░ 4 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рд╕реЗ рдмреЗрд╣рддрд░ ... рдирд╣реАрдВ, рдПрдирдЖрдИрдУрдПрд╕ II рдкреНрд░реЛрд╕реЗрд╕рд░ рдЦреБрдж рдкрд╛рдВрдЪрд╡реЗрдВ рдХреЛрд░ рд╕рд╛рдЗрдХреНрд▓реЛрди рдПрдЖрд░рдПрдо рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдИ рдЧреБрдирд╛ рдзреАрдорд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкреНрд░реЛрд╕реЗрд╕рд░, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдХрд╣рд╛ рдерд╛ред , рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ x64 рд╣реИ, рдпрд╣рд╛рдВ рд╣рдореЗрдВ рдХрд░реНрдиреЗрд▓ рдХреА рдЕрдзрд┐рдХ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреЛ рд▓реЛрд╣реЗ рдХрд╛ рддрд░реНрдХ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдФрд░ рдпрд╣ рддрд░реНрдХ рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрджрд┐ рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдзреАрдорд╛ рд╣реИ, рддреЛ рдмрд╛рдХреА рд╕рдм рдХреБрдЫ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдирд┐рд╖реНрдХреНрд░рд┐рдп рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдХрд╛рдо рдЦрддреНрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╕ рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдмрддрд╛рдИ рдЧрдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреА рдкрд╣реБрдВрдЪ рд╕реАрдорд╛ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрдХ рдкреВрд░реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХреЛ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдП, рд╣рдо рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗред

рдирд┐рд╖реНрдХрд░реНрд╖


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

Source: https://habr.com/ru/post/hi453682/


All Articles