پرش به


تصویر

دانلود برنامه از SDK بر روی حافظه فلش

ُِ SDK پروگرام کردن فلش در FPGA حافظه فلش

  • لطفا وارد حساب کاربری خود شوید تا بتوانید پاسخ دهید
25 پاسخ برای این موضوع

#21 farshad.savandi

farshad.savandi

    newbie

  • کاربر عادی
  • ستاره
  • 0 ارسال

ارسالی 09 August 2017 - 07:02 AM   بهترین پاسخ

سلام. مشکل حل شد.با تشکر از همه عزیزانی که کمک کردند.

برای جمع بندی و استفاده ی دوستانی که تازه کارند توی مبحث FPGA توضیحات ساده ای در مورد مراحل انجام این کار میدم. توضیحات شاید خیلی جزیی باشند ولی برای افراد مبتدی  راحتتره.

 

ابتدا فایل   ضمیمه شده در پست های قبلی را extract میکنیم . فقط حواستون باشه اگر نام فولدر را عوض کنید با مشکلاتی مواجه میشید. اسمش باید همین باشه: spi-bootloader

در پوشه hw فایل ISE را باز کرده و از طریق آن فایل xps را اجرا میکنیم

Peripherals لازمه برای برنامه خودتونو اضافه کرده و پس از تغییر فایل UCF ، برنامه xps را میبندیم

در برنامه ISE ، Generate Top HDL Source را انتخاب میکنیم و سپس Export To SDK With Bitstream را انتخاب میکنیم.

پس از اتمام کار و باز شدن SDK مسیری جدید در همان مسیر، و با نام sw1مثلا  برای برنامه انتخاب میکنیم.

یک پکیج standalone bsp میسازیم و کتابخانه xilisf ver 3.02a را برای آن فعال میکنیم. در تنظیمات این کتابخانه عدد مربوطه را روی 4 یا همان Winbond تنظیم میکنیم.

دو برنامه SREC bootloader  و Hello World را با نام های bootloader و hello میسازیم. SREC Bootloader را با standalone bsp ساخته و برای Hello World یک پکیج bsp  جدا درست میکنیم.

روی برنامه hello world کلیک راست کرده و از طریق گزینه Generate Linker Script ، اجرای برنامه را به حافظه فلش خارجی منتقل میکنیم.

SDK را میبندیم و در فولدر sw1 ،محتوای فولدر bootloader را حذف کرده و محتوای فولدر bootloader موجود در فولدر sw را جایگزین آن میکنیم.

SDK را باز میکنیم. برنامه جایگزین HelloWorld را مینویسیم. F5 را برای refresh شدن برنامه میزنیم و پروزه را Build میکنیم.

از گزینه Xilinx Tools گزینه Download FPGA را انتخاب میکنیم. در پنجره ی باز شده فایل bootloader.elf را برای دانلود در بلوک رام انتخاب میکنیم.

Download  را میزنیم.برد نباید به کامپیوتر متصل باشد.

از Xilinx Tools گزینه Lunch Shell را انتخاب کرده و کدهای زیر را مینویسیم:

Cd hello\debug

mb-objcopy -O srec hello.elf hello123.srec

بعد از اجرای این کد ، یک فایل hello123.srec در مسیر sw1/hello/debug اجرا میشود. این فایل را در دسکتاپ کپی میکنیم.چون impact با مسیرهای طولانی  مشکل دارد.

impact را باز میکنیم.Create PROM File  را انتخاب میکنیم. از سربرگ SPI FLASH گزینه configure single FPGA  را انتخاب مینیم. فلش سبز رنگ را زده و گزینه 64M را انتخاب میکنیم و Add Storage Device را انتخاب میکنیم. فلش سبزرنگ را زده و یک نام مشخص میکنیم. برای مسیر هم بهتر است همان sw1 انتخاب شود. گزینه add non-configuration data file را روی yes میگذاریم. OK را میزنیم.

در پنجره اول ، به مسیر sw1\microblaze_hw_platform رفته و فایل download.bit را انتخاب میکنیم. در جواب add other device? ، NO را میزنیم. برای Data هم همان فایلی که در دسکتاپ کپی کردیم را انتخاب میکنیم و آدرس 80000 را برای آن وارد میکنیم(همان ادرسی که درفایل blconfig.h موجود در برنامه bootloader وارد شده است.)

فایل data دیگری اضافه نمیکنیم. از سمت چپ Generate File… را میزنیم.

بورد را متصل میکنیم. در بخش Boundary Scan ، بعد از کلیک راست و انتخاب initialize chainروی FPGA کلیک راست کرده و Add SPI\BPI FLASH … را انتخاب مبکنیم. در پنجره باز شده فایل msc ساخته شده و موجود در فولدر sw1 را نتخاب کرده و بعد از انتخاب نوع حافظه (W25q64BV/CV)    و گذاشتن Data Width روی عدد 4  ، OK را میزنیم.

برای احتیاط : روی حافظه فلش کلیک راست کرده سپس Erase را میزینم. بعد از اتمام بورد را جدا کرده مجددا نتصل میکنیم. تا مطمین شویم هیچ برنامه ای روز FPGA لود نمیشود.

روی FLASH کلیک راست کرده و program  را میزنیم. بعد ار اتمام چند لحظه ای(فکر نکنم بیشتر از 20 یا 30 ثانیه بشه دیگه :-) ) باید صبر کنیم تا برنامه لود شود. پس از این انتظار برنامه اجرا خواهد شد.


  • mahmoud و farshad.savandi این پست را پسندیده است

#22 mahmoud

mahmoud

    Administrator

  • مدیریت انجمن
  • 100 ارسال

ارسالی 09 August 2017 - 08:04 AM

 

سلام. مشکل حل شد.با تشکر از همه عزیزانی که کمک کردند.

برای جمع بندی و استفاده ی دوستانی که تازه کارند توی مبحث FPGA توضیحات ساده ای در مورد مراحل انجام این کار میدم. توضیحات شاید خیلی جزیی باشند ولی برای افراد مبتدی  راحتتره.

 

ابتدا فایل   ضمیمه شده در پست های قبلی را extract میکنیم . فقط حواستون باشه اگر نام فولدر را عوض کنید با مشکلاتی مواجه میشید. اسمش باید همین باشه: spi-bootloader

در پوشه hw فایل ISE را باز کرده و از طریق آن فایل xps را اجرا میکنیم

Peripherals لازمه برای برنامه خودتونو اضافه کرده و پس از تغییر فایل UCF ، برنامه xps را میبندیم

در برنامه ISE ، Generate Top HDL Source را انتخاب میکنیم و سپس Export To SDK With Bitstream را انتخاب میکنیم.

پس از اتمام کار و باز شدن SDK مسیری جدید در همان مسیر، و با نام sw1مثلا  برای برنامه انتخاب میکنیم.

یک پکیج standalone bsp میسازیم و کتابخانه xilisf ver 3.02a را برای آن فعال میکنیم. در تنظیمات این کتابخانه عدد مربوطه را روی 4 یا همان Winbond تنظیم میکنیم.

دو برنامه SREC bootloader  و Hello World را با نام های bootloader و hello میسازیم. SREC Bootloader را با standalone bsp ساخته و برای Hello World یک پکیج bsp  جدا درست میکنیم.

روی برنامه hello world کلیک راست کرده و از طریق گزینه Generate Linker Script ، اجرای برنامه را به حافظه فلش خارجی منتقل میکنیم.

SDK را میبندیم و در فولدر sw1 ،محتوای فولدر bootloader را حذف کرده و محتوای فولدر bootloader موجود در فولدر sw را جایگزین آن میکنیم.

SDK را باز میکنیم. برنامه جایگزین HelloWorld را مینویسیم. F5 را برای refresh شدن برنامه میزنیم و پروزه را Build میکنیم.

از گزینه Xilinx Tools گزینه Download FPGA را انتخاب میکنیم. در پنجره ی باز شده فایل bootloader.elf را برای دانلود در بلوک رام انتخاب میکنیم.

Download  را میزنیم.برد نباید به کامپیوتر متصل باشد.

از Xilinx Tools گزینه Lunch Shell را انتخاب کرده و کدهای زیر را مینویسیم:

Cd hello\debug

mb-objcopy -O srec hello.elf hello123.srec

بعد از اجرای این کد ، یک فایل hello123.srec در مسیر sw1/hello/debug اجرا میشود. این فایل را در دسکتاپ کپی میکنیم.چون impact با مسیرهای طولانی  مشکل دارد.

impact را باز میکنیم.Create PROM File  را انتخاب میکنیم. از سربرگ SPI FLASH گزینه configure single FPGA  را انتخاب مینیم. فلش سبز رنگ را زده و گزینه 64M را انتخاب میکنیم و Add Storage Device را انتخاب میکنیم. فلش سبزرنگ را زده و یک نام مشخص میکنیم. برای مسیر هم بهتر است همان sw1 انتخاب شود. گزینه add non-configuration data file را روی yes میگذاریم. OK را میزنیم.

در پنجره اول ، به مسیر sw1\microblaze_hw_platform رفته و فایل download.bit را انتخاب میکنیم. در جواب add other device? ، NO را میزنیم. برای Data هم همان فایلی که در دسکتاپ کپی کردیم را انتخاب میکنیم و آدرس 80000 را برای آن وارد میکنیم(همان ادرسی که درفایل blconfig.h موجود در برنامه bootloader وارد شده است.)

فایل data دیگری اضافه نمیکنیم. از سمت چپ Generate File… را میزنیم.

بورد را متصل میکنیم. در بخش Boundary Scan ، بعد از کلیک راست و انتخاب initialize chainروی FPGA کلیک راست کرده و Add SPI\BPI FLASH … را انتخاب مبکنیم. در پنجره باز شده فایل msc ساخته شده و موجود در فولدر sw1 را نتخاب کرده و بعد از انتخاب نوع حافظه (W25q64BV/CV)    و گذاشتن Data Width روی عدد 4  ، OK را میزنیم.

برای احتیاط : روی حافظه فلش کلیک راست کرده سپس Erase را میزینم. بعد از اتمام بورد را جدا کرده مجددا نتصل میکنیم. تا مطمین شویم هیچ برنامه ای روز FPGA لود نمیشود.

روی FLASH کلیک راست کرده و program  را میزنیم. بعد ار اتمام چند لحظه ای(فکر نکنم بیشتر از 20 یا 30 ثانیه بشه دیگه :-) ) باید صبر کنیم تا برنامه لود شود. پس از این انتظار برنامه اجرا خواهد شد.

 

عالی بود.
بابت اشتراک این تجربه از شما سپاسگذارم.

 

موفق باشید.



#23 M4612161

M4612161

    newbie

  • کاربر عادی
  • ستاره
  • 0 ارسال

ارسالی 08 August 2020 - 04:17 AM

سلام.من نرم افزار SDK xilinx رو  میخواستم.از سایت خودش نتونستم دانلود کنم. ممنون میشم کمک کنید.نمیدونستم کجا باید مطرح کنم.



#24 Ha1400

Ha1400

    newbie

  • کاربر عادی
  • ستاره
  • 0 ارسال

ارسالی 13 December 2021 - 03:05 PM

سلام
متاسفانه فایل دانلود مشکل دارد
لطفا اگر امکان دارد دوباره فایل را ارسال کنید

#25 Ha1400

Ha1400

    newbie

  • کاربر عادی
  • ستاره
  • 0 ارسال

ارسالی 13 December 2021 - 03:18 PM

عالی بود.
بابت اشتراک این تجربه از شما سپاسگذارم.

موفق باشید.


سلام
فایل ها قابل دانلود نیستند.
لطفا بررسی بفرمایید.
اگر امکان داره یک آموزش تصویری قرار دهید خیلی ممنون می شیم



#26 mahmoud

mahmoud

    Administrator

  • مدیریت انجمن
  • 100 ارسال

ارسالی 16 December 2021 - 05:40 PM

سلام.

این پروژه را تست کنید ببینید جواب میده؟ الان برد دم دستم نیست که امتحان کنم.

باید متن "hello world" را روی پورت سریال (پینهای A16, B16 کانکتور روی برد) چاپ کنه.

 

https://www.uplooder...loader.rar.html

 

آپدیت:

لینک جدید در Github:

https://raw.githubus..._bootloader.zip

 

آپدیت:

من تست کردم درست بود. 

با تشکر از آقای مهندس چنگانی عزیز بابت تهیه این پروژه نمونه.

 

سلام
لینک اصلاح شد.

 

آپدیت (1400.09.27):

- آموزش ویدئویی ساخت بوت لودر تهیه شده توسط گروه پازج (آپارات)

- اسلایدهای ویدئو (+)

- pdf آموزشی از Avnet: 







همچنین به ُِ, SDK, پروگرام کردن فلش در FPGA, حافظه فلش نیز برچسب خورده است

0 کاربر در حال خواندن این موضوع است

0 کاربر، 0 مهمان و 0 عضو مخفی