Kích thước bộ nhớ flash sẵn có không đủ


11

Tôi đang sử dụng bộ điều khiển TM4C1230C3PMI từ công cụ Texas trong một dự án của tôi. Nó có 32KB flash bên trong, không đủ cho ứng dụng của tôi. Bộ điều khiển vi kích thước flash cao hơn có sẵn trên thị trường có thể được sử dụng nhưng tôi chỉ muốn đi với bộ điều khiển vi mô này. Theo kiến ​​thức của tôi, EEPROM bên ngoài có thể được sử dụng để tăng tổng kích thước flash (Bộ nhớ chương trình).

Là suy nghĩ của tôi là chính xác?

Nếu không xin vui lòng đề nghị làm thế nào tôi có thể tăng tổng kích thước bộ nhớ flash của bộ điều khiển?


1
EEPROM bên ngoài thường được sử dụng để lưu trữ dữ liệu vì Flash bên trong cho phép xóa / ghi chu kỳ ít hơn so với hầu hết các EEPROM và nó có thể được ghi đè lên byte khôn ngoan. Đối với các CPU có giao diện bus ngoài (máy của bạn không có cái này), có thể thêm bộ nhớ chương trình bên ngoài (tuy nhiên điều này hơi phức tạp ...). Về mặt lý thuyết, có thể lưu trữ các đoạn mã trong EEPROM bên ngoài và tải mã này vào RAM để thực thi nó - tuy nhiên trong hầu hết các trường hợp, kịch bản này không thực tế.
Martin Rosenau

3
Nhiều năm trước, một câu châm ngôn có liên quan là "Nếu bạn không thể làm điều đó trong 1K, bạn không thể làm điều đó". Tôi nghĩ rằng nó thông minh và đáng suy nghĩ, nhưng không thực sự chấp nhận nó. Sau đó, MicroChess đã đến 1K.
user2338816

1
Tại sao bạn không khởi động mã từ bộ nhớ ngoài? Có một số bộ nhớ ngoài có thể được giao tiếp với uC của bạn. Điều này sẽ không đặt các ràng buộc trên đèn flash bên trong của bạn vì bạn sẽ khởi động mã bên ngoài.
AkshayImmanuelD 17/03/2016


Câu trả lời:


22

Bạn không thể mở rộng bộ nhớ chương trình (flash). TI sản xuất cùng một chip với gấp đôi flash và RAM, nhưng không có gì thay đổi: TM4C1230D5PMI .

Nếu bạn không thể sử dụng chip có đèn flash lớn hơn, bạn sẽ phải giảm kích thước mã của mình:

  • Vô hiệu hóa gỡ lỗi, chẳng hạn như printfchức năng đắt tiền . Một printfhỗ trợ đầu ra dấu phẩy động thường sẽ đặt bạn trở lại khoảng 5KB-10KB.
  • Hãy chắc chắn rằng bạn biên dịch với kích hoạt tối ưu hóa - thường là cờ trình biên dịch -Os.
  • Trình biên dịch hiện đại có thể thực hiện tối ưu hóa thời gian liên kết (LTO) . Với gcc, bạn có được điều này với -flto. Bạn phải vượt qua -fltocả giai đoạn biên dịch và liên kết, cho tất cả các tệp. Điều này thường làm giảm kích thước mã được sản xuất 30% -50%.

2

Bạn có thể có được dấu chân phần mềm nhỏ nhất bằng cách sử dụng trình biên dịch chương trình và ngôn ngữ giống như Forth được thiết kế cho mục đích của bạn. Một cái khác là mã máy nén nếu có nhiều mã gần như giống hệt nhau.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.