আরডুইনো আইডিই ছাড়া আরডুইনোর জন্য প্রোগ্রামিং .. তবে প্রদত্ত লাইব্রেরি দিয়ে?


10

আমি সম্প্রতি আমার আরডুইনো ব্যবহার করে একটি নতুন প্রকল্প শুরু করেছি যা কিছু সময়ের জন্য ধূলিকণা সংগ্রহ করছে। শারীরিক বোর্ডের সাথে ধুলো সংগ্রহ করছে, আমার অ্যাভিআর-জিসিসি এবং আরডুইনো লাইব্রেরিগুলির অনুলিপিও রয়েছে। আমি অ্যাভিআর-জিসিসি আপডেট করা পরিচালনা করতে পারি, তবে আমি কীভাবে আরডুইনো লাইব্রেরিগুলি সংকলন করেছি তা মনে করতে পারছি না। আরডুইনো উত্সের সাথে তালিকাভুক্ত উত্স ফাইল এবং এ জাতীয় রয়েছে, তবে লাইব্রেরিটি নির্মাণের জন্য কোনও মেকফাইল (যা আমি দেখতে পাচ্ছি)। আমি আইডিই তৈরির বিষয়ে চিন্তা করি না, আমি কেবল বাইনারি ফর্ম্যাটে লাইব্রেরি এবং আমার যে হেডার ফাইলগুলি দরকার তা চাই। এটি করার জন্য কোনও ডকুমেন্টেশন বা এ জাতীয় কিছু আছে কি?

আমি আরডুইনো আইডিই ব্যবহার করতে চাই না, আমি আমার নিজের পাঠ্য সম্পাদক এবং একটি মেকফাইল ব্যবহার পছন্দ করি।


1
এটি আপনার পক্ষে সহায়ক হতে পারে।
আর্মনব

1
@arminb bleaklow.com/2010/06/04/a_makefile_for_arduino_sketches.html এর চেয়ে আরও কার্যকর হবে। আপনার লিঙ্কটি কমান্ড লাইন থেকে স্কেচগুলি তৈরি করার একটি উপায় দেয়, আরডুইনো লাইব্রেরি তৈরির উপায় নয়। অপ্রাসঙ্গিক
যেভাবেই হোক না


@ জিপ্পি আমি এটি দেখেছি (যখন জিজ্ঞাসা করা হয়নি তবে সম্প্রতি এটি পুনর্বিবেচনা করার সময়) তবে আপনাকে আরডুইনো আইডিই ইনস্টল করতে হবে তা এই সত্যের দ্বারা বন্ধ করে দেওয়া হয়েছিল। ধরণের উদ্দেশ্যকে পরাস্ত করে
আর্লজ

উত্তর:


9

আমি একটি কাস্টম বিল্ড সিস্টেম (রুবি ব্যবহার করে) দিয়ে একটি ছোট্ট প্রকল্প তৈরি করেছি যা আরডুইনো আইডিই ইনস্টল না করে এটি বেশ সহজ করে তোলে। মূলত, এটি একটি টেমপ্লেট মেকফিল এবং একটি রুবি স্ক্রিপ্ট ব্যবহার করে আরডুইনো লাইব্রেরিগুলি অত্যন্ত সহজ করে তোলে। আপনি এটি https://github.com/Earlz/make-wering এ দেখতে পারেন

তবে আপনার নিজের ঘূর্ণায়মান সম্পর্কিত তথ্যের জন্য আমি পুরানো উত্তরটি এখানে রেখে দিচ্ছি। এটি বেশ জটিল এবং বিরক্তিকর যদিও:

গতিপথ:

  1. আরডুইনো আইডিই উত্স কোডের একটি অনুলিপি ডাউনলোড করুন
  2. hardware/arduino/cores/arduinoনতুন ডিরেক্টরিতে বিষয়বস্তু অনুলিপি করুন আমি arduino_build হিসাবে উল্লেখ করব
  3. আরডুইনো-বিল্ডে যে কোনও আরডুইনো pins_arduino.hরূপটি আপনার ফাইল থেকে অনুলিপি করুন hardware/arduino/variants(বোর্ড নিশ্চিত করুন না যদি বোর্ডগুলি পরীক্ষা করুন)
  4. আরডুইনো_বিল্ডে এই মেকফিলটি যুক্ত করুন:

#BSD licensed, see http://lastyearswishes.com/static/Makefile for full license

HDRS = Arduino.h binary.h Client.h HardwareSerial.h IPAddress.h new.h pins_arduino.h Platform.h Printable.h Print.h \
    Server.h Stream.h Udp.h USBAPI.h USBCore.h USBDesc.h WCharacter.h wiring_private.h WString.h


OBJS = WInterrupts.o wiring_analog.o wiring.o wiring_digital.o wiring_pulse.o wiring_shift.o CDC.o HardwareSerial.o \
    HID.o IPAddress.o main.o new.o Print.o Stream.o Tone.o USBCore.o WMath.o WString.o

#may need to adjust -mmcu if you have an older atmega168
#may also need to adjust F_CPU if your clock isn't set to 16Mhz
CFLAGS = -I./ -std=gnu99  -DF_CPU=16000000UL -Os -mmcu=atmega328p
CPPFLAGS = -I./ -DF_CPU=16000000UL -Os -mmcu=atmega328p

CC=avr-gcc
CPP=avr-g++
AR=avr-ar


default: libarduino.a

libarduino.a:   ${OBJS}
    ${AR} crs libarduino.a $(OBJS)

.c.o: ${HDRS}
    ${CC} ${CFLAGS} -c $*.c

.cpp.o: ${HDRS}
    ${CPP} ${CPPFLAGS} -c $*.cpp

clean:
    rm -f ${OBJS} core a.out errs

install: libarduino.a
    mkdir -p ${PREFIX}/lib
    mkdir -p ${PREFIX}/include
    cp *.h ${PREFIX}/include
    cp *.a ${PREFIX}/lib

এবং তারপর শুধু চালান

make
make install PREFIX=/usr/arduino (or whatever)

এবং তারপরে সংকলিত গ্রন্থাগারগুলির ব্যবহার করতে এবং আপনি এই জাতীয় সরল মেকফিল ব্যবহার করতে পারেন:

default:
    avr-g++ -L/usr/arduino/lib -I/usr/arduino/include -Wall -DF_CPU=16000000UL -Os -mmcu=atmega328p -o main.elf main.c -larduino
    avr-objcopy -O ihex -R .eeprom main.elf out.hex
upload:
    avrdude -c arduino -p m328p -b 57600 -P /dev/ttyUSB0 -U flash:w:out.hex

all: default upload

এছাড়াও, আপনি যদি লাইব্রেরিগুলি সংকলন করার চেষ্টা করেন libraries/তবে আপনি যদি সঠিক ক্রমে কিছু না করেন তবে আপনি একটি লিঙ্কার ত্রুটি পাবেন। উদাহরণস্বরূপ, সফটওয়্যারশিরিল ব্যবহার করার জন্য আমাকে এটি করতে হয়েছিল:

    avr-g++ -L/usr/arduino/lib -I/usr/arduino/include -Wall -DF_CPU=16000000UL -Os -mmcu=atmega328p -o main.elf main.c -lSoftwareSerial -larduino

-larduinoকমান্ড লাইন গত গ্রন্থাগার হতে হবে

যাইহোক, এটি আমার জন্য এটি সঙ্কলনের একটি সহজ সহজ উপায় ছিল। আর্দুনিওর ভবিষ্যতের সংস্করণগুলি প্রকাশিত হওয়ার সাথে সাথে, এই মেকফিলটি মোটামুটি ভবিষ্যত-প্রমাণ হওয়া উচিত, ওবিজেএস এবং এইচডিআরএসে মাত্র কয়েকটি পরিবর্তন প্রয়োজন। এছাড়াও, এই মেকফিলটি বিএসডি মেক এবং জিএনইউ মেক উভয়ের সাথে কাজ করা উচিত

আরও দেখুন আমার উপর এই উত্তরটি সামান্য পরিমার্জিত সংস্করণ ব্লগ একটি সঙ্গে ইতিমধ্যে কম্পাইল বাইনারি লাইব্রেরী (কম্পাইল "মান" pins_arduino.h ব্যবহার করে) করুন।


** সম্পাদনা করুন **

আমি দেখেছি যে লাইব্রেরি বিল্ডিং মেকফাইল এবং প্রতিটি পৃথক প্রকল্প মেকফিল উভয় ক্ষেত্রে নিম্নলিখিত সংকলক অপ্টিমাইজেশন পতাকা যুক্ত করা চূড়ান্ত সংকলিত বাইনারি আকারকে হ্রাস করে। এটি চূড়ান্ত বাইনারি আকারের আইডিইয়ের সাথে তুলনীয় করে তোলে।

-Wl,--gc-sections -ffunction-sections  -fdata-sections  

সুতরাং, লাইব্রেরি বিল্ড মেকফিলের জন্য:

CFLAGS = -I./ -std=gnu99  -DF_CPU=16000000UL -Os -Wl,--gc-sections -ffunction-sections  -fdata-sections -mmcu=atmega328p
CPPFLAGS = -I./ -DF_CPU=16000000UL -Os -Wl,--gc-sections -ffunction-sections  -fdata-sections -mmcu=atmega328p

এবং, প্রতিটি প্রকল্প মেকফিলের জন্য:

avr-g++ -L/usr/arduino/lib -I/usr/arduino/include -Wall -DF_CPU=16000000UL -Os -Wl,--gc-sections -ffunction-sections  -fdata-sections -mmcu=atmega328p -o main.elf main.c -larduino

তথ্যসূত্র: http://arduino.cc/forum/index.php?topic=153186.0


3

যদি আপনি একবার (বা একবার ডিভাইস-টাইপ) আরডুইনো আইডিই ব্যবহার করতে ইচ্ছুক হন তবে এটি একটি স্ট্যাটিক লাইব্রেরি নির্মাণের পাশাপাশি লাইব্রেরির উত্স পাওয়ার সহজতম উপায়। এর পরে আপনি যে উপযুক্ত বিকাশ সরঞ্জামগুলি উপযুক্ত তার ব্যবহার করতে পারেন।

এই আরডুইনো নিবন্ধটি ( উপগ্রহ আইডিইতে চলমান ব্যবহারকারীদের জন্য লিখিত) আর্দুইনো আইডিই সহ একটি স্কেচ সংকলন করে এবং আরডুইনোর অস্থায়ী ডিরেক্টরি থেকে লাইব্রেরিটি পুনরুদ্ধার করে আরডুইনো গ্রন্থাগার তৈরির বর্ণনা দিয়েছে। পৃষ্ঠার প্রায় 1/4 অংশে স্ক্রোল করুন

  1. একটি আরডুইনো আইডিই প্রকল্প থেকে পাঠাগারটি অনুলিপি করা হচ্ছে

0

আপনার যদি কেবল এমন একটি বিল্ড সিস্টেমের প্রয়োজন হয় যা আপনার মাইক্রোকন্ট্রোলার প্রোগ্রামারটিকেও চালিত করতে পারে তবে প্ল্যাটফর্মটি আপনার বন্ধু।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.