FreeRTOS 版本:v9.0
Tivaware 版本: TivaWare_C_Series-2.2.0.295
CCS 版本: 12.1.0.00007
问题:编译错误 "[E0002] PC 相对访问违反了禁用嵌入常量的操作"。
@ file portasm.asm 和
@第99行: LDR r0、ulMax扇 区 InterruptPrimorityConst
@行112: LDR R3、pxCurrentTCBConst
@第127行: LDR r0、ulMax扇 区 InterruptPrimorityConst
@行160: LDR R3、pxCurrentTCBConst
@行177: LDR r0、NVICOffsetConst
@行195:ldr.w r0、CPACRConst
背景:
我们为 Simple FreeRTOS 项目启用了"仅执行"闪存保护。 但会出现 如上所述的编译错误。
实际上、在没有 FreeRTOS 的情况下进行存储器保护工作 正常。
对于 PE、论坛建议 我们进行了以下 更改:
1. 为--embedded_constants 选择"off"
2. 已完成内存部分更改、如下所示。
部分
{
.intvecs:>0x00000000
.libraries:>闪存
{
--library=rtsv7M4_T_le_v4SPD16_eabi.lib (.text)
}
.text :> code_flash
.const :>闪存
cinit :>闪存
请输入您的密码:> FLASH
init_array:> FLASH
.vtable:> 0x20000000
.data :> SRAM
bss :> SRAM
.sysmem:> SRAM
.stack:> SRAM
}
关于
V·帕拉尼萨米