วิธีที่ถูกที่สุดแน่นอน (ง่าย) ในการเริ่มโปรแกรมมิงบนไมโครคอนโทรลเลอร์ ARM [ปิด]


18

ฉันต้องการเริ่มใช้ตัวประมวลผล ARM ย้ายจากรูปที่ฉันใช้มานานเกินไป รุ่น 8 บิตมีราคาต่ำกว่า $ 1 โปรแกรมเมอร์ราคาต่ำกว่า $ 10 และฉันเสียไปเพราะความง่ายและค่าใช้จ่ายต่ำในการเริ่มต้น แต่เมื่อเห็นว่ากำลังของพวกเขานั้นถูกแคระโดยชิป ARM บางตัวในราคาเดียวกันและด้วยความเบื่อหน่ายกับซอฟต์แวร์แบบโอเพ่นซอร์สฉันต้องการสร้างสวิตช์ขึ้นมา

ฉันอยากจะหลีกเลี่ยงการพัฒนาบอร์ดใด ๆ และแทนที่จะตรงเข้าไปในมันด้วย pcb ทั่วไปราคาถูก ($ 1) และในเขียงหั่นขนมที่ใช้ส่วนประกอบภายนอกใด ๆ ก็ตามที่จำเป็นต่อการทำมัน

ตัวเลือกของฉันสำหรับการเขียนโปรแกรมชิป ARM ด้วยวิธีนี้คืออะไร? มีโปรแกรมเมอร์เช่น PICKit2 ที่ใช้ USB เพื่อเชื่อมต่อกับพีซีเขียนโปรแกรมผ่านการเชื่อมต่อแบบอนุกรม (เช่น ICSP) กับชิปหรือไม่ ต้องการการตั้งค่าที่แตกต่างกันมากแค่ไหนสำหรับ ARM manufacturs รุ่น ARM และชิปแต่ละตัว (ST, Atmel ... ) เช่นผู้ผลิตแต่ละรายต้องการคอมไพเลอร์โปรแกรมเมอร์โปรแกรมเมอร์ IDE ฯลฯ หรือไม่? หรือมีเครื่องมือทั่วไปสำหรับทุกคนหรือไม่

แก้ไข: เอาล่ะดังนั้นหลังจากการวิจัยเพิ่มเติมฉันเชื่อว่าฉันมีวิธีแก้ปัญหาที่ค่อนข้างถูกบอร์ด stm32 dev สามารถกระพริบด้วยเฟิร์มแวร์ DAPLINK ได้ แต่ฉันไม่เชื่อว่าเฟิร์มแวร์ github อย่างเป็นทางการจะใช้งานได้จริง (ทั้งหมดนี้เป็นการเก็งกำไร รับ stm32 dev บอร์ดของฉันในจดหมาย) แต่ฉันพบว่าบอร์ด daplink_usb ที่มาพร้อมกับ readbear mk20 กำลังใช้ชิป stm32 พวกเขาได้ปล่อยเฟิร์มแวร์ซึ่งจำเป็นต้องมีการเปลี่ยนบรรทัดเพื่อให้เข้ากันได้กับคริสตัล 8mhz (รายละเอียดในฟอรัมเชื่อมโยงด้านล่าง) มิฉะนั้นเปลี่ยนคริสตัลด้วย 16 เมกะเฮิร์ตซ์หนึ่ง ไม่อัปเดตเมื่อฉันยืนยันสิ่งนี้เมื่อชุด dev ของฉันมาถึง

GITHUB REPO

ดี Forum ทรัพยากรที่นี่

Redbear Github ส้อม


4
มันเป็นการดีที่จะรู้ว่า $ 5 ทำให้คุณได้ราสเบอร์รี่ Pi Zero ซึ่งได้รับการสนับสนุนโดย GCC ปกติ (และฟรี!) และถ้าคุณตกใจมากแค่ไหนที่ไมโครคอนโทรลเลอร์ ARM เร็วกว่า RPi ก็จะทำให้คุณตกใจอีกครั้ง IMO ปัญหาหลักคือผู้ผลิต ARM ไม่เข้าใจข้อความภายใต้ RPi คุณจะไม่ได้รับรายได้มากมายจากไมโครคอนโทรลเลอร์ ARM อีกต่อไป แต่มีอีกมากที่ต้องทำโดยการจัดหาโมดูลซีพียูที่พร้อมใช้งาน
MSalters

4
บางครั้งมัน overkill ใช้โมดูล CPU ที่พร้อมใช้งานในแอปพลิเคชันแบบฝัง
Bence Kaulics

3
@MSters, RPI มีขนาดใหญ่ ... ฉันไม่ต้องการความพิเศษที่มาพร้อมกับ ฉันต้องการสิ่งกระดูกเปลือยเปล่าในพื้นที่ขนาดเล็กมากเพื่อการประมวลผลแบบเรียลไทม์ที่รวดเร็ว นอกจากนี้ RPI ใช้พลังงานมากกว่าที่จะยอมรับได้มาก
CL22

3
แน่นอน แต่บอร์ด dev ส่วนใหญ่จะเป็นแบบนั้น แต่หนึ่งในสิ่งที่ยอดเยี่ยมเกี่ยวกับการพัฒนา MCU คือการพัฒนาฮาร์ดแวร์และซอฟต์แวร์สามารถแยกกันได้ถึงจุด
Ignacio Vazquez-Abrams

2
ลองใช้บอร์ด dev ราคาประหยัดซึ่งมาพร้อมกับบริดจ์ USB-SWD ในตัว นี่จะช่วยให้คุณสามารถเข้าถึงคุณสมบัติการดีบักรวมถึงการดาวน์โหลดโค้ด คุณสามารถแยกการเข้าถึง SWD ไปยังเป้าหมายอื่น ๆ ได้เมื่อมันเหมาะสมกับคุณ
Sean Houlihane

คำตอบ:


14

บรรทัด stm32F0 และ stm32L0 มีบอร์ดการค้นหาทำงานอยู่ที่ประมาณ $ 10 และ Keil จะจัดหา IDE ฟังก์ชั่นเต็มรูปแบบสำหรับบรรทัดนี้โดยไม่มีค่าใช้จ่าย

คำแนะนำการติดตั้ง Keil ฟรี pro MDK อยู่ที่นี่

นอกจากนี้ ARM ยังมีแผ่นสีขาวสำหรับการย้ายไปยัง Cortex M3 จาก PIC ซึ่งคุณอาจพบว่ามีประโยชน์


7
+1 แต่ก็น่าสังเกตว่าบอร์ดค้นพบส่วนใหญ่ (ทั้งหมด) มี STLINK ในตัวซึ่งสามารถใช้ในการเขียนโปรแกรมอุปกรณ์แบบสแตนด์อโลนโดยกำหนดค่าจัมเปอร์
Roger Rowland

@RogerRowland - จุดที่ดี ฉันเคยใช้โปรแกรมเมอร์บนบอร์ดสำหรับบอร์ดของตัวเองมาก่อน การค้นพบเป็นสายที่ยอดเยี่ยมโดยทั่วไป ฉันหวังว่าพวกเขาจะมีรูติดตั้ง!
Scott Seidman

คุณจะแนะนำ Nucleo หรือ Discovery หรือไม่ พวกเขาดูเหมือนจะเป็นราคาเดียวกันและทั้งสองคุณลักษณะ ST-LINK
เดวิด

@ David ไม่ได้ใช้นิวคลีโอ แต่ฉันสามารถพูดได้ว่าการค้นพบได้ให้บริการฉันดี ที่จุดราคาที่ได้รับหนึ่งในแต่ละ (แม้ว่าฉันจะไปกับสองค้นพบ!)
สกอตต์ Seidman


7

วิธีที่ง่ายที่สุด - คัดลอก> $ 10K USD สำหรับคอมไพเลอร์ Keil Pro ที่มีฟังก์ชั่นเต็มรูปแบบซื้อตัวดีบัก JLINK ของพวกเขา (อีก $ 1K อาจจะมีราคาถูกกว่าพร้อมข้อ จำกัด บางอย่าง) IAR เป็นความเป็นไปได้ที่มีราคาแพงอีกตัวอย่าง (มีให้สำหรับโปรเซสเซอร์ STM32F7 Cortex M7 ที่ทำงานบนการสาธิต IAR 30 วัน)

วิธีที่ถูกที่สุด - ดาวน์โหลดและติดตั้ง toolchain GCC-ARM + Eclipse (ฟรี) กับปลั๊กอินดีบักเกอร์ของ JLINK รับ JLINK clone ราคา $ 20 หรือมากกว่านั้นซึ่งฉันคิดว่าใช้ได้ดี - ยังไม่ผ่านการทดสอบเพื่อการดีบั๊ก

มีคำแนะนำโดยละเอียดสำหรับหลังในสุทธิอย่างไรก็ตามพวกเขาทำให้สมมติฐานบางอย่าง คาดว่าจะใช้เวลาหนึ่งวันหรือมากกว่านี้ในการทำมันโดยเฉพาะอย่างยิ่งใน Windows อย่าคาดหวังว่าจะสามารถใช้ตัวอย่างมากมายที่มีให้สำหรับ IDE อื่น ๆ โดยไม่ต้องทำงานบางอย่าง น่าประทับใจ toolchain ฟรีสามารถใช้ 'packs' ('ทดลอง' ตอนนี้)

มีระบบอื่น ๆ เช่น Rowley Crossworks (ซึ่งใช้ gcc ฉันเชื่อว่า) ซึ่งเจ็บปวดทางการเงินน้อยกว่า Atmel Studio เป็นอีกหนึ่ง แต่ฉันมีข้อร้องเรียนที่ขมขื่นจากผู้พัฒนาเฟิร์มแวร์ที่มีประสบการณ์มากของฉันเกี่ยวกับเรื่องนี้

หากความต้องการรหัสของคุณน้อยกว่า 32K คุณสามารถใช้ระบบ Keil เดียวกันได้ฟรี (รหัสรุ่น จำกัด ) แต่ระวังเส้นทางการอัพเกรดนั้นง่าย แต่ค่อนข้างแพง ตัวอย่างเช่นจะไม่รวบรวมตัวอย่าง Ethernet อย่างง่ายสำหรับ SAME70 ไม่เป็นไรถ้าคุณเปลี่ยน PICs หรือ AVR ด้วย ARM ต่ำสุด แต่ก็ไม่ได้ยอดเยี่ยมถ้าคุณกำลัง ARM เพราะคุณจำเป็นต้องพูดคุยกับจอ LCD และใช้โปรโตคอลการสื่อสารที่ซับซ้อน (อาจรวมโมดูลที่รวบรวมไว้ล่วงหน้าได้ ขีด จำกัด 32K ฉันไม่ได้ตรวจสอบมุมนั้น)


7

นี่คือสิ่งที่ฉันใช้:

  • STM32F103 "บอร์ดระบบขั้นต่ำ" (ดูเช่นที่นี่ , Cortex-M3 หลัก ) วิ่งบน 3.3V หรือไฟ USB โดยไม่ต้องมีองค์ประกอบภายนอกใด ๆ โคลนมาประมาณ US $ 3 แต่ละ สิ่งนี้เหมาะอย่างยิ่งกับคำขอของคุณที่จะ "เข้าตรงไปกับ pcb ราคาถูกทั่วไปและบนเขียงหั่นขนม"
  • โคลนโปรแกรมเมอร์โปรแกรมเมอร์ ST-Link V2 (ดูเหมือนว่านี้ ) เริ่มต้นที่ประมาณ US $ 2 และรองรับการดีบักบนชิปเช่นกัน
  • EmBitz (เดิมคือ Em :: Blocks) ในฐานะ IDE พร้อมด้วย gcc toolchain, US $ 0
  • CubeMXของ STM เพื่อช่วยในการเริ่มต้นกับโครงการใหม่ US $ 0

5

การเริ่มต้นที่ง่ายที่สุดอาจเป็นหนึ่งในบอร์ดโคลนบุคคลที่สาม ตัวอย่างที่สุ่มจาก ST ต้องมีโปรแกรมเมอร์ที่ใช้โปรโตคอล 'SWD' ST สร้างแบรนด์ 'ST-LINK' ฉันไม่แน่ใจว่าคุณต้องใช้อุปกรณ์ ST-LINK กับอุปกรณ์ ST หรือถ้าเป็นเรื่องทั่วไป

การรวมกันของ SWD และ JTAG มีบทบาทของ ICSP ในระบบ ARM ทำให้คุณสามารถเขียนโปรแกรมและแก้ไขข้อบกพร่องได้

ซอฟต์แวร์ฉลาดมักจะสามารถทำงานกับ GCC และ OpenOCD บนชิปส่วนใหญ่ รายละเอียดแตกต่างกันเล็กน้อยสำหรับแต่ละอุปกรณ์ ผู้เชี่ยวชาญมักใช้เครื่องมือห่วงโซ่ Keil ซึ่งมีราคาค่อนข้างแพง

อุปกรณ์บางอย่าง (เช่นชุด Kinetis) มี bootloaders USB: อุปกรณ์ปรากฏเป็นอุปกรณ์เก็บข้อมูลขนาดใหญ่คุณดาวน์โหลดไฟล์ BIN ลงไปแล้วกดปุ่ม วิธีแก้ปัญหาที่ง่ายที่สุดที่ไม่จำเป็นต้องมีโปรแกรมเมอร์ Atmel AT91 มีตัว bootloader USB ที่ใช้งานได้กับโปรโตคอลกรรมสิทธิ์ที่เรียกว่า SAM-BA


บอร์ดค้นพบและบอร์ดนิวคลีโอมี stlink อยู่และราคาต่ำกว่าดองเกิล stlink แบบสแตนด์อโลน 30% รวมทั้งคุณจะได้รับอย่างน้อยหนึ่ง mcu เพื่อเล่นกับ การรับ stlink ยังคงดีและคุณสามารถใช้กับ openocd เพื่อเชื่อมต่อผ่าน swd ไปยังชิพ st หรือชิพนอกอื่น ๆ
old_timer

1
ที่น่าสนใจชิป Kenetisis ฉันพยายามฉันไม่สามารถใช้ (ยัง) เพราะไม่มี bootloader เป็น swd เท่านั้นและจะไม่เชื่อมต่อโดยใช้ stlink ต้องการ cmsis-dap เช่นเดียวกันกับ samd21 ที่ไม่มีตัวโหลดบูทอีกต่อไปคุณสามารถเพิ่มได้ แต่มันเป็นส่วนสำคัญในพื้นที่แฟลชของแอพพลิเคชั่นและค่อนข้างเล็กน้อยที่จะลบโดยไม่ตั้งใจ stm32s ยังมี bootloader เช่นเดียวกับ nxp ซึ่งอาจจะไปด้วย ...
old_timer

3

ด้านหน้า IDE ที่Silicon Labsให้เรียบง่ายสตูดิโอซึ่งจะขึ้นอยู่กับคราส มันมาเป็นมาตรฐานกับ GCC

มีการสนับสนุนในตัวสำหรับชุดเลขหมายทั้งหมดที่พวกเขาขายทำให้การเริ่มต้นค่อนข้างเจ็บปวด

การเขียนโปรแกรมใช้ไดรเวอร์ Segger J-Link สำหรับชุดเลขหมาย (ฟรี) เพียงเชื่อมต่อชุดกับ USB และไป

Atmel มีStudioซึ่งใช้ Visual Studio IDE และสามารถเชื่อมต่อกับ debugers Atmel ใด ๆ สิ่งนี้ยังมาพร้อมกับ GCC

ผู้ขายทั้งสองมีตัวอย่างมากมาย (มากมาย) เพื่อขับเคลื่อนอุปกรณ์ของพวกเขา

ฉันใช้ทั้งคู่และถึงแม้ว่าเอกสารจะไม่สมบูรณ์แบบ (ไม่เคยเป็น) มันก็เพียงพอแล้วที่จะทำให้ฉันค่อนข้างลำบาก

ชุดคิท ST หลายอัน (และอื่น ๆ ) เปิดใช้งานmbedแล้ว


2

Cypress ทำบอร์ด breakout ที่ใช้ PSOC-4200 (ARM Cortex M0) พร้อมด้วยฟอร์มแฟคเตอร์ DIP-40 ที่รวมอะแดปเตอร์การเขียนโปรแกรมที่ใช้ USB ในส่วนการแยก ราคาสำหรับคณะกรรมการฝ่าวงล้อมและอะแดปเตอร์การเขียนโปรแกรม (ถอดออกได้) ที่แนบมานั้นเป็นราคา $ 3.99 จาก Digi-Key


1

ฉันจะแนะนำCooCox - เป็นชุดเดียวกันกับ GCC + Eclipse แต่ไม่จำเป็นต้องกำหนดค่า Toolchain ด้วยตนเองเพียงแค่ติดตั้งและเริ่มการเข้ารหัส


ดูดีฉันเดาว่า Atmel ไม่รองรับ สนับสนุน ST M7 core หรือไม่
Spehro Pefhany

Seems Atmel ไม่ได้รับการสนับสนุนมีบางไลบรารีสำหรับชุด STM32F7 ในส่วนประกอบ ต้องบอกว่าอนาคตของ CoIDE นั้นไม่ชัดเจน - เว็บไซต์มีความยุ่งเหยิงการอัปเดตเป็นของหายากในขณะนี้ แต่ก็ยังเป็นทางเลือกที่ดีสำหรับการเริ่มต้นด้วยการเขียนโปรแกรม ARM (โดยเฉพาะกับ STM32)
Flanker

1

ในความเชื่อของฉัน TI, NXP (ประกอบด้วย NXP + Freescale) & ST เป็นผู้มีบทบาทสำคัญใน Cortex M world โดยเฉพาะ ST และ NXP มีเครื่องมือในการแข่งขันสำหรับผู้มาใหม่จริง ๆ พารามิเตอร์ที่สำคัญอีกอย่างหนึ่งคือความนิยมในชุมชนโอเพ่นซอร์ส บทเรียน, ห้องสมุด, ไดรเวอร์อุปกรณ์, เครื่องมือและอื่น ๆ

จากนั้น:

  1. mbed คอมไพเลอร์ออนไลน์ + กระดาน mbed
  2. บอร์ดค้นพบ STM32 (เช่น STM32F407discovery) + สร้างขึ้นในตัวดีบัก st-link + SPL หรือกรอบ HAL (STM CUBE) + IDE ใบอนุญาต keil ฟรี
  3. LPC Discovery board + LPC-link 2 ดีบักเกอร์ + กรอบ LPCOPEN + IDE สิทธิ์การใช้งาน LPCXPRESSO ฟรี

หมายเลข 2 และ 3 เป็นตัวเลือกที่ดีกว่าสำหรับระดับสูงกว่างานอดิเรก อย่าลืมใช้เครื่องมือระดับมืออาชีพฟรีเช่น IAR, Keil หรือแม้แต่ LPCXPRESSO คุณจะมีอาการปวดน้อยลงในขณะที่ย้ายไปยังพื้นที่มืออาชีพ


1
ห้องสมุด mcu ของ ARM และ toolchain คือmbed- ดู [ developer.mbed.org] [developer.mbed.org]
Sean Houlihane
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.