Por lo tanto, al observar la hoja de datos de un controlador ARM específico, encontramos el espacio de direcciones que se asigna de la siguiente manera:
Hayvariasformasdelograresto,unadelascualesesatravésdeunarchivogeneradoautomáticamentequetienelossiguientescontenidos(condensados):
;Optionbyteorganization;-------------------------;Address[31:24][23:16][15:8][7:0];0x1FF80000-nRDP-RDP(0xFF5500AA);0x1FF80004-nUSER-USER(0xFF870078);0x1FF80008nWRP1nWRP0WRP1WRP0(0xFFFF0000);0x1FF8000CnWRP3nWRP2WRP3WRP2(0xFFFF0000)FLASH_OPTEQU1RDPEQU0xAAnRDPEQURDP:EOR:0xFFWRP00EQU0x00WRP01EQU0x00WRP02EQU0x00WRP03EQU0x00nWRP00EQUWRP00:EOR:0xFFnWRP01EQUWRP01:EOR:0xFFnWRP02EQUWRP02:EOR:0xFFnWRP03EQUWRP03:EOR:0xFFUSEREQU0x78nUSEREQUUSER:EOR:0xFFIFFLASH_OPT<>0AREA|.ARM.__AT_0x1FF80000|,CODE,READONLYDCBRDP,0x00,nRDP,0xFFDCBUSER,0x00,nUSER,0xFFDCBWRP00,WRP01,nWRP00,nWRP01DCBWRP02,WRP03,nWRP02,nWRP03ENDIF
Parecequeestearchivosimplementeproporcionaunaformaconfigurableparaconfigurarestosbytesdeopción,pero¿cómosehace?InvestiguéunpocoyresultóqueladirectivaAREA
ledicealensambladorquegenereunáreanueva,enestecasounáreadecódigoqueserásololectura.
Además,ladirectivaDCB
asignamemoria,enestecaso16bytes,ylosinicializaconlosvaloresrespectivosdados.
Mipregunta,entonces,¿dóndeestálaespecificaciónconrespectoalaubicacióndeestebloquedememoriareciénasignado?Asaber,¿cómoseescribeelvalordeestebloquede16bytesenlosregistrosapropiados(0x1FF80000,etc.)?
Laúnicamencióndeestadirecciónestádadaporelargumento|.ARM.__AT_0x1FF80000|
pasadoaAREA
.Sinembargo,esteprimerargumentoessoloelnombredeestanuevaáreadeacuerdocon
O quizás la mejor pregunta es: ¿Cómo podemos especificar dónde se almacenará un ÁREA en la memoria?