라디오 전자 및 전기 공학의 백과사전 MCS-51 제품군의 마이크로컨트롤러용 프로그램에서 추가 메모리 세그먼트 초기화. 무선 전자 및 전기 공학 백과사전 무선 전자 및 전기 공학 백과사전 / 마이크로 컨트롤러 최신 마이크로컨트롤러에는 비휘발성 데이터 메모리(EEPROM)가 내장되어 있어 장치가 작동하기 전에 때때로 정보를 입력해야 합니다. 이 메모리의 이미지(펌웨어)는 프로그램 개발 중에 형성되어야 합니다. 예를 들어 PICmicro 및 AVR 제품군의 마이크로컨트롤러용 어셈블러에서 이를 수행할 수 있습니다. 그들은 프로그래머에게 추가 메모리 세그먼트를 구성하고 EEPROM에 쓰기 위해 초기 데이터를 설정할 수 있는 기회를 제공합니다. MSC-51 코어가 있는 마이크로컨트롤러용 어셈블러를 사용하면 메모리를 여러 부분으로 나눌 수 있지만 그 중 하나인 실행 가능한 코드 세그먼트에서만 초기화가 가능합니다. 다른 모든 경우에는 프로그램 실행 중에만 메모리 셀을 예약하고 데이터를 쓰는 것이 허용됩니다. 상황에서 벗어나는 방법은 아래에서 설명하는 리셉션이 될 수 있습니다. 그 본질은 번역 조건에 따라 코드 세그먼트의 초기화가 다른 방식으로 발생하는 조건부 어셈블리를 사용하는 것입니다. 결과 HEX 파일은 마이크로컨트롤러의 내부 EEPROM뿐만 아니라 외부 메모리 칩을 프로그래밍하는 데 사용할 수 있습니다. 인위적으로 생성된 추가 세그먼트(숫자 제한 없음)는 프로그램 텍스트에서 실제 코드 세그먼트 앞에 배치됩니다. 그 중 하나에 정의된 레이블은 실제 코드 세그먼트를 포함하여 다음 모두에서 알려집니다. 그러나 반대 방향의 링크는 허용되지 않습니다. 추가 메모리의 유형 및 물리적 위치에는 제한이 없습니다. 일반적으로 EEPROM 및 FLASH라고 하는 두 개의 추가 초기화 세그먼트가 있는 프로그램의 예가 표에 나와 있습니다. 1. example.asm 파일에 저장한 후 다음에서 무료로 "다운로드"할 수 있는 ASEM-51 어셈블러를 사용합니다. . 먼저 명령줄에서 어셈블러를 실행합니다. asem example.asm eeprom.hex/define:EEPROM 프로그램 텍스트의 첫 번째 줄을 처리하면서 기호 테이블에 idEeprom, ptrWord 및 prtBufE 레이블을 배치하고 DB 및 DW 지시문에 지정된 데이터를 출력 파일 eeprom.hex에 배치합니다(표 2). 그런 다음 세그먼트 길이를 확인합니다. 프로그램 카운터의 값이 물리적으로 존재하는 EEPROM 크기(이 경우 640셀)를 초과하면 오류 메시지가 표시됩니다. 세그먼트의 볼륨이 분명히 작은 경우 수표를 제외할 수 있습니다. 유사한 점검이 다른 부문에서도 예상될 수 있습니다. 다음으로 어셈블러는 IFNDEF EEPROM 지시어를 만나게 됩니다. 이 이름을 가진 기호가 명령줄( /define:EEPROM 매개변수)에 정의되어 있기 때문에 ENDIF 지시문까지 프로그램의 모든 다음 줄이 무시되고 변환이 종료됩니다. 명령줄에서 동일한 프로그램의 재전송 실행 asem example.asm flash.hex/define:FLASH EEPROM 대신 FLASH 기호의 정의에서만 이전과 다릅니다. 변환의 첫 번째 단계는 위에서 설명한 대로 정확하게 진행되며 EEPROM 세그먼트의 데이터가 출력 파일에 기록됩니다. 그러나 IFNDEF EEPROM 지시문은 이번에는 프로세스를 중단하지 않으며 다음 ORG 0 지시문은 프로그램 카운터를 재설정합니다. 어셈블러는 FLASH 세그먼트로 향하는 데이터를 주소 3에서 출력 파일에 쓰기 시작합니다. 브로드캐스트는 IFNDEF FLASH 지시어에 의해 중단됩니다. flash.hex 파일의 최종 형식은 표에 나와 있습니다. 삼. 명령으로 실행 코드의 실제 세그먼트 번역을 설정합니다. asem 예제.asm 우선 추가 세그먼트가 다시 컴파일되고 여기에 정의된 모든 레이블이 어셈블러 기호 테이블에 입력되어 코드 세그먼트에서 참조할 수 있습니다. 맨 처음에 ORG 0 지시문은 프로그램 카운터를 다시 한 번 재설정합니다. 방송은 정상적으로 진행됩니다. 결과 example.hex 파일(표 4)에서 프로그램의 실행 가능 코드는 이전 HEX 파일에 포함된 것과 동일한 행 뒤에 있는 네 번째 행에서 시작합니다. 중복 정보의 존재는 일반적으로 마이크로 컨트롤러의 적절한 메모리 영역에 코드를 올바르게 로드하는 데 방해가 되지 않습니다. 프로그래밍을 제어하는 프로그램의 버퍼에서 올바른 데이터는 주소가 일치할 때 이전에 입력한 데이터를 "변위"합니다. 새 세그먼트가 이전 세그먼트보다 짧은 경우에만 "꼬리"가 버퍼에 저장됩니다. 이러한 이유로 프로그램의 세그먼트는 길이의 오름차순으로 설명하는 것이 바람직합니다. 일부 프로그래머는 중간 버퍼가 없거나 입력 데이터를 엄격하게 제어하여 주소 중첩을 허용하지 않습니다. 첫 번째 경우 프로그래밍이 잘못되고 두 번째 경우 "오류"가 제거될 때까지 전혀 시작되지 않습니다. 텍스트 편집기를 사용하여 HEX 파일에서 추가 줄을 수동으로 제거할 수 있습니다. 두 명령을 연속으로 실행하여 이 작업을 자동으로 수행할 수도 있습니다. hex2bin 예.hex bin2hex 예.bin 첫 번째는 example.hex 파일에 포함된 데이터의 이진 이미지를 생성하고 이를 example.bin 파일에 배치합니다. 두 번째는 역변환을 수행하고 아무 장식 없이 새 example.hex 파일을 만듭니다. 필요한 프로그램은 주소에서 "다운로드"할 수 있습니다. 그리고 . 저자: S. Chekunov, Izhevsk 다른 기사 보기 섹션 마이크로 컨트롤러. 읽고 쓰기 유용한 이 기사에 대한 의견. 과학 기술의 최신 뉴스, 새로운 전자 제품: 터치 에뮬레이션을 위한 인조 가죽
15.04.2024 펫구구 글로벌 고양이 모래
15.04.2024 배려심 많은 남자의 매력
14.04.2024
다른 흥미로운 소식: ▪ Acer, 저가형 노트북 시장에서 Asustek과 경쟁 ▪ 항라디나 알약 ▪ 간단한 어댑터로 일반 헤드폰을 스마트한 헤드폰으로 바꿔드립니다. ▪ 사파이어 면도기
무료 기술 라이브러리의 흥미로운 자료: ▪ 기사 하늘에서 얼마나 많은 별을 볼 수 있습니까? 자세한 답변 ▪ 기사 평판 거울을 알루미늄화하기 위한 전기 진공 설비의 유지 관리에 종사하는 작업자. 노동 보호에 대한 표준 지침 ▪ 기사 Trinistor 변환기, 12-24/60볼트 2암페어. 무선 전자 및 전기 공학 백과사전 이 페이지의 모든 언어 홈페이지 | 도서관 | 조항 | 사이트 맵 | 사이트 리뷰 www.diagram.com.ua |