เท่าที่ msp430 มันเป็นสถาปัตยกรรมที่ดีเครื่องมือที่ดีออกมามี mspgcc และ mspgcc4 และ llvm สำหรับเรื่องนั้น binutils โดยไม่ต้องปะ คุณจะได้รับ launchpad ราคาต่ำกว่า $ 5 ในราคานั้นซื้อน้อย (ในที่สุดคุณจะก่ออิฐบางสิ่งหรือทำให้มันสั้นลงและละลายลงมีอะไหล่และราคานี้)
ดาวน์โหลดเครื่องมือพวกมันทั้งหมดฟรีเขียนโค้ดไม่กี่บรรทัดเรียนรู้วิธีเชื่อมโยงดูว่าไบนารีใหญ่แค่ไหนรับความรู้สึกสำหรับการฝังตัวบรรทัดของโค้ดเป็นขนาด rom ฯลฯ
ข้อดีทำอย่างไร ทุกอย่างที่คุณจินตนาการได้:
บาง บริษัท มีคำสั่งลงมาจากที่สูงและไม่มีอะไรที่คุณสามารถทำได้เกี่ยวกับมันนอกเหนือจากการเลิก และคุณอาจไม่เคยรู้เลยว่าทำไมถึงเลือกแพลตฟอร์มนั้น
บางครั้งผู้รับเหมา / ลูกค้าคนโปรดกำหนดแพลตฟอร์มบางครั้งคุณสามารถให้ความรู้ / เจรจาบางครั้งไม่ได้
บางคนมีความชื่นชอบกลัวความไม่รู้จักอะไรก็ตาม เหตุผลเดียวกันว่าทำไมบางคนซื้อรถยี่ห้อเดียวทำให้พ่อของฉันทำและพ่อของเขาทำก่อนหน้านั้นและนั่นอาจเป็นเหตุผลทั้งหมด
บางคนมุ่งเน้นไปที่เครื่องมือ ที่นี่อีกครั้งคุณมีคนภักดีแบรนด์ จำกัด ตัวเองให้กับ บริษัท ผู้รวบรวมที่ชื่นชอบของพวกเขาและสิ่งที่พวกเขาสนับสนุนเป้าหมายหรือเครื่องมือโอเพนซอร์สที่ชื่นชอบและสิ่งที่สนับสนุน ระบบปฏิบัติการฝังตัวที่ชื่นชอบและ จำกัด เป้าหมายที่สนับสนุน
ในบางกรณีมันเป็นเรื่องเกี่ยวกับเครื่องมือ แต่ในทางที่แตกต่างกันเมื่อเวลาผ่านไปคุณอาจลงทุนเงินเป็นจำนวนมากในสัญญาการสนับสนุนรายปีกับผู้ขาย (เช่น arm หรือ xilinx หรือ motorola เป็นต้น) และอาจเป็นไปได้ว่าคุณชอบการสนับสนุนของพวกเขา และไม่ต้องการเปลี่ยนหรือปีศาจที่คุณรู้จักดีกว่าปีศาจที่คุณไม่ต้องการ หรืออาจเป็นเพราะโครงการอีก 5 โครงการที่ใช้งานใน บริษัท ใช้สิ่งนี้และเรามีสัญญาการสนับสนุนอยู่แล้วและจะยังคงจ่ายเงินสำหรับปีนั้นหลังจากปีที่แล้วคุณต้องเลือกหนึ่งในผู้ให้บริการโซลูชั่นเหล่านั้น
บางครั้งมันเป็นเรื่องเกี่ยวกับการบันทึก millipennies ส่วนนี้ถูกกว่า 1.5% ทำให้ส่วนนี้ใช้งานได้อย่ากังวลกับ NRE คิดถึงการประหยัดปริมาณการผลิต
บางครั้งมันเป็นเรื่องเกี่ยวกับเชิงลบ ผู้ขายรายหนึ่งอาจทำให้ บริษัท ของคุณไม่ทางใดก็ทางหนึ่ง ไม่สามารถจัดหาชิ้นส่วนตามที่โฆษณาไว้ทำให้เกิดความล่าช้าหรือยกเลิกผลิตภัณฑ์ของคุณ เหยื่อและสวิตช์หลอกลวง (ค่าธรรมเนียม 50,000 ดอลลาร์สำหรับซอฟต์แวร์ไม่รวมค่าธรรมเนียม $ 1200 สำหรับดองเกิลที่จำเป็นในการปลดล็อคสิทธิ์ใช้งานนั่นเป็นรายการต้นทุนเพิ่มเติมโอ้และนั่นคือต่อผู้ใช้สำหรับสิทธิ์การใช้งานแบบลอยตัว) เมื่อคุณลงนามใน NDA เพื่อดูคู่มืออ้างอิงโปรแกรมเมอร์หรือคำแนะนำการออกแบบอ้างอิงคุณจะพบว่าวิศวกรรมของพวกเขาน่ากลัวแค่ไหนและคุณอาจเลือกที่จะขึ้นบัญชีดำผลิตภัณฑ์ทั้งหมดของพวกเขาไปตลอดชีวิต ประวัติศาสตร์ที่ผ่านมาด้วยการสนับสนุนเทคโนโลยีที่น่ากลัว ด้วยเหตุผลหลายประการที่อาจทำให้คุณไม่อนุญาตให้พนักงานขายของพวกเขาอยู่หน้าประตูบ้านหรือทำให้คุณไม่เคยดูเว็บไซต์ของพวกเขาอีกเลย
บางครั้งมันเกี่ยวกับประสิทธิภาพอินเตอร์เฟส ฯลฯ ในกรณีที่บอกว่าคุณมีอินเทอร์เฟซแบบ wire-ored และต้องการ pull up, แบรนด์ไมโครคอนโทรลเลอร์ XYZ ราคา $ 3 ต่อส่วนมีชุด I / O พินที่สามารถใช้งานได้ โดยไม่ต้องใช้ฮาร์ดแวร์ภายนอกอื่น ๆ ยี่ห้อ ABC มีส่วน $ 3 ที่จะต้องใช้ทรานซิสเตอร์และตัวต้านทานภายนอกเพื่อให้มันทำงานได้อย่างน้อยที่สุด ตัวอย่างของ msp430 บอกว่ามันเกี่ยวกับการใช้พลังงานส่วน A อาจต้องการให้ผู้ใช้ใช้แบตเตอรี่ AAA หนึ่งก้อนและใช้งานเป็นเวลาหลายเดือนส่วน B อาจต้องใช้แบตเตอรี่ AAA สองก้อนและใช้งานเป็นเวลาหลายสัปดาห์
กรณีที่หายากที่สุดคือการทำวิศวกรรมสำรวจผู้ขายทั้งหมดทำคณิตศาสตร์การใช้พลังงานราคาต่อหน่วยของคณิตศาสตร์ผลิตภัณฑ์ของคุณเราต้องการรอมขนาดใหญ่เท่าไรและความถี่ในการรันชิปที่เท่าใด ตรรกะของกาวบนและบน โดยปกติแล้วใครบางคน (หัวหน้า / ลูกค้า / วิศวกรอาวุโส) ต้องใช้ประสบการณ์หลายปีและถ่ายจากสะโพก (มักใช้มากกว่าหนึ่งข้อขึ้นไป) เพื่อเลือกเส้นทาง ดำเนินการด้านวิศวกรรมครั้งเดียวเพื่อปรับแต่งแพลตฟอร์มที่เลือก
คำแนะนำส่วนตัวของฉันคือการยืดหยุ่น แบรนด์ / ครอบครัวไมโครคอนโทรลเลอร์ส่วนใหญ่ในบางรูปแบบหรือแฟชั่นสามารถมีได้บนกระดาน eval ภายใต้ $ 50 Sparkfun, olimex หรือส่งตรงจากผู้จำหน่าย (ti สำหรับ msp430 หรือ stellaris เป็นต้น) ลองหนึ่งอย่างหรือมากกว่านั้นรับความรู้สึกกับสิ่งที่เหมือนกันและอะไรที่แตกต่างกันเครื่องมือตัวตักวิธียากที่จะคลาย ฯลฯ คุณจะได้รับสองสิ่งจากนี้เป็นอย่างน้อยหนึ่งคือเมื่อคุณถูกบังคับให้ลงทาง จากที่สูงหรือลูกค้าคุณสามารถกดปุ่มกราวด์ที่สองคือเมื่อถึงเวลาที่คุณจะเลือกแพลตฟอร์มคุณจะได้รับการศึกษาที่ดีขึ้นในสิ่งที่เป็นและไม่ได้อยู่ที่นั่นและสามารถเลือกแพลตฟอร์มที่เหมาะสม (คำที่โหลด) ตามปัญหา ได้รับการแก้ไข
แม้ว่าคุณจะไม่ได้หรือไม่ออกไปข้างนอกและใช้เงินในฮาร์ดแวร์ส่วนใหญ่มีเครื่องมือที่คุณสามารถดาวน์โหลด (ฟรี) ในกรณีเช่นไมโครชิพตอนนี้คุณสามารถรับคอมไพเลอร์ C (เคยเป็นไฮเทค) แต่ ต้องสมัครสมาชิก (ให้ที่อยู่อีเมลของคุณ) gcc ชอบหรือเกลียดมันจะเป็นในอนาคตเดสก์ทอปหรือฝังมือของคุณสกปรกและเรียนรู้ที่จะใช้มันเป็นคอมไพเลอร์ข้าม ลองใช้ llvm ด้วยเช่นกันมันจะอยู่พักหนึ่งและให้ gcc มีการแข่งขันที่รุนแรง อย่างไรก็ตามเขียนหรือค้นหา emulators บางอย่าง mame มีจำนวนมาก gdb มีบางอย่าง ฯลฯ ฉันได้เขียนหนึ่งที่เรียกว่า thumbulator ที่ github โหมด ARM thumb เท่านั้นคล้ายกับ cortex-m3 ยกเว้นฉันไม่รองรับ thumb2 (ยังคงเรียนรู้ได้ไม่มากนัก และให้โปรแกรมทำงานบนทั้งคู่ก่อนที่คุณจะเปลี่ยนเป็นฮาร์ดแวร์เท่านั้น) ฉันตีตัวจำลอง msp430 ขึ้นมา แต่ก็ติดขัดอยู่ดี ชุดการเรียนการสอนมีขนาดเล็กมากว่างานเป็นตอนเย็นหรืออาจเป็นโครงการวันเสาร์ เช่นเดียวกันสำหรับ PIC ช่วงบ่ายที่ยาวนานและคุณมีชุดคำสั่งจำลองที่จะฝึกการฝังตัว หากไม่มีอะไรอีกคุณสามารถเขียนโปรแกรมรวบรวมและเชื่อมโยงเพื่อทำความเข้าใจกับวิธีการทำและขนาดของโปรแกรมที่มีขนาดใหญ่ขึ้นวิธีปรับแต่งโปรแกรมเพื่อสร้างรหัสที่เข้มงวดมากขึ้นเป็นต้น
เท่าที่ชุดประกอบ C กับชุดคำสั่งบางชุดเป็นมิตรกับ C และบางชุดไม่ คอมไพเลอร์บางตัวมีขนาดปานกลางและบางตัวก็แย่มากและมีเพียงไม่กี่ตัวเท่านั้นที่ดีจริงๆ เช่นเดียวกับประสิทธิภาพในทุกที่หากคุณต้องการผลักดันมันอย่างแท้จริงการผสมผสานของภาษาระดับสูง (สมมติว่าเป็น C) และแอสเซมเบลอร์อาจจำเป็น ดังนั้นทักษะไม่ได้เขียนแอปพลิเคชันทั้งหมดในแอสเซมเบลอร์ทักษะคือการกำหนดว่าโค้ดใดที่ทำให้คุณไม่ตรงตามเวลา / ประสิทธิภาพแล้วรู้วิธีแก้ปัญหานั้นผ่าน C ตัวเลือกคอมไพเลอร์เลือกคอมไพเลอร์ที่เหมาะสม
ฉันขอแนะนำให้คุณรู้จักแอสเซมเบลอร์สำหรับแพลตฟอร์มทั้งหมดที่คุณเลือกใช้หากไม่มีความรู้อื่นที่สามารถอ่านได้เช่นเดียวกับที่ฝังไว้ฉันแนะนำให้คุณถอดแยกชิ้นส่วนบ่อย ๆ (ในขณะที่หาปัญหาประสิทธิภาพการทำงานของคุณ) หลายแพลตฟอร์มจำเป็นต้องใช้แอสเซมเบลอร์บางตัวหรือต้องการรหัสการบูต
หากคุณต้องการประหยัด 10-20% จากราคาต่อหน่วยและต้องการซื้อไมโครคอนโทรลเลอร์หรือออสซิลเลเตอร์ราคาถูกลงหรือช้าลงหรือส่วนแฟลช 32Kb แทนส่วนแฟลช 64KB และสามารถครอบคลุมต้นทุนการพัฒนาที่มีปริมาณการขายและ อาจเป็นรายการยาว ๆ ของสิ่งอื่น ๆ ที่คุณอาจเลือกที่จะเขียนสิ่งทั้งหมดในแอสเซมเบลอร์เร็วพลังงานต่ำต้นทุนต่ำลูกค้ามีความสุข
ขึ้นอยู่กับพื้นหลังของคุณบางทีคุณไม่ควรกังวลเกี่ยวกับการเขียนในแอสเซมเบลอร์และอาจเกี่ยวกับวิศวกรรมไฟฟ้าที่ฝังอยู่กับไมโครคอนโทรลเลอร์การอ่านแผนงานรู้ว่าอะไรคือ open collector รัฐไตรผลักดัน pwm adc, dac และ รายการคำศัพท์อื่น ๆ ที่ยาวและวิธีใช้ การชนบิต i2c, spi, mdio, dallas one wire, ฯลฯ ใช้ขอบเขตเป็นดีบักเกอร์ซอฟต์แวร์ แม้ว่าขอบเขตสามารถเน้นสิ่งต่าง ๆ ให้กับคุณในวันนี้ (รายการค่าใช้จ่ายเพิ่มเติม) คุณควรจะสามารถใช้ eyeball i2c และ spi และโปรโตคอลอื่น ๆ โดยไม่มีไฮไลต์
ฉันยังแนะนำว่าสำหรับแต่ละแพลตฟอร์มที่คุณเล่นให้ออกจาก sandbox ของคนอื่น (ตัวอย่างเช่นสภาพแวดล้อม IDE / การเขียนโปรแกรม Arduino) เขียนรหัสบูตที่นำโปรเซสเซอร์มารีเซ็ตเป็นโปรแกรม main () ของคุณทำมากเท่าที่คุณสามารถเข้าใจวิธีการโหลด / โปรแกรมแฟลชไปยังจุดที่อาจเกี่ยวข้องกับการเขียนตัวโหลดของคุณเองแม้ว่าจะเป็นชั้นวาง ที่นั่น มันคือทั้งหมดที่เกี่ยวกับการศึกษาส่วนบุคคลยิ่งคุณรู้จักและสามารถดึงออกมาจากกระเป๋าหลังของคุณและใช้การควบคุมมากขึ้นคุณจะมีมากกว่าอาชีพของคุณและศูนย์ที่มากขึ้นในตอนท้ายของจำนวนบนเงินเดือนของคุณ
ไม่ว่าคุณจะทำอะไรอย่าพยายามเรียนรู้ x86 ในฐานะแอสเซมเบลอร์ตัวแรกของคุณบนเดสก์ท็อปเลือกอะไรก็ได้แล้วข้ามคอมไพล์และจำลอง ARM ARM THUMB MSP430, PIC, AVR, แม้กระทั่ง 6502, 8051 x86 ชุดและผลที่ได้รับการ morphed และรูปร่างในหลาย ๆ วิธี microcoded ไม่ใช่ microcoded หลายแกนบนและบน รักษา x86 เป็นภาษาระดับสูงและระบบปฏิบัติการขนาดใหญ่ ใช้สำหรับแก้ไขข้อความและคอมไพเลอร์ของคุณและกำหนดเป้าหมายอย่างอื่น
ขออภัยสำหรับคำตอบยาว ๆ ... หวังว่ามันจะมีประโยชน์