单片机跑Free RTOS的程序没有问题,由于5949有16K的FRAM是0X10000-0X13000;为了使用指针指向高地址,将设置中的Data Model改为Large之后,编译就报错了,报错如下,
- Error[e16]: Segment CSTACK (size: 0x64 align: 0x1) is too long for segment definition. At least 0x50 more bytes needed. The problem occurred while processing the segment placement command "-Z(DATA)CSTACK+_STACK_SIZE#", where at the moment of placement the available memory ranges were "CODE:23ec-23ff"
- Reserved ranges relevant to this placement:
- 1c00-1c09 DATA20_I
- 1c0a-23eb DATA20_Z
- 23ec-23ff CSTACK
复制代码
堆栈设置为100,意思是只有20可以设置?但是我不改成Large,就没有问题的,改成20编译可以,但是系统运行会出错,无法启动调度器。试过将
-Z(DATA)DATA20_I,DATA20_Z,DATA20_N设置成别的地址,编译没有问题,程序运行有问题,调度器无法启动。求大神解答- // -----------------------------------------------
- // RAM memory
- //
- -Z(DATA)DATA16_I,DATA16_Z,DATA16_N,TLS16_I=1C00-23FF
- -Z(DATA)CODE_I
- -Z(DATA)DATA20_I,DATA20_Z,DATA20_N
- -Z(DATA)CSTACK+_STACK_SIZE#
复制代码
此帖出自
小平头技术问答
一周热门 更多>