ARM, آموزش, امبدد لینوکس, توصیه شده

کار با f1c100s بدون سیستم عامل (BareMetal) – قسمت اول

کار با f1c100s بدون سیستم عامل (BareMetal) - قسمت اول

همان‌طور که اطلاع دارید قیمت میکروکنترلرهایی مثل stm32 که توانایی اجرای یک گرافیک مناسب رودارند مدت نسبتاً زیادی هست که افزایش پیداکرده و بعضاً نایاب شده، یک روش دیگر هم برای اجرای گرافیک استفاده از تراشه‌هایی مثل ft800 بوده که آن ها هم متاسفانه با مشکل افزایش قیمت و نایاب شدن مواجه شده. اما توی این آموزش می‌خواهیم در مورد یک تراشه باقیمت خیلی مناسب و امکانات کافی برای جایگزینی صحبت کنیم، البته قبلاً هم در سیسوگ در مورد تراشه f1c100s صحبت کرده بودیم و حتی یک برد اوپن سورس هم برای اون معرفی کرده بودیم اما آموزش‌های قبلی بر پایه سیستم‌عامل لینوکس بود و این بار طی چند قسمت می‌خواهیم اجرای گرافیک بدون سیستم‌عامل (baremetal) رو آموزش بدیم، پس با سیسوگ همراه باشید.

شاید برای شما مفید باشد: آموزش امبدد لینوکس از 0 تا 100

معرفی کتابخانه baremetal

اول از همه ما نیاز به یک کتابخانه داریم که بخش‌های مختلف چیپ f1c100s رو راه‌اندازی کرده باشه، این کتابخانه اینجا در گیت هاب در دسترس هست.

کتابخانه شامل این بخش‌ها هست:

  • _arm926_: هدر فایل‌های لازم برای پردازنده
  • _drivers_: درایورهای بخش‌های مختلف سخت‌افزار
  • _lib_: کتابخانه‌های لازم
  • _tools_: ابزارهای موردنیاز

همچنین شامل چند نمونه کد مختلف برای استفاده از کتابخانه ها هست که لازمه یک توضیح کوتاه در مورد هر کدام بدیم:

  • hello_led: ساده‌ترین نمونه کد برای راه‌اندازی حداقلی (همون blink خودمون)
  • lcd_test: رسم متن و شکل روی lcd
  • lvgl_demo: راه‌اندازی کتابخانه گرافیکی lvgl
  • tv_out_test: راه‌اندازی بخش خروجی تصویر چیپ (مثل lcd و خروجی pal)
  • tv_in_test: راه‌اندازی ورودی تصویر pal و نمایش تصویر دریافتی روی lcd
  • sd_card_test: خواندن تصویر از روی sd و نمایش روی lcd
  • simple_loader: بوت لودر برای اجرای کد از روی spi flash

 

بررسی کد blink

ما برای اینکه تازه‌کاریم از hello led شروع می‌کنیم. در ادامه کد فایل main.c این پروژه رو می‌تونید بررسی کنید:

هدر system.h کد system.c را فراخوانی می‌کند که وظیفه راه‌اندازی بخش‌های اصلی سخت‌افزاری را  ازجمله واحد کلاک cpu، mmu، راه‌اندازی uart، کلاک نرم‌افزاری، تأخیر و…  را بر عهده دارد.

هدرهایی که با f1c100 شروع می‌شوند همگی شامل راه‌اندازی توابع سطح پایین (low level) سخت‌افزاری نظیر تایمر، وقفه، gpio، pwm و…  هستند.

به دلیل اینکه ما برای تست از برد sinux f1 استفاده می‌کنیم و این برد یک led روی پین E5 داره، پین‌های A1 رو به E5 تغییر دادیم و در ادامه داخل یک حلقه نامتناهی با دستور gpio_pin_set(GPIOE, 5) پایه شماره پنج از پورت f1c100، E رو به‌عنوان خروجی و مقدار ولتاژ یک دیجیتال تعریف می‌کنیم. دستور gpio_pin_clear(GPIOE, 5) همان پایه پورت را به‌عنوان خروجی و با مقدار دیجیتال صفر تعریف می‌کند. که درنهایت ما یک led چشمک‌زن با تأخیر 200 میلی‌ثانیه داریم.

چون ما خیلی سطح پایین کار می‌کنیم تابع آماده‌ای برای تأخیر نداریم و خودمان باید delay رو بسازیم، برای این کار یک تایمر 1 میلی‌ثانیه راه‌اندازی میشه:

و در وقفه تایمر هر بار متغیر tick_flag رو برابر 1 می‌کنیم:

بعد از اون توی تابع delay در یک حلقه دیگه منتظر ۱ شدن tick_flag می‌مونیم و بعد از اون بلافاصله صفرش می‌کنیم و به این صورت یک تابع delay داریم:

 

کامپایل کد

داخل توضیحات کتابخانه ابزار لازم برای کامپایل کد در سیستم‌عامل ویندوز و نرم‌افزار eclipse رو گفته، اما ما کدمون رو توی لینوکس می‌خواهیم کامپایل کنیم و از ubuntu استفاده می‌کنیم، بدون ide. ابتدا لازم هست کامپایلر gcc مناسب arm و برنامه make رو نصب کنید:

حالا به پوشه پروژه رفته و با دستور make برنامه را کامپایل می‌کنیم:

با اجرای دستورات بالا به صورت خودکار یک پوشه به نام build درست شده که در آن تمام فایل های لینک شده و فایل نهایی hello_led.bin موجود است.

 

اجرای کد

ما می‌تونیم برناممون رو از روی sd card و یا spi flash اجرا کنیم که البته در هر دو حالت نیاز به بوت لودر داریم، هرچند درنهایت بهتره که کدتون از روی spi flash اجرا بشه، اما با استفاده از sd card می‌تونید چند برنامه داشته باشید که هر کدوم رو خواستید توسط بوت لودر اجرا کنید. در ادامه هر دو روش رو توضیح دادیم.

 

اجرای کد از روی sd card

برای این روش لازم هست شما یک ایمیج که uboot داره رو روی sdcard داشته باشید، می‌تونید از این ایمیجی که آماده کردیم استفاده کنید و روی sd رایت کنید، بعد از اون هم فایل خروجی hello_led.bin رو که در پوشه F1C100s_projects/hello_led/buildهست داخل تنها پارتیشن sd کپی می‌کنیم.

حالا باید sd رو داخل برد sinux f1 یا لیچی پای نانو قرار بدیم و پین‌های سریال رو توسط مبدل سریال به سیستم متصل کنیم. بااتصال تغذیه باید چنین خروجی داشته باشید

خب حالا  وارد uboot شدیم  و با این دستورات می‌تونید برنامه رو اجرا کنید :

دستور اول فایلمون رو از پارتیشن دوم کارت حافظه به آدرس 80000000 رم انتقال میده و دستور بعدی باعث میشه تا cpu به این آدرس در رم پرش کنه و از اونجا ادامه بده.

در ادامه میتونید خروجی سریال و وضعیت led رو ببینید:

sinux f1 blink

 

اجرای کد از روی spi nor flash

برای این روش نیاز هست که ابتدا یک بوت لودر رو روی حافظه بریزیم و بعد از اون کدمون رو، تا بتونیم اجراش کنیم. برای پروگرام فلش هم می‌تونیم از طریق درگاه usb خود برد این کار رو انجام بدیم.

انجام این کار در ویندوز قبلاً در سیسوگ توضیح داده‌شده، برای استفاده در لینوکس ابتدا باید یکسری پکیج رو نصب کنیم:

حالا سورس کد ابزار sunxi-tools رو دانلود، کامپایل و نصب می‌کنیم:

برای اینکه در زمان انتقال فایل به برد با مشکل دسترسی مواجه نشیم لازمه که یک فایل با محتویات زیر در این آدرس ایجاد کنیم/etc/udev/rules.d/99-allwinnerdl.rules

مرحله بعدی بررسی روال بوت هست، همان طور که در تصویر پایین مشاهده می‌کنید اول cpu تلاش میکنه تا از روی sd card بوت بشه، اگر نتونست از روی spi flash و اگه نشد در آخر usb boot.

F1C100S linux bootما برای اینکه به مرحله آخر برسیم، می‌تونیم sd card رو دربیاریم، اما نیاز هست که spi flash رو هم رد کنیم، برای این کار در برد sinux f1 می‌تونید دکمه boot رو نگه‌دارید تا از spi flash لود نشه، اما برای برد licheepi nano باید یکم لحیم‌کاری کنید روی برد! (اینجا دقیق‌تر توضیح داده‌شده).

حالا باید برنامه simpleloader رو کامپایل کنیم:

قبل از استفاده از simpleloader باید با استفاده از mksunxi هدر eGON.BT0 رو در این فایل اصلاح کنیم:

درنهایت هم باید با ابزار sunxi-fel که بالاتر نصب کردیم اول لودر و بعدش هم برناممون رو روی spiflash به ترتیب در آدرس‌های 0x00000 و 0x10000 بریزیم:

در قسمت بعد به سراغ اجرای LVGL به کمک این کتابخونه می‌رویم.

لینک های دانلود:

 

sisoog sinux f1 board buy

 

انتشار مطالب با ذکر نام و آدرس وب سایت سیسوگ، بلامانع است.

شما نیز میتوانید یکی از نویسندگان سیسوگ باشید.   همکاری با سیسوگ

40 دیدگاه در “کار با f1c100s بدون سیستم عامل (BareMetal) – قسمت اول

  1. Avatar for Iman Iman گفت:

    عرض سلام و خسته نباشین بابت زحماتتون.
    خیلی ممنونم از مطالب مفیدتون.
    من رم اس دی را با فرمت های مختلف Fat32 , NTFS , ext4 فرمت کردم مراحی را تکرار کردم بطوریکه فایل ایمیج را با دستور dd رایت کردم و فایل باینری را هم داخل رم با دستور cp ریختم. ولی بعد از خط
    mmc0 is current device
    خطای زیر رو دارم:
    Card did not respond to voltage select!
    SF: Detected xt25f128 with page size 256 Bytes,erase size 4 KiB,total 16 MiB

    **Unrecognized filesystem type**
    آیا مراحل رو اشتباه رفتم؟

    1. Avatar for Mahdi.h   Mahdi.h   گفت:

      سلام
      خواهش میکنم
      این ارور ها مشکلی نداره
      شما باید بعد که این پیغام ها رو نوشت ، این دستورات رو بزنید
      fatload mmc 0:2 80000000 hello_led.bin
      go 80000000

      1. Avatar for Iman Iman گفت:

        خیلی ممنون از پاسختون. من این کار را در حالت های مختلف تست کردم ولی جواب نگرفتم.و باز هم خطاها ظاهر می شدن.

        در نهایت در حالتی جواب گرفتم که ابتدا فایل .bin را روی SD کپی کردم با دستور cp و سپس فایل .img را با دستور dd رایت کردم. و دیگه اون خطاها ظاهر نشد. من قبل از این برعکس این مراحل رو انجام داده بودم.
        بلاخره بعد از دو روز تونستم مشکل را حل کنم.

        با سپاس فراوان

  2. Avatar for پیمان پیمان گفت:

    درود
    سپاس از مطالب کم یاب و ارزشمندتون

    من در استفاده از هدر arm32.h در نرم افزار کیل به مشکل برخوردم.
    آیا مشکل از نوع کدها هست که به زبان c++ هست یا اینکه این هدر به نحو خاصی برای eclips فقط پورت شده؟
    چطور میتونم اینتراپت کلی را که در برنامه توسط تابع arm32_interrupt_enable() فعال میشه با استفاده از توابع پیشفرض arm در کیل هندل کنم!؟

    1. Avatar for Mahdi.h   Mahdi.h   گفت:

      سلام
      خواهش میکنم 🙂
      این کتابخونه با کمک کامپایلر gcc کامپایل میشه و ربطی به IDE نداره ، شاید مشکل از کامپایلرتون باشه
      این پروژه هم میتونید یه بررسی کنید ، برای استفاده در keil هست :
      https://github.com/hongxuyao/F1C100s_with_Keil_RTX4_emWin5

      1. Avatar for پیمان پیمان گفت:

        ممنون از پاسختون.
        ضمن اینکه هنوز موفق به راه اندازی وقفه نشدم)تمام تنظیمات را به درستی انجام میدم ولی به محض ایجاد وقفه برنامه هنگ میکنه. من فقط موفق شدم برنامه را در رم و با لود کردن boot.bin و projectName.bin اجرا کنم.فلش هم پروگرام میشه و پروگرس ۱۰۰٪ میشه ولی بعد از یکی دو ثانیه برنامه هنگ میکنه.رو برد لیچی که من تهیه کردم آسی فلش مونتاژ نشده بود و من بجای آی سی فلش 25f128b از 25q256 استفاده کردم چون تو بازار گیر نیاوردم.یعنی مشکل میتونه از سرعت و یا سایز حافظه فلش باشه؟

        یک موضوع؛به این دلیل که برای mcu هایی که به سبک برنامه نویسی و پروگرام کردنشون مسلط هستیم مثل atmel و stm و … فایل های آماده و سورس کد های استارت اپ و SIMSIC و … در دسترس بود و زیاد وارد بحث های سخت افزاری نشدم،بجز کد برنامه programName.hex . الان با بعضی مفاهیم نا آشنا هستم:
        spl_seperated ، with_spl ، boot.bin ، program_to_ram!

         فایل boot.bin را برای چی لود میکنیم؟ مگر ما تنظیمات ابتدایی راه اندازی را در فایل استارت آپ انجام نمیدیم؟ اصلا فایل بوت با پسوند bin. کجا نوشته شده(چطور تهیه شده)؟ برای لود کردن برنامه در رم و یا فلش از همین یک فایل میشه استفاده کرد یا فایل بوتشون متفاوت هست؟ یا اصلا برای هر برنامه خاصی نیاز به بوت اختصاصی هست!؟
        در مورد spl هم بفرمایید لطفا(جدا و به همراه یعنی چی) یا حداقل یک سورس برای مطالعه معرفی کنین.
        مموری مپ این f1c100 خبیث را کجا میشه پیدا کرد؟ تو دیتا شیت فقط به آدرس رجیستر ها اشاره شده و حتی آدرس وکتور اینتراپت را هم مشخص نکرده.
        اگر برنامه را تو رم لود کنیم اینتراپ ها فعال میشن؟ مشکلی تو اجراشون نیست؟ آدرس وکتورش تغییر میکنه!!!!؟؟؟

  3. Avatar for سید سعید سید سعید گفت:

    سلام
    “داخل توضیحات کتابخانه ابزار لازم برای کامپایل کد در سیستم‌عامل ویندوز و نرم‌افزار eclipse رو گفته”
    طبق آموزشی که گذاشتید این بخش رو من پیدا نکردم برای محیط ویندوز

    1. Avatar for Mahdi.h   Mahdi.h   گفت:

      سلام
      در زمان نوشتن مطلب این قسمت موجود بوده اما در حال حاضر مثل اینکه به Visual Studio Code تغییر پیدا کرده

  4. Avatar for مهدی مهدی گفت:

    مطالبتون واقعآ عالیه
    من مدت ها دنبال چنین پردازنده ای بودم
    اما الان یک مشکلی دارم
    کامپایلرGCC را روی ویندوز نصب کردم از طریق CMD یک برنامه خیلی ساده که فقط یک دستور ساده بود را هم کامپایل کردم اما مشکلم این هست که نمیدونم چطور پروژه بسازم و کتابخانه اضافه کنم

    1. Avatar for Mahdi.h   Mahdi.h   گفت:

      متوجه مشکلتون نمیشم
      ما توی این مطلب یه کتابخانه مناسب که بخش های مختلف و اصلی رو پیاده کرده معرفی کردیم و نحوه کامپایل و پروگرامش رو گفتیم
      حالا شما میتونید هر تغییری خواستید در اون بدید و کامپایل کنید

      1. Avatar for مهدی مهدی گفت:

        درود بر شما
        من در یک پوشه تمام کتابخانه های مورد نیاز پروژه(تمام کتابخانه هایی که در فایلmain.c به برنامهinclude شده بود)را ریختم بعد از اون پوشه را درcmd باز کردم و با دستور gcc main.c پروژه را کامپایل کردم اما خطاهای زیر را دارم

        C:\Users\Torki\AppData\Local\Temp\ccJ52VBO.s: Assembler messages:
        C:\Users\Torki\AppData\Local\Temp\ccJ52VBO.s:15: Error: no such instruction: mrs %eax,cpsr'
        C:\Users\Torki\AppData\Local\Temp\ccJ52VBO.s:16: Error: no such instruction:
        bic %eax,%eax,’
        C:\Users\Torki\AppData\Local\Temp\ccJ52VBO.s:17: Error: no such instruction: `msr cpsr_cxsf,%eax’

        1. Avatar for Mahdi.h   Mahdi.h   گفت:

          شما با دستور gcc دارید برای معماری x64 کامپیوتر خودتون کامپایل میکنید و ارور میده
          باید از دستور arm-none-eabi-gcc استفاده کنید
          در مرحله دوم شما نباید فایل main.c رو مستقیم کامپایل کنید
          بلکه باید به کمک make اینکار رو انجام بدید

  5. Avatar for بهزاد عبد با فتوت بهزاد عبد با فتوت گفت:

    سلام و تشکر دوباره بخاطر مطلب بسیار مفید و ارزشمندی که منتشر فرمودید.
    یک خواهشی داشتم اگر ممکن باشه.
    لطفا SDK کامل این پردازشگر رو که شامل هدر فایل های audio_decoder.h هم هست
    فراهم بفرمایید.
    چون بنده خیلی سعی کردم . متاسفانه نتونستم جایی پیدا کنم حتی خود تولید کننده هم دسترسی نمیده.
    اگر به روشی توانستید از طریقی دسترسی پیدا کنید لطفا برای ما هم به اشتراک بگذارید
    سپاس سپاس سپاس.

    1. Avatar for Mahdi.h   Mahdi.h   گفت:

      سلام
      sdk های متفاوتی توسط افراد مختلفی برای این پردازنده توسعه داده شده و معمولا توی هر کدوم یه چیزایی هست و یه چیزایی نیست ، باید همه رو دقیق بررسی کنید برای چیزی که میخواید ، در مورد فایلی که نیاز دارید ما اطلاعاتی نداریم.

  6. Avatar for بهزاد عبدی بهزاد عبدی گفت:

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

    1. Avatar for Mahdi.h   Mahdi.h   گفت:

      برای بحث لینوکس کار یکم پیچیده تر از این حرفا هست ، چون لازمه هم توی بوت لودر ، هم کرنل و هم سیستم فایل تغییراتی اعمال بشه تا بتونیم از روی فلش بوتش کنیم
      میتونید سوالتون رو دقیقتر و با توضیح اینکه از چه روشی برای ساخت ایمیج لینوکسی استفاده میکنید توی انجمن سیسوگ بپرسید تا همکاران در صورت امکان جوابتون رو بدند
      ask.sisoog.com

  7. Avatar for محسن محسن گفت:

    سلام خدا قوت

    ببخشید من فایل u-boot شما رو که روی sd card میریزم٬ لینوکس پارتیشنی بعدش روی اون تشخیص نمیده که من بتونم فایل bin رو بهش کپی کنم!

    1. Avatar for Mahdi.h   Mahdi.h   گفت:

      سلام
      یه پارتیشن 8.3 مگابایتی میسازه که روی اون میتونید فایلو کپی کنید
      اگر این پارتیشن رو نشون نمیده یه جای کار رو اشتباه رفتید
      الان هم تست کردم فایل مشکلی نداره

      1. Avatar for ایمان ایمان گفت:

        سلام
        من هم همین مشکل را دارم
        از طریق ویندوز فایل ایمیج را روی اس دی کارت میریزم (با نرم افزار RUFUS یا Win32Disk imager)
        بعد که عملیات رایت انجام شد، ویندوز دیگه SD کارت را باز نمیکنه و اگه روی درایو SD کلیک کنی میخواد فرمتش کنه
        چطور از طریق ویندوز فایل باینری را بعد از رایت کردن فایل بوت کپی کنم؟

        1. Avatar for Mahdi.h   Mahdi.h   گفت:

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

  8. Avatar for حسین حسین گفت:

    با درود.
    سپاس بابت مطلب خوبتون.
    من مدتی هست درگیر راه اندازی freeRtos با درایورهای این کتابخانه روی f1c100 هستم ولی هنوز موفق نشدم .
    یک پورت مناسب از FreeRtos رو برای این چیپ سراغ دارید؟

    1. Avatar for Mahdi.h   Mahdi.h   گفت:

      سلام
      میتونید از
      https://github.com/RT-Thread/rt-thread
      یا
      https://github.com/xboot/xboot
      استفاده کنید
      من پورتی برای کتابخانه FreeRtos برای این چیپ ندیدم

  9. Avatar for Sora Emad Sora Emad گفت:

    سلام.
    اول خیلی ممنون بابت آموزش عالیتون…
    دوم اینکه… راهی نیست که هر دفه به وجود کامپیوتر برای شروع برنامه‌ی کامپایل شده نیازی نباشه؟ (هنوز spiflash رو امتحان نکردم البته)

    1. Avatar for Mahdi.h   Mahdi.h   گفت:

      spiflash رو که تست کنید همین کار رو انجام میده 🙂

  10. Avatar for مهدی مهدی گفت:

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

    1. Avatar for mohmahdi kolahi mohmahdi kolahi گفت:

      سلام خیلی ممنون.
      من به شخصه این در این رابطه اطلاعی نداشتم ولی حتما نگاه میکنم و نظرم را عرض میکنم در هر صورت خیلی ممنون بابت اطلاعاتتون.

  11. Avatar for سعید سعید گفت:

    سلام مهندس عزیز- ممنون از آموزش عالی شما . سوال اول اینکه در روش بدون ide و MAKE فایل چطور میتونید با ویندوز BIN رو ایجاد کنیم ؟ (بدون IDE) آیا نرم افزار و یا ابزار خاصی داره ؟ ویندوز 8.1
    و اینکه چطور میتونم برای مطرح کردن چند سوال تخصصی با شما ارتباط بگیرم ؟ تلگرام ، واتس اپ و یا حتی ایمیل

    1. Avatar for mohmahdi kolahi mohmahdi kolahi گفت:

      سلام تشکر از باز خوردتون
      فایل make دارای مشخصات کامپایلر لینکر خروجی فایل کامپایلی (.bin) و… است. برای کامپایل و اجرای پروژه حتما باید کامپایلر در جایی مشخص شده بشه (که در اینجا در حقیقت کراس کامپایلر) اگر از ide استفاده میشود حتما در ان مشخص شده. اما روش دیگر ایجاد فایل make است یا اجرای عملیات های داخل make به صورت کامندی که اصلا توصیه نمیشه

  12. Avatar for سپهبد سپهبد گفت:

    سلام و عرض ادب
    اولا تشکر بابت سایت خیلی خوب تون
    به شخصه هر قطعه الکترونیکی بخوام خرید کنم، حتما تو سایت شما جستجو می کنم
    مورد دومی که همیشه ازش بهره برم آموزش های خیلی خوب تون هست که تو سایت منتشر می کنید. از این بابت هم به شخصه خیلی بهره بردم. از جمله همین آموزش که خیلی کاربردی و مفید بود برای من.
    مشتاقانه منتظر ادامه این آموزش هستم. ممنون از آقای محمد کلاهی، نویسنده این متن
    خیلی عالیه سایت تون ?

    1. Avatar for mohmahdi kolahi mohmahdi kolahi گفت:

      سلام و وقت بخیر
      ممنون بابت بازخوردتون
      تاچند روز دیگر انشالله قسمت بعدی آموزش در اختیارتان قرار میگیرد

  13. Avatar for محسن محسن گفت:

    ایا با کورتکس سری A چیپی هست مثل این که خروجی تصویر LCD و انالوگ و ورودی تصویر انالوگ و دیجیتال داشته باشد؟ با فرکانس بالاتر که بشود bare metal راه اندازی کرد؟

    1. Avatar for mohmahdi kolahi mohmahdi kolahi گفت:

      شرکت allwinner ، خیلی از soc های داخل بازار جهانی را تولید میکند.اگر به ویکی خود allwinner مراجعه کنید انواع ان را میبینید.
      من به شخصه چیزی کامل تر و بهتر از لینکی که برای f1c100 پیدا کردم پیدا نکردم ولی برای فرکانس بالاتر و قابلیت هایی که گفتید برای پردازنده h3 این لینک را پیدا کردم ولی https://github.com/mprymek/allwinner-baremetal ولی انرا تست نکردم

  14. Avatar for حسین مرادی حسین مرادی گفت:

    خیلی عالی و مفید بود

    1. Avatar for mohmahdi kolahi mohmahdi kolahi گفت:

      ممنونم امیدوارم مفید واقع شده باشه

  15. Avatar for kave.rafiee kave.rafiee گفت:

    عالی عالی عالی خداقوت

    1. Avatar for mohmahdi kolahi mohmahdi kolahi گفت:

      تشکر باعث قوت قلب هستید

  16. Avatar for علی محمدی علی محمدی گفت:

    بسیار عالی بود

    1. Avatar for mohmahdi kolahi mohmahdi kolahi گفت:

      خیلی ممنون

  17. Avatar for MEYTICOM MEYTICOM گفت:

    مهندس دمت گرم ، لذت بردیم

    1. Avatar for mohmahdi kolahi mohmahdi kolahi گفت:

      خوشحالم که مورد پسند بود ?

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *