难度:★本文首发于我的嵌入式技术公众号「OneChan」,未经授权禁止转载。打开任何一个 Keil 启动文件,你都会看到这样的代码:AREA STACK, NOINIT, READWRITE, ALIGN=3 Stack_Mem SPACE 0x400 __initial_sp AREA RESET, DATA, READONLY __Vectors DCD __initial_sp DCD Reset_Handler ; ... AREA |.text|, CODE, READONLY Reset_Handler PROC ; ... ENDP每一段代码或数据都被AREA包裹,后面跟着一串属性:CODE或DATA、READONLY或READWRITE、NOINIT等。很多初学者看到这些,直接跳过——反正模板是这么写的,照抄就行。但你有没有想过:CODE和DATA到底有什么
为什么 AREA 要指定 CODE 或 DATA 属性?
难度:★本文首发于我的嵌入式技术公众号「OneChan」,未经授权禁止转载。打开任何一个 Keil 启动文件,你都会看到这样的代码:AREA STACK, NOINIT, READWRITE, ALIGN=3 Stack_Mem SPACE 0x400 __initial_sp AREA RESET, DATA, READONLY __Vectors DCD __initial_sp DCD Reset_Handler ; ... AREA |.text|, CODE, READONLY Reset_Handler PROC ; ... ENDP每一段代码或数据都被AREA包裹,后面跟着一串属性:CODE或DATA、READONLY或READWRITE、NOINIT等。很多初学者看到这些,直接跳过——反正模板是这么写的,照抄就行。但你有没有想过:CODE和DATA到底有什么