در این آموزش میخواهیم تراشه F1C100S را از طریق پورت USB و در محیط ویندوز پروگرام کنیم. بوتلودر موجود در ROM تراشه f1c100s به چهار طریق بوت میشود و فریمور کاربر را اجرا میکند:
1 | SDCARD - SPI NOR FLASH – SPI NAND FLASH – USB |
روال بوت شدن تراشه مانند تصویر زیر میباشد.
برای پروگرام تراشه f1c100s از ابزار sunxi-fel و رابط USB استفاده میکنیم. اما قبل از آن باید با استفاده از برنامه zadig و مراحل نشان داده شده در تصویر درایور تراشه f1c100s را روی ویندوز نصب کنید.
دستورات ابزار sunxi-fel که ما استفاده میکنیم به صورت زیر است:
- فلگ مورد استفاده برای نمایش میزان پیشرفت عملیات -p
- نوشتن فایل روی SPI FLASH متصل به تراشه spiflash-write
- ست کردن آدرس فراخوانی توابع exec
- نوشتن روی رم داخلی تراشه write
- بارگذاری و اجرا U-BOOT روی تراشه spl
همچنین آدرس رم DDR1 رو تراشه که برای اجرای کد از رم به کار میرود به این صورت است:
1 | DDR1 ADDRESS : 0X80000000 - 0X9FFFFFFF |
لازم به ذکر است تنها تفاوت دو تراشه f1c100s و f1c200s در حجم SDRAM داخلی است که در تراشه f1c200s آدرس پایان رم 0XBFFFFFFF و معادل 64 مگابایت میباشد.
برای اجرای برنامه از روی رم تراشه ابتدا باید فایل باینری را به حافظه موقت تراشه منتقل کنین و سپس آدرس فراخوانی را به آدرسی که در آن برنامه را انتقال دادین منتقل کنین:
1 2 | sunxi-fel -p write 0x80000000 app_binary.bin sunxi-fel exec 0x80000000; |
در صورتی که فایل باینری فاقد قسمت U-BOOT SPL بود باید قبل از دو دستور بالا فایل U-BOOT را نیز به تراشه منتقل کنید:
1 | sunxi-fel -p spl boot.bin |
این روش برای تست و عیب یابی سریعتر تراشه کاربرد دارد که نیاز است به دفعات تراشه پروگرام شود و نتیجه کار رویت شود.
اما برای پروگرام دائمی تراشه میتوانید فایل باینری را روی sdcard بنویسید که توسط کامپیوتر و ram reader امکان پذیر است اما برای پروگرام SPI FLASH متصل به تراشه همچنان میتوانید از رابط usb استفاده کنید، دستور پروگرام فایل باینری روی حافظه SPI FLASH به صورت زیر میباشد.
1 | sunxi-fel -p spiflash-write 0x00000000 app_binary.bin |
در صورتی که فایل باینری فاقد قسمت U-BOOT بود میتوانید آن را به صورت جداگانه روی SPI FLASH بنویسید:
1 2 | sunxi-fel -p spiflash-write 0x00000 boot.bin sunxi-fel -p spiflash-write 0x10000 app_binary.bin |
بعد از پروگرام SPI FLASH دیگر رابط USB توسط ویندوز قابل شناسایی نیست، زیرا همانطور که در روال بوت شدن تراشه نشان داده شد اولویت بوت SPI FLASH بالاتر از USB است و شما دیگر نمیتوانید با USB تراشه را پروگرام کنید. برای ممانعت از اجرای برنامه موجود در حافظه spi flash و بوت شدن توسط usb میتوانید یک کلید بین پایه CHIP SELECT حافظه SPI FLASH و خط تغذیه +3.3 قرار دهید و حین روشن شدن یا ریست شدن تراشه آن را فشار دهید و نگه دارید.
بعد از این کار رابط USB توسط ویندوز شناسایی میشود و میتوانید نسبت به پروگرام باینری دیگری روی SPI FLASH اقدام کنید یا اینکه برای ادامه روال تست و عیب یابی و عدم نیاز به نگه داشتن کلید حین هر بار روشن شدن تراشه، با نوشتن فایل ZERO روی SPI FLASH ، بوت از طریق SPI FLASH را غیر فعال کنید.
در پوشه مثالهای برنامه با اجرای فایل bat میتوانید تراشه F1C100S را پروگرام کنید. در صورتی که نمایشگر با رزولوشن 800*480 به تراشه متصل باشد میتوانید خروجی فایلهایی که با رزولوشن 480*272 هم نوشته شدند را ببینید.
این ابزار همچنین برای سایر SoC های شرکت Allwinner قابل استفاده است:
A10 – A13 – A20 – A23 – A31S – A33 – A64 – A80 – A83T – H3 – H5 – H6 – R8 – R40
لینکهای دانلود
اسم فایل
- Examples+zadig.7z
سلام عرض خسته نباشید دوباره..
راستش این برد خیلی عالی کار میکنه.. فوق العادست.
یه موردی داره اونم اگر برنامه بیشتر از ۳۸۰ کیلو بایت باشه
رو برد از روی فلش خارجی اجرا نمیشه صفحه سیاه میشه ولی از روی رم برد اجرا میشه..
اگر وقت کردین یه مطالعه بکنید من چیزی \یدا نکردم در موردش…
مرسی مرسی
سلام
من تست کردم و هیچ مشکلی نداره
باید اطلاعات بیشتری بدید تا بتونم کمکتون کنم
من فایل 16 مگابایتی هم بدون مشکل پروگرام کردم
سلام و خسته نباشید مطالبتون واقعآ عالیه
من برد لیجی نانو را به کامپیوتر متصل کردم و در device manger این برد را شناخت و alwinner soc fel model اومد اما نرم افزارsunxi -fel باز نمیشه در ضمن درzadig هم اطلاعاتی که شما گفتید نمیاد و مشخصات زیر میاد
intel(R) wirless bluetooth
driver id:8087 0026
سلام
داخل zadig از منوی option گزینه list all device رو انتخاب کنید
این دیوایس هایی هم که شما گفتید مربوط به خود سیستم هست
یکبار وصل نکنید ببینید چه دیوایس هایی داره
بعد وصل کنید و اون دیوایسی که اضافه شده رو انتخاب کنید و درایورش رو اصلاح کنید
دقیقآ همون دیواسی که در device manager اومده را انتخاب و درایورش را نصب کردم اما ابزارsunxi-fel باز نمیشه
جناب mahdi.h اول من تشکر کنم از مطالب خوبتون و پاسخ دادنتون به سئوال ها واقعآ خسته نباشید
من بعد از اینکه شما فرمودید از گزینهoption نرم افزار zadig سخت افزار را انتخاب کنم همین کار را کردم و دقیقآ سخت افزاری که داخل device manager بود را انتخاب کردم و گزینه نصب درایور را زدم که پیغام کامل شدن نصب هم اومد اما بازهمsunix-fel باز نمیشه ممنونم میشم راهنمایی کنی
خواهش میکنم
منظورتون رو دقیقتر بگید از اینکه sunxi-fel باز نمیشه !
اگر شما منظورتون این هست که تا روی خود فایل sunxi-fel کلیک میکنید چیزی نمیبینید یا یه پنجره سیاه سریع باز و بسته میشه ، باید بگم که خب درست هست و مشکلی نداره
شما در حقیقت باید یه cmd باز کنید و به آدرس این فایل بیاید و بعد دستور sunxi-fel رو بزنید
همچنین شما میتونید فایل های .bat رو اجرا کنید که در اونها از دستور sunxi-fel استفاده شده
همجنین سوالتون رو میتونید توی انجمن بپرسید که راحت تر بشه جواب داد
ممنونم جناب مهندس از اینکه وقت میگذارید و پاسخ سئوال ها را با حوصله میدهید
خواهش میکنم 🙏 🙏
سلام. سپاس از آموزش مفیدتون. اگر امکانش هست کمی در مورد نحوه تولید فایل های باینری که ارسال کردین توضیح بدین. تشکر
سلام وقت بخیر. ممنون بابت سایت بسیار خوبتون.
سوالم اینه که امکان نوشتن کد Native برای این چیپ هست؟ یعنی بدون لینوکس ازش استفاده کنیم.
ممنون میشم راهنماییم کنید.
سلام – به شکل کوتاه باید بگم بله و لینک زیر رو ببینید
https://github.com/nminaylov/F1C100s_projects
بادرود.
سپاس فراوان بابت مطلب خوبتان.
من چند تا پرسش دارم .
1 – ظاهرا آدرس 0x000000 مربوط به ROM هست که الگوریتم بوت شدن اونجا ذخیره شده . آیا کاربر میتونه اونجا چیزی بنویسه ؟
2 – وقتی دستور
sunxi-fel -p spl boot.bin
را اجرا میکنیم ( برای قرار دادن کد در رم). این فایل بوت کجا قرار میگیره و برنامه رو از چه آدرسی توی رم شروع به فراخوانی میکنه ؟
چقدر عالیه این سایت…
چی میتونم بگم.. سپاس فراوان از زحماتتون.
دستتون درد نکنه…
سلام
وقتتون به خیر
من قصد دارم که یه ویدیو روی liceepi zero با حداکثر رزولوشن ۷۲۰p پخش کنم.
برای این کار دارم از پلیر mpv و با دستور زیر کار می کنم:
startx /usr/bin/mpv nature.mp4 –vo=x11
سرعت پخش ویدیو بسیار کم هست و خیلی lag داره.(حجم ویدیو ۳ مگابایت با رزولوشن ۴۸۰p)
په طور میتونم از دیکودر h264 برای پخش این ویدیو استفاده کنم؟
با تشکر
احتمالا از دکدر سخت افزاری استفاده نمیکنید و برای این که موضوع لگ برطرف بشه باید از دکدر سخت افزاری استفاده کنید
هنوز کسی برای لینوکس درایور برای دکودر سخت افزاری این تراشه اضاف نکرده
با سلام و تشکر از آموزشی که محبت کردید گذاشتید،
1) ماژول لیچی پای نانو را به کامپیوتر متصل کردم و به داخل برنامه زادیگ رفتم. دکمه edit کار نمی کرد و در edit box بالای صفحه امکان تایپ چیزی وجود نداشت. بنابراین دکمه new را زدم و در editbox بالایی عبارت Allwinner و در جلوی USB ID اعدادی که در عکس گفته اید را وارد کردم و دکمه install driver را زدم و سه تا وسیله پیدا کرد، یک دوربین و دو تا USB Device.
آیا موقعی که داخل برنامه زادیگ میرویم می بایست ماژول لیچی پای به کامپیوتر متصل باشد یا نه و آیا می بایست قبل از آن از طریق متصل کردن پایه CS به 3.3 ماژول را در مد fel برده باشیم یا نه؟ و علت اینکه دکمه edit غیرفعال است چیست و تحت چه روالی می بایست در محیط زادیگ درایور را نصب کنیم؟
2) زمانی هم که فایل های bat مربوط به ریختن فایل لینوکس را اجرا میکنم خطای Allwinner USB Fel not found میدهد که احتمالا بدین معنی هست که درایوری که نصب شده مناسب نیست.
پیشاپیش از راهنمایی شما متشکرم.
سلام اول باید دیوایس usb در کامپیوتر شناسایی بشه، حتی وقتی هم که در دیوایس منیجر علامت مثلث زرد کنارش هست باید USB ID رو چک کنین که 1F3A-EFE8 باش، اگر همچین دیوایسی به USB متصل نیست جلوتر نمیتونین برین تا این مشکل رو رفع کنین. پایه CS رو اتصال کوتاه کنین چک کنین ببینین به مد FEL میره
عالی
ممنون از مهندس پورخلیلی
ممنون از سیسوگ
تشکر بابت مطلب
بی صبرانه منتظر برد امبدد سیسوگ با همین تراشه و آموزش هاش هستیم