के साथ arduino पुस्तकालयों का उपयोग कैसे करूं मैं एवीआर विकास के लिए ग्रहण केप्लर का उपयोग कर रहा हूं। मेरे पास जो कोड है वह सी (ओपन सोर्स) है, और मैंने इसे समायोजित कर लिया है ताकि यह पूरी तरह से चल सके। मेरा लक्ष्य एक अरुडेनो मेगा2560 के रूप में एक एटीमेगा 2560 है। Arduino बोर्ड का उपयोग हार्डवेयर सुविधा के लिए सख्ती से है; हम अधिकांश मूल arduino mega2560 घटकों के साथ एक कस्टम बोर्ड होने के लिए हार्डवेयर विकसित कर रहे हैं।मैं मानक सी कोड
मुझे इस परियोजना के साथ कई पुस्तकालयों का उपयोग करने की आवश्यकता है जो केवल एक ई-पेपर स्क्रीन (देखे गए स्टूडियो से) और नॉर्डिक के बीएलई एनआरएफ 8001 के लिए अरबीनो पुस्तकालयों के रूप में उपलब्ध हैं।
यदि मैं ग्रहण में प्लगइन का उपयोग कर एक नया आर्डिनो प्रोजेक्ट बनाता हूं, तो मैं पूरी तरह से आर्डिनो पुस्तकालयों के परीक्षणों को बना और चला सकता हूं।
जब मैं एक साथ 2 कोड अड्डों को मर्ज करने का प्रयास करता हूं, तो मैं अतिरिक्त आर्डिनो पुस्तकालयों में फ़ंक्शंस को कॉल नहीं कर सकता - अगर मैं उन्हें कॉल करता हूं तो संकलक एक लिंकिंग त्रुटि फेंकता है।
Building target: Virgin2ManualArdInsert.elf
Invoking: AVR C Linker
avr-gcc -Wl,-Map,Virgin2ManualArdInsert.map -mmcu=atmega2560 -o "Virgin2ManualArdInsert.elf" ./avr/adc.o ./avr/eeprom.o ./avr/lcd_and_input.o ./avr/main.o ./avr/strings.o ./avr/unimplemented.o ./avr/usart.o ./aes.o ./baseconv.o ./bignum256.o ./ecdsa.o ./endian.o ./fft.o ./fix16.o ./hash.o ./hmac_sha512.o ./messages.pb.o ./p2sh_addr_gen.o ./pb_decode.o ./pb_encode.o ./pbkdf2.o ./prandom.o ./ripemd160.o ./sha256.o ./statistics.o ./stream_comm.o ./test_helpers.o ./transaction.o ./wallet.o ./xex.o
./avr/main.o: In function `main':
main.c:(.text.startup.main+0xc): undefined reference to `writeEink'
collect2: error: ld returned 1 exit status
makefile:53: recipe for target 'Virgin2ManualArdInsert.elf' failed
make: *** [Virgin2ManualArdInsert.elf] Error 1
एक परीक्षण के रूप में, मैं सिर्फ main.c से eInk.cpp में कॉल "प्रदर्शित करने के लिए लिखने" एक बुनियादी कॉल करने के लिए कोशिश कर रहा हूँ:
extern "C"{
void writeEink()
{
EPAPER.begin(EPD_SIZE); // setup epaper, size
EPAPER.setDirection(DIRNORMAL); // set display direction
eSD.begin(EPD_SIZE);
GT20L16.begin();
// int timer1 = millis();
EPAPER.drawString("testing", 10, 10);
EPAPER.drawNumber(12345, 60, 40);
EPAPER.drawFloat(-1.25, 2, 80, 65);
EPAPER.display(); // use only once
}
arduino से बनाया गया एक स्थिर पुस्तकालय है यहां जाने का रास्ता है? मैंने कोशिश की है (हालांकि ऐसा लगता है कि अधिकांश प्रक्रियाएं पुरानी हैं) और पुस्तकालय लिंक/कॉल नहीं करना चाहते हैं।
मेरे सी कोड में सी ++/Arduino कॉल सहित सही प्रक्रिया क्या है? मैंने बाहरी "सी" {फ़ंक्शन()} का उपयोग करने का प्रयास किया है; मेरी .cpp फ़ाइलों और .h फ़ाइलों में लेकिन कोई उपयोग नहीं है।
किसी भी मदद या पॉइंटर्स के लिए धन्यवाद जहां मैं इसे अपने लिए समझ सकता हूं।
_ "कंपाइलर एक लिंकिंग त्रुटि फेंकता है" _ - यह त्रुटि क्या होगी? –
आप gcc विकल्प -Wl का उपयोग कर लिंक त्रुटियों पर विवरणों की जांच कर सकते हैं, - verbose – Mansuro
स्पष्टता के लिए कोड स्निपेट जोड़ा गया। – ThesQuid