ขนาดหน่วยความจำแฟลชในตัวไม่เพียงพอ


11

ฉันกำลังใช้คอนโทรลเลอร์ TM4C1230C3PMI จากเครื่องมือ Texas ในโครงการของฉัน มีแฟลชภายใน 32KB ซึ่งไม่เพียงพอสำหรับแอปพลิเคชันของฉัน ไมโครคอนโทรลเลอร์ขนาดแฟลชที่สูงกว่านั้นมีอยู่ในตลาดซึ่งสามารถใช้ได้ แต่ฉันต้องการไปกับไมโครคอนโทรลเลอร์นี้เท่านั้น ตามความรู้ของฉันภายนอก EEPROM สามารถใช้เพื่อเพิ่มขนาดแฟลชทั้งหมด (หน่วยความจำโปรแกรม)

ความคิดของฉันถูกต้องหรือไม่

ถ้าไม่โปรดแนะนำฉันจะเพิ่มขนาดหน่วยความจำแฟลชทั้งหมดของคอนโทรลเลอร์ได้อย่างไร?


1
โดยทั่วไปแล้ว EEPROM ภายนอกจะใช้สำหรับการจัดเก็บข้อมูลเนื่องจากแฟลชภายในอนุญาตให้ลบ / เขียนรอบน้อยกว่าจากนั้น EEPROM ส่วนใหญ่และสามารถเขียนทับไบต์ได้ สำหรับซีพียูที่มีอินเตอร์เฟสบัสภายนอก (อันที่คุณไม่มี) ก็เป็นไปได้ที่จะเพิ่มหน่วยความจำของโปรแกรมภายนอก (แต่มันซับซ้อนเล็กน้อย ... ) ในทางทฤษฎีมันเป็นไปได้ที่จะเก็บชิ้นส่วนของรหัสใน EEPROM ภายนอกและโหลดรหัสนี้ลงใน RAM เพื่อรันมัน - อย่างไรก็ตามในกรณีส่วนใหญ่สถานการณ์นี้ไม่เหมือนจริง
Martin Rosenau

3
หลายปีก่อน maxim ที่เกี่ยวข้องคือ "ถ้าคุณไม่สามารถทำได้ใน 1K คุณจะไม่สามารถทำได้" ฉันคิดว่ามันฉลาดและคุ้มค่าที่จะคิด แต่ไม่ยอมรับจริงๆ จากนั้น MicroChess มาถึง 1K
user2338816

1
ทำไมคุณไม่บูตโค้ดจากหน่วยความจำภายนอก? มีความทรงจำภายนอกจำนวนมากที่สามารถเชื่อมต่อกับ uC ของคุณ สิ่งนี้จะไม่วางข้อ จำกัด ในแฟลชภายในของคุณเนื่องจากคุณจะทำการบูทโค้ดจากภายนอก
AlphaGoku


คำตอบ:


22

คุณไม่สามารถขยายหน่วยความจำโปรแกรม (แฟลช) TI ผลิตชิปเดียวกันคู่กับแฟลชและ RAM แต่ไม่มีอะไรเปลี่ยนแปลง: TM4C1230D5PMI

หากคุณไม่สามารถใช้ชิปที่มีแฟลชขนาดใหญ่คุณจะต้องลดขนาดรหัสของคุณ:

  • ปิดใช้งานการแก้ไขข้อบกพร่องเช่นprintfฟังก์ชั่นราคาแพง A printfที่รองรับเอาต์พุตแบบ floating point จะตั้งค่าให้คุณกลับมาประมาณ 5KB-10KB
  • ตรวจสอบให้แน่ใจว่าคุณคอมไพล์ด้วยการเปิดใช้งานการปรับให้-Osเหมาะสมที่สุด
  • คอมไพเลอร์ที่ทันสมัยสามารถทำเพิ่มประสิทธิภาพการเชื่อมโยงเวลา (LTO) ด้วย gcc -fltoคุณจะได้รับนี้กับ คุณต้องผ่าน-fltoการรวบรวมและขั้นตอนการเชื่อมโยงสำหรับไฟล์ทั้งหมด โดยทั่วไปจะลดขนาดรหัสที่ผลิตลง 30% -50%

2

คุณอาจได้รับซอฟต์แวร์ที่เล็กที่สุดโดยใช้แอสเซมเบลอร์และภาษาที่ใกล้เคียงซึ่งออกแบบมาเพื่อจุดประสงค์ของคุณ อีกอันหนึ่งคือรหัสเครื่องที่ถูกบีบอัดหากมีรหัสที่เหมือนกันเกือบมาก

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.