ฉันได้เขียนตัวอย่างโลหะหลายแกนที่เปลือยเปล่า
รหัสแผนภาพวงจรอยู่ที่นี่ - https://github.com/jeffreyantony/multipi/tree/master/Example_01
ในตัวอย่างของฉันมี LED 3 ดวงเชื่อมต่อกับ GPIO ของราสเบอร์รี่ Pi ราสเบอร์รี่ Pi 2 มีทั้งหมด 4 คอร์แต่ละคอร์ได้รับมอบหมายให้กระพริบ LED ที่สอดคล้องกัน
ฉันเขียนที่อยู่ของรหัสที่จะดำเนินการโดยแต่ละแกนในที่อยู่ด้านล่าง 0x4000009C สำหรับแกน 1 0x400000AC สำหรับแกน 2 0x400000BC สำหรับแกน 3
หลังจากรวบรวมรหัสเฉพาะ LED ที่กำหนดให้กับคอร์ 1 เท่านั้นที่จะกระพริบ (ตามตัวอย่างนี้คือ LED สีเหลือง) คนอื่นไม่ได้
ซึ่งหมายความว่ารหัสสำหรับ Core 2 และ 3 ไม่ทำงาน (เนื่องจาก LED อื่นไม่กะพริบ) ฉันก็พบว่ารหัสหลังจากที่เริ่มต้นแกนทั้งหมดก็ยังไม่ทำงานเช่น core0_submain () - ฟังก์ชั่นนี้ควรกระพริบ ACT ACT บน Raspberry Pi
ใครช่วยให้ฉันรู้ว่าปัญหาคืออะไร? เป็นเพราะคอร์ทั้ง 4 พยายามที่จะเขียนลงทะเบียน GPIO เดียวกันและ Core 1 เท่านั้นที่ชนะในการเขียนหรือไม่
ฉันพยายามเพิ่ม " attribute ((naked));" สำหรับ core0_submain () แต่ไม่มีประโยชน์
ฉันใช้ toolchain จากhttps://launchpad.net/gcc-arm-embedded
รหัสอีกครั้ง - https://github.com/jeffreyantony/multipi/blob/master/Example_01/main.c
makefile - https://github.com/jeffreyantony/multipi/blob/master/Example_01/Makefile
อัปเดต 20 ต.ค. 2558 : ฉันได้เพิ่มการสนับสนุนสำหรับ JTAG แต่ไม่ประสบความสำเร็จในการรับส่วนต่อการดีบัก
อัปเดต 25 ต.ค. 2558 : ปัญหาได้รับการแก้ไข ดูคำตอบ