اطلاعیه

Collapse
No announcement yet.

درخواست معرفی کامپایلر c در اندروید برای پروگرام در avr

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    درخواست معرفی کامپایلر c در اندروید برای پروگرام در avr

    سلام دوستان، من دنبال یه نرم افزار مثل arduinodroid میگردم، که بتونه کدهای c برای میکروهای avr رو کامپایل کنه اون هم در محیط اندروید، تا در نهایت فایل hex تولید شده از طریق اون رو با نرم افزار zflasher پروگرام کنم روی میکرو avr، آیا همچین نرم افزاری سراغ دارید؟
    متشکر میشم راهنمایی کنید! ؟؟؟

    #2
    نوشته اصلی توسط Imanasemani نمایش پست ها
    سلام دوستان، من دنبال یه نرم افزار مثل arduinodroid میگردم، که بتونه کدهای c برای میکروهای avr رو کامپایل کنه اون هم در محیط اندروید، تا در نهایت فایل hex تولید شده از طریق اون رو با نرم افزار zflasher پروگرام کنم روی میکرو avr، آیا همچین نرم افزاری سراغ دارید؟
    متشکر میشم راهنمایی کنید! ؟؟؟
    بله، خوشبختانه برای برنامه نویسی، کامپایل کدهای C و تولید فایل hex برای میکروکنترلرهای AVR در محیط اندروید راهکارهای بسیار خوبی وجود دارد. با توجه به اینکه شما برای پروگرام کردن از ZFlasher AVR استفاده می‌کنید، فقط به ابزاری نیاز دارید که کد شما را کامپایل کرده و فایل `.hex` را به شما تحویل دهد.
    برای این کار دو روش اصلی و کاملاً کاربردی در اندروید وجود دارد که در ادامه به شما معرفی می‌کنم:

    ۱. استفاده از نرم‌افزار ArduinoDroid (روش گرافیکی و آسان)
    اگرچه اسم این نرم‌افزار آردوینو است، اما موتور کامپایلر آن بر پایه `avr-gcc` کار می‌کند. شما می‌توانید به جای کدهای آردوینو، کد C خالص AVR (شامل رجیسترها، وقفه ها و...) را داخل آن بنویسید.

    نحوه کار:
    1. نرم‌افزار ArduinoDroid را از گوگل پلی یا بازار دانلود و نصب کنید.
    2. در تنظیمات برنامه (Board)، نوع میکروکنترلر خود (مثلاً ATmega32 یا ATmega8) را انتخاب کنید.
    3. کد C خود را بنویسید (می‌توانید توابع پیش‌فرض آردوینو یعنی `setup` و `loop` را پاک کنید و ساختار استاندارد `int main(void)` را بنویسید).
    4. دکمه Compile(آیکون رعد و برق) را بزنید.
    5. پس از پایان کامپایل، برنامه فایل `.hex` را در پوشه داخلی خود ذخیره می‌کند. معمولاً مسیر ذخیره فایل کامپایل شده در حافظه گوشی شما در پوشه‌ای به نام `ArduinoDroid` و در بخش `build` قرار می‌گیرد که می‌توانید آن را به ZFlasher معرفی کنید.

    ---

    ۲. استفاده از شبیه‌ساز لینوکس Termux (روش حرفه‌ای و دقیقاً مشابه PC)
    این روش به شدت پیشنهاد می‌شود؛ زیرا شما دقیقاً همان ابزار رسمی `avr-gcc` که در ویندوز (مانند Atmel Studio یا CodeVision) استفاده می‌شود را روی گوشی اندرویدی خود نصب می‌کنید. در این روش شما کد را با یک ویرایشگر متن مینویسید و با ترمینال کامپایل می‌کنید.

    مراحل انجام کار:
    1. نرم‌افزار Termux را نصب کنید (بهتر است از فروشگاه F-Droid نصب کنید تا جدیدترین نسخه باشد، نسخه گوگل پلی قدیمی است).
    2. برنامه را باز کرده و برای نصب ابزارهای AVR دستورات زیر را وارد کنید:
    ```bash
    pkg update
    pkg install avr-libc avr-gcc
    ```
    3. برای اینکه Termux به حافظه گوشی شما (برای ذخیره فایل hex) دسترسی داشته باشد، دستور زیر را بزنید و پیام روی صفحه گوشی را Allow کنید:
    ```bash
    termux-setup-storage
    ```
    4. حالا می‌توانید کد C خود را با هر ویرایشگر متنی در گوشی (مثل QuickEdit) بنویسید و مثلاً با نام `main.c` در پوشه دانلودهای گوشی ذخیره کنید.
    5. در Termux به پوشه دانلودها بروید:
    ```bash
    cd ~/storage/downloads
    ```
    6. مرحله کامپایل: برای تبدیل کد C به فایل اجرایی (elf) دستور زیر را بزنید (به جای atmega32 نام میکروی خود را بنویسید):
    ```bash
    avr-gcc -Os -mmcu=atmega32 main.c -o main.elf
    ```
    7. مرحله تولید فایل HEX: حالا فایل elf را به hex تبدیل کنید:
    ```bash
    avr-objcopy -O ihex -R .eeprom main.elf main.hex
    ```

    اکنون فایل `main.hex` به راحتی در پوشه دانلودهای گوشی شما قرار دارد. می‌توانید نرم‌افزار ZFlasher AVR را باز کنید، این فایل را انتخاب کرده و روی میکروکنترلر خود پروگرام کنید.

    پیشنهاد نهایی:
    اگر با محیط خط فرمان (ترمینال) راحت هستید، روش دوم (Termux) فوق‌العاده پایدار، بدون تبلیغات و کاملاً استاندارد است. اما اگر یک محیط یکپارچه (IDE) می‌خواهید که فقط با زدن یک دکمه کار کامپایل انجام شود، ArduinoDroid بهترین گزینه موجود در اندروید است.

    دیدگاه


      #3
      با سلام و احترام خدمت شما بسیار تشکر میکنم از راهنمایی ارزشمند و مفیدتون، بسیار عالی و کاربردی بود!
      در arduino droid متاسفانه میکروها نیستند، بلکه فقط نام بورد های آردوینو هستند! میکروی دلخواه رو در لیست نداره!

      برای کتابخانه های وارد (include) شده در کد هم خودش اقدام میکنه؟ یا باید کتابخانه ها رو در کنار فایل پروژه قرار دهیم؟ یا کار دیگری؟؟؟ باید کرد؟؟
      جدیدترین ویرایش توسط Imanasemani; 2026/04/14, 03:41.

      دیدگاه


        #4
        نوشته اصلی توسط mnbvcxzaqwsx نمایش پست ها

        بله، خوشبختانه برای برنامه نویسی، کامپایل کدهای C و تولید فایل hex برای میکروکنترلرهای AVR در محیط اندروید راهکارهای بسیار خوبی وجود دارد. با توجه به اینکه شما برای پروگرام کردن از ZFlasher AVR استفاده می‌کنید، فقط به ابزاری نیاز دارید که کد شما را کامپایل کرده و فایل `.hex` را به شما تحویل دهد.
        برای این کار دو روش اصلی و کاملاً کاربردی در اندروید وجود دارد که در ادامه به شما معرفی می‌کنم:

        ۱. استفاده از نرم‌افزار ArduinoDroid (روش گرافیکی و آسان)
        اگرچه اسم این نرم‌افزار آردوینو است، اما موتور کامپایلر آن بر پایه `avr-gcc` کار می‌کند. شما می‌توانید به جای کدهای آردوینو، کد C خالص AVR (شامل رجیسترها، وقفه ها و...) را داخل آن بنویسید.

        نحوه کار:
        1. نرم‌افزار ArduinoDroid را از گوگل پلی یا بازار دانلود و نصب کنید.
        2. در تنظیمات برنامه (Board)، نوع میکروکنترلر خود (مثلاً ATmega32 یا ATmega8) را انتخاب کنید.
        3. کد C خود را بنویسید (می‌توانید توابع پیش‌فرض آردوینو یعنی `setup` و `loop` را پاک کنید و ساختار استاندارد `int main(void)` را بنویسید).
        4. دکمه Compile(آیکون رعد و برق) را بزنید.
        5. پس از پایان کامپایل، برنامه فایل `.hex` را در پوشه داخلی خود ذخیره می‌کند. معمولاً مسیر ذخیره فایل کامپایل شده در حافظه گوشی شما در پوشه‌ای به نام `ArduinoDroid` و در بخش `build` قرار می‌گیرد که می‌توانید آن را به ZFlasher معرفی کنید.

        ---

        ۲. استفاده از شبیه‌ساز لینوکس Termux (روش حرفه‌ای و دقیقاً مشابه PC)
        این روش به شدت پیشنهاد می‌شود؛ زیرا شما دقیقاً همان ابزار رسمی `avr-gcc` که در ویندوز (مانند Atmel Studio یا CodeVision) استفاده می‌شود را روی گوشی اندرویدی خود نصب می‌کنید. در این روش شما کد را با یک ویرایشگر متن مینویسید و با ترمینال کامپایل می‌کنید.

        مراحل انجام کار:
        1. نرم‌افزار Termux را نصب کنید (بهتر است از فروشگاه F-Droid نصب کنید تا جدیدترین نسخه باشد، نسخه گوگل پلی قدیمی است).
        2. برنامه را باز کرده و برای نصب ابزارهای AVR دستورات زیر را وارد کنید:
        ```bash
        pkg update
        pkg install avr-libc avr-gcc
        ```
        3. برای اینکه Termux به حافظه گوشی شما (برای ذخیره فایل hex) دسترسی داشته باشد، دستور زیر را بزنید و پیام روی صفحه گوشی را Allow کنید:
        ```bash
        termux-setup-storage
        ```
        4. حالا می‌توانید کد C خود را با هر ویرایشگر متنی در گوشی (مثل QuickEdit) بنویسید و مثلاً با نام `main.c` در پوشه دانلودهای گوشی ذخیره کنید.
        5. در Termux به پوشه دانلودها بروید:
        ```bash
        cd ~/storage/downloads
        ```
        6. مرحله کامپایل: برای تبدیل کد C به فایل اجرایی (elf) دستور زیر را بزنید (به جای atmega32 نام میکروی خود را بنویسید):
        ```bash
        avr-gcc -Os -mmcu=atmega32 main.c -o main.elf
        ```
        7. مرحله تولید فایل HEX: حالا فایل elf را به hex تبدیل کنید:
        ```bash
        avr-objcopy -O ihex -R .eeprom main.elf main.hex
        ```

        اکنون فایل `main.hex` به راحتی در پوشه دانلودهای گوشی شما قرار دارد. می‌توانید نرم‌افزار ZFlasher AVR را باز کنید، این فایل را انتخاب کرده و روی میکروکنترلر خود پروگرام کنید.

        پیشنهاد نهایی:
        اگر با محیط خط فرمان (ترمینال) راحت هستید، روش دوم (Termux) فوق‌العاده پایدار، بدون تبلیغات و کاملاً استاندارد است. اما اگر یک محیط یکپارچه (IDE) می‌خواهید که فقط با زدن یک دکمه کار کامپایل انجام شود، ArduinoDroid بهترین گزینه موجود در اندروید است.
        با سلام و احترام خدمت شما
        بسیار تشکر میکنم از راهنمایی ارزشمند و مفیدتون، بسیار عالی و کاربردی بود!
        در arduino droid متاسفانه میکروها نیستند، بلکه فقط نام بورد های آردوینو هستند! میکروی دلخواه رو در لیست نداره!

        برای کتابخانه های وارد (include) شده در کد هم خودش اقدام میکنه؟ یا باید کتابخانه ها رو در کنار فایل پروژه قرار دهیم؟ یا کار دیگری؟؟؟ باید کرد؟؟​

        دیدگاه


          #5
          به هیچ وجه انجام ندید ، به احتمال زیاد میکروکنترلر را می‌سوزاند یا قفل می‌کند

          دیدگاه

          لطفا صبر کنید...
          X