คำถามติดแท็ก embedded

Embedded หมายถึงระบบฝังตัวซึ่งเกี่ยวข้องกับพื้นที่ต่างๆเช่นการเขียนโปรแกรมไมโครคอนโทรลเลอร์ / DSP เฟิร์มแวร์ระบบเรียลไทม์อินเทอร์เฟซอิเล็กทรอนิกส์ไดรเวอร์ฮาร์ดแวร์การสื่อสารบัสอนุกรมเป็นต้น

23
รวบรวมแอปพลิเคชันสำหรับใช้ในสภาพแวดล้อมที่มีกัมมันตภาพรังสีสูง
เรากำลังรวบรวมโปรแกรมฝัง C / C ++ ที่ถูกนำไปใช้ในอุปกรณ์ป้องกันในสภาพแวดล้อมที่ถล่มด้วยรังสี เรากำลังใช้ GCC และการคอมไพล์ข้ามสำหรับ ARM เมื่อนำไปใช้งานแอปพลิเคชันของเราจะสร้างข้อมูลที่ผิดพลาดและล่มบ่อยกว่าที่เราต้องการ ฮาร์ดแวร์ออกแบบมาสำหรับสภาพแวดล้อมนี้และแอปพลิเคชันของเราทำงานบนแพลตฟอร์มนี้มาหลายปี มีการเปลี่ยนแปลงที่เราสามารถทำกับรหัสของเราหรือการปรับปรุงเวลาคอมไพล์ที่สามารถทำเพื่อระบุ / แก้ไขข้อผิดพลาดที่อ่อนนุ่มและความเสียหายของหน่วยความจำที่เกิดจากเหตุการณ์เดียวพลิกคว่ำ ? นักพัฒนาซอฟต์แวร์รายอื่นประสบความสำเร็จในการลดผลกระทบที่เป็นอันตรายของข้อผิดพลาดที่อ่อนนุ่มในแอพพลิเคชั่นที่ทำงานนานหรือไม่?
1456 c++  c  gcc  embedded  fault-tolerance 

30
การทดสอบหน่วยรหัส C [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน5 ปีที่ผ่านมา ฉันทำงานในระบบฝังตัวในฤดูร้อนนี้เขียนตรง C. เป็นโครงการที่มีอยู่แล้วซึ่ง บริษัท ที่ฉันทำงานเพื่อรับช่วงต่อ ฉันคุ้นเคยกับการเขียนการทดสอบหน่วยใน Java โดยใช้ JUnit แต่เป็นวิธีที่ดีที่สุดในการเขียนการทดสอบหน่วยสำหรับโค้ดที่มีอยู่ มีโครงการใดบ้างที่ทำให้การทดสอบหน่วย C รหัสธรรมดาง่ายเหมือนการทดสอบหน่วยรหัส Java กับ JUnit? ความเข้าใจใด ๆ ที่จะนำไปใช้กับการพัฒนาโดยเฉพาะ (การคอมไพล์ข้ามกับแพลตฟอร์ม arm-linux) จะได้รับการชื่นชมอย่างมาก

30
การเรียงลำดับตัวเลข 1 หลัก 8 หลัก 8 หลักพร้อม RAM 1 MB
ฉันมีคอมพิวเตอร์ที่มี RAM ขนาด 1 MB และไม่มีที่เก็บในตัวเครื่องอื่น ฉันต้องใช้มันเพื่อรับ 1 ล้าน 8 หลักเลขทศนิยมผ่านการเชื่อมต่อ TCP เรียงลำดับแล้วส่งรายการที่เรียงลำดับออกไปผ่านการเชื่อมต่อ TCP อื่น รายการตัวเลขอาจมีซ้ำซึ่งฉันต้องไม่ทิ้ง รหัสจะถูกวางใน ROM ดังนั้นฉันไม่จำเป็นต้องลบขนาดของรหัสของฉันจาก 1 MB ฉันมีรหัสเพื่อขับเคลื่อนพอร์ต Ethernet และจัดการการเชื่อมต่อ TCP / IP และต้องใช้ 2 KB สำหรับข้อมูลสถานะรวมถึงบัฟเฟอร์ 1 KB ผ่านที่รหัสจะอ่านและเขียนข้อมูล มีวิธีแก้ไขปัญหานี้หรือไม่? แหล่งที่มาของคำถามและคำตอบ: slashdot.org cleaton.net

20
ฉันจะทดสอบรหัส Arduino ได้อย่างไร?
ฉันต้องการที่จะสามารถทดสอบโค้ด Arduino ของฉันได้ เป็นการดีที่ฉันจะสามารถเรียกใช้การทดสอบใด ๆ โดยไม่ต้องอัปโหลดรหัสไปยัง Arduino เครื่องมือหรือไลบรารีใดที่สามารถช่วยฉันได้ มีตัวจำลอง Arduino ในการพัฒนาซึ่งอาจมีประโยชน์ แต่ก็ยังไม่พร้อมที่จะใช้งาน AVR Studioจาก Atmel มีตัวจำลองชิปซึ่งอาจมีประโยชน์ แต่ฉันไม่เห็นว่าฉันจะใช้ร่วมกับ Arduino IDE ได้อย่างไร

3
ทำความเข้าใจกับ Linux / proc / id / maps
ฉันพยายามเข้าใจการใช้หน่วยความจำของแอปพลิเคชัน Linux ของฉัน /proc/pid/mapsยูทิลิตี้ / ไฟล์ดูเหมือนว่าจะเป็นทรัพยากรที่ดีสำหรับการมองเห็นรายละเอียด น่าเสียดายที่ฉันไม่เข้าใจคอลัมน์และรายการทั้งหมด รายการ inode 0 ที่ไม่ระบุชื่อหมายความว่าอย่างไร ดูเหมือนว่าจะเป็นเซ็กเมนต์หน่วยความจำขนาดใหญ่กว่า
156 linux  embedded 

13
ตั้งโปรแกรมเครื่องจักรประจำวันได้อย่างไร?
มีการตั้งโปรแกรมเครื่องจักรในชีวิตประจำวัน (ไม่มากคอมพิวเตอร์และอุปกรณ์มือถือเป็นเครื่องใช้นาฬิกาดิจิตอล ฯลฯ ) เป็นอย่างไร โค้ดประเภทใดที่ใช้ในการเขียนโปรแกรมของเครื่องจำหน่าย Coca-Cola เครื่องชงกาแฟของฉันยอมรับเวลาที่ตั้งโปรแกรมไว้ล่วงหน้าอย่างไรและเริ่มต้มกาแฟชั่วโมงต่อมาเมื่อถึงเวลานั้น เครื่องประเภทนี้มีระบบปฏิบัติการอยู่ภายในหรือไม่หรือเป็นสิ่งที่พื้นฐานกว่านี้หรือไม่ พวกเขาเขียนใน Assembly, C หรือภาษาอื่น ๆ บ้างไหม? และฉันต้องการค้นหาทรัพยากรบางอย่างที่แสดงรายการระบบปฏิบัติการเหล่านี้หรือระบบโค้ดพื้นฐานอาจเป็นไปได้ว่ามีซอร์สโค้ดถ้าเป็นไปได้ ถ้าใครรู้เกี่ยวกับทรัพยากรเช่นนั้น (การค้นหาไม่ได้ผลอะไรเลยสำหรับฉัน) นั่นจะยอดเยี่ยมมาก

16
คุณใช้คลาสใน C อย่างไร [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน12 เดือนที่ผ่านมา ปรับปรุงคำถามนี้ สมมติว่าฉันต้องใช้ C (ไม่มี C ++ หรือคอมไพเลอร์เชิงวัตถุ) และฉันไม่มีการจัดสรรหน่วยความจำแบบไดนามิกเทคนิคอะไรบ้างที่ฉันสามารถใช้ในการใช้คลาสหรือการประมาณคลาสที่ดี? เป็นความคิดที่ดีหรือไม่ที่จะแยก "class" เป็นไฟล์แยกต่างหาก? สมมติว่าเราสามารถจัดสรรหน่วยความจำล่วงหน้าโดยสมมติว่ามีอินสแตนซ์จำนวนคงที่หรือกำหนดการอ้างอิงไปยังแต่ละวัตถุเป็นค่าคงที่ก่อนเวลารวบรวม อย่าลังเลที่จะตั้งสมมติฐานเกี่ยวกับแนวคิดของ OOP ที่ฉันจะต้องนำไปใช้ (จะแตกต่างกัน) และแนะนำวิธีที่ดีที่สุดสำหรับแต่ละข้อ ข้อ จำกัด: ฉันต้องใช้ C และไม่ใช่ OOP เพราะฉันกำลังเขียนรหัสสำหรับระบบฝังตัวและคอมไพเลอร์และฐานรหัสที่มีอยู่ก่อนหน้านี้อยู่ใน C ไม่มีการจัดสรรหน่วยความจำแบบไดนามิกเพราะเรามีหน่วยความจำไม่เพียงพอที่จะสันนิษฐานว่าเราจะไม่หมดถ้าเราเริ่มการจัดสรรแบบไดนามิก คอมไพเลอร์ที่เราทำงานด้วยไม่มีปัญหากับพอยน์เตอร์ของฟังก์ชัน
139 c  class  oop  embedded 

13
CRC เหมาะสมกว่าที่จะใช้เมื่อใดมากกว่า MD5 / SHA1?
เมื่อใดจึงเหมาะสมที่จะใช้ CRC ในการตรวจจับข้อผิดพลาดเทียบกับฟังก์ชันการแฮชที่ทันสมัยกว่าเช่น MD5 หรือ SHA1 ก่อนหน้านี้ใช้งานง่ายกว่าบนฮาร์ดแวร์ฝังตัวหรือไม่?
130 hash  embedded  crc 

15
ค้นหาได้อย่างรวดเร็วว่ามีค่าอยู่ในอาร์เรย์ C หรือไม่
ฉันมีแอปพลิเคชั่นฝังตัวที่มี ISR ที่สำคัญตามเวลาซึ่งจำเป็นต้องวนซ้ำผ่านอาร์เรย์ขนาด 256 (ควรเป็น 1024 แต่ 256 เป็นค่าต่ำสุด) และตรวจสอบว่าค่าตรงกับเนื้อหาอาร์เรย์หรือไม่ A boolจะถูกตั้งค่าเป็นจริงในกรณีนี้ ไมโครคอนโทรลเลอร์คือ NXP LPC4357 แกน ARM Cortex M4 และคอมไพเลอร์คือ GCC ฉันได้รวมการเพิ่มประสิทธิภาพระดับ 2 ไว้แล้ว (3 ช้ากว่า) และวางฟังก์ชันใน RAM แทนแฟลช ฉันยังใช้เลขคณิตตัวชี้และการforวนซ้ำซึ่งทำการนับลงแทนการขึ้น (ตรวจสอบว่าi!=0เร็วกว่าการตรวจสอบว่าi<256) สรุปแล้วฉันจบลงด้วยระยะเวลา 12.5 ซึ่งจะต้องลดลงอย่างมากเพื่อให้เป็นไปได้ นี่คือรหัส (หลอก) ที่ฉันใช้ตอนนี้: uint32_t i; uint32_t *array_ptr = &theArray[0]; uint32_t compareVal = 0x1234ABCD; bool validFlag = …

12
ขนาดรวมของเนื้อหาของไฟล์ทั้งหมดในไดเร็กทอรี [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน2 ปีที่ผ่านมา ปรับปรุงคำถามนี้ เมื่อฉันใช้lsหรือduฉันได้รับจำนวนเนื้อที่ดิสก์ที่แต่ละไฟล์ครอบครองอยู่ ฉันต้องการผลรวมของข้อมูลทั้งหมดในไฟล์และไดเร็กทอรีย่อยที่ฉันจะได้รับถ้าฉันเปิดแต่ละไฟล์และนับจำนวนไบต์ คะแนนโบนัสหากฉันสามารถรับสิ่งนี้ได้โดยไม่ต้องเปิดแต่ละไฟล์และนับ
103 linux  embedded  shell 

10
ความแตกต่างระหว่าง const และ const ผันผวน
หากเราประกาศตัวแปรvolatileทุกครั้งที่มีการอัปเดตค่าใหม่ หากเราประกาศตัวแปรเป็นconstค่าของตัวแปรนั้นจะไม่มีการเปลี่ยนแปลง แล้วconst volatile int temp; อะไรคือการใช้ประกาศตัวแปรtempตามข้างบน? จะเกิดอะไรขึ้นถ้าเราประกาศเป็นconst int temp?
90 c  embedded 

1
การใช้ C ++ AtomicInt นี้ถูกต้องหรือไม่
สถานที่ตั้ง: ผมทำงานกับ ARM ฝังตัว (เกือบเปลือยโลหะ) สภาพแวดล้อมที่ฉันไม่ได้มี C ++ 11 (กับstd::atomic<int>) ใช้ได้ดังนั้นโปรดหลีกเลี่ยงคำตอบเช่น " เพียงแค่ใช้มาตรฐาน C ++std::atomic<int> " ฉันไม่สามารถ การใช้งาน AtomicInt ARM นี้ถูกต้องหรือไม่ (ถือว่าสถาปัตยกรรม ARM คือARMv7-A ) คุณเห็นปัญหาการซิงโครไนซ์บ้างไหม? มันvolatileจำเป็น / มีประโยชน์หรือไม่? // File: atomic_int.h #ifndef ATOMIC_INT_H_ #define ATOMIC_INT_H_ #include <stdint.h> class AtomicInt { public: AtomicInt(int32_t init = 0) : atom(init) { } …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.