2017-04-06 10 views
0

런타임 동안 Atmel의 Atmega16 프로그램 메모리에 쓸 수 있습니까? 나는 프로그램 메모리에 주어진 숫자 집합을 정렬하는 프로그램을 작성하려고하는데 SPM (Store Program Memory)을 사용할 필요가 있으므로 데이터를 교환해야하지만 내용을 변경할 수 있는지 잘 모르겠다. 내가 프로그램을 실행하는 동안 프로그램 메모리의! 나는 쓰기를위한 연산이 프로그램 메모리의 BOOT SECTION과 같은 곳에서 구현되어야한다고 생각한다. 그러나 이것을 할 수있는 방법을 찾지 못한다. 어떤 도움이 필요합니까? 감사.런타임에 AVR ATmega16의 프로그램 메모리에 기록 하시겠습니까?

+0

당신은 할 수는 있지만, 원하지 않는 것은 좋지 않습니다. 데이터를 램에 복사하고 거기에서 분류하십시오. – Jester

답변

1

특히 부트 로더와 같은 하위 시스템 모듈은 프로그램 메모리에 쓸 수 있습니다 (해야합니다).

일부 AVR은 PM에 대한 단어 단위 쓰기를 허용하고 다른 AVR은 완전한 플래시 페이지 만 바꾸는 것을 허용합니다. 분명히 코드는 프로그래밍 할 때 현재 해당 단어 나 페이지를 사용하지 않도록해야합니다.

일반적으로 을 정렬하는 것은 잘못된 생각처럼 들리지만, 당신은 당신의 플래시 사이클을 아주 빨리 소모 할 것이고, 주요 질문은 남아 있습니다 : 왜 플래시를 쓰기 전에 정렬하지 않습니까?