查看: 4445|回复: 16

[已解决] 关于KL26系列的RAM问题(已解决)

[复制链接]

该用户从未签到

10

主题

65

帖子

0

新手上路

Rank: 1

积分
94
最后登录
1970-1-1
发表于 2014-6-19 11:31:12 | 显示全部楼层 |阅读模式
 手册上写着KL26的RAM是32KB的,从0x1FFF,E000~0x2000,6000。现在碰到的问题是,我把Initial_SP设置为0x20002ff8就正常,改为0x20003ff8就进ardfault了?why?
我知道答案 目前已有15人回答
回复

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2014-6-19 13:23:03 | 显示全部楼层

RE:关于KL26系列的RAM问题

楼主,你是怎么把Initial_SP设置为0x20003ff8,代码给我看看呢。
回复 支持 反对

使用道具 举报

该用户从未签到

10

主题

65

帖子

0

新手上路

Rank: 1

积分
94
最后登录
1970-1-1
 楼主| 发表于 2014-6-19 13:40:59 | 显示全部楼层

RE:关于KL26系列的RAM问题

;  Stack Configuration
;    Stack Size (in Bytes)
;
Stack_Size      EQU     0x00001000
                AREA    STACK, NOINIT, READWRITE, ALIGN=3
Stack_Mem       SPACE   Stack_Size
__initial_sp    EQU     0x20002ff8

;  Heap Configuration
;     Heap Size (in Bytes)
;
Heap_Size       EQU     0x00001000
                AREA    HEAP, NOINIT, READWRITE, ALIGN=3
__heap_base
Heap_Mem        SPACE   Heap_Size
__heap_limit
上面是我的代码。
回复 支持 反对

使用道具 举报

该用户从未签到

10

主题

65

帖子

0

新手上路

Rank: 1

积分
94
最后登录
1970-1-1
 楼主| 发表于 2014-6-19 13:45:10 | 显示全部楼层

回复:关于KL26系列的RAM问题

回复第 3 楼 于2014-06-19 13:40:59发表:
;  Stack Configuration
;    Stack Size (in Bytes)
;
Stack_Size      EQU     0x00001000
AREA    STACK, NOINIT, READWRITE, ALIGN=3
Stack_Mem       SPACE   Stack_Size
__initial_sp    EQU     0x20002ff8

;  Heap Configuration
;     Heap Size (in Bytes)
;
Heap_Size       EQU     0x00001000
AREA    HEAP, NOINIT, READWRITE, ALIGN=3
__heap_base
Heap_Mem        SPACE   Heap_Size
__heap_limit
上面是我的代码。
编译之后,.map中查看如下:
 __heap_base                              0x20001c50   Data           0  startup_mkl25z4.o(HEAP)
    __heap_limit                             0x20002c50   Data           0  startup_mkl25z4.o(HEAP)
    __initial_sp                             0x20002ff8   Number         0  startup_mkl25z4.o ABSOLUTE
 

 
回复 支持 反对

使用道具 举报

该用户从未签到

10

主题

65

帖子

0

新手上路

Rank: 1

积分
94
最后登录
1970-1-1
 楼主| 发表于 2014-6-19 13:47:14 | 显示全部楼层

RE:关于KL26系列的RAM问题

;  Stack Configuration
;    Stack Size (in Bytes)
;
Stack_Size      EQU     0x00001000
                AREA    STACK, NOINIT, READWRITE, ALIGN=3
Stack_Mem       SPACE   Stack_Size
__initial_sp   

;  Heap Configuration
;     Heap Size (in Bytes)
;
Heap_Size       EQU     0x00001000
                AREA    HEAP, NOINIT, READWRITE, ALIGN=3
__heap_base
Heap_Mem        SPACE   Heap_Size
__heap_limit
代码改成这样时,编译完如下
__heap_base                              0x20001c50   Data           0  startup_mkl25z4.o(HEAP)
    __heap_limit                             0x20002c50   Data           0  startup_mkl25z4.o(HEAP)
    __initial_sp                             0x20003c50   Data           0  startup_mkl25z4.o(STACK)
一运行,就进异常错误了
回复 支持 反对

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2014-6-19 14:15:12 | 显示全部楼层

RE:关于KL26系列的RAM问题

楼主,你是不是用的是KL25的代码啊?
KL25的RAM最大是16K,是不是你没改RAM地址范围导致的呢?
回复 支持 反对

使用道具 举报

该用户从未签到

10

主题

65

帖子

0

新手上路

Rank: 1

积分
94
最后登录
1970-1-1
 楼主| 发表于 2014-6-19 14:29:12 | 显示全部楼层

回复:关于KL26系列的RAM问题

回复第 6 楼 于2014-06-19 14:15:12发表:
楼主,你是不是用的是KL25的代码啊?
KL25的RAM最大是16K,是不是你没改RAM地址范围导致的呢?
 
嗬嗬,不是的。就文件名 还是25,其实内容已经是26的了,而且工程设置中也已经改为
RAM1:0X1FFF,E000 size 0x2000
RAM2 :0X2000,0000, size 0x6000
但是还是不对。
还有一个疑问就是设置的时候为什么不能直接写成
RAM1:0x1FFF,E000 size 0x8000
 
回复 支持 反对

使用道具 举报

该用户从未签到

10

主题

65

帖子

0

新手上路

Rank: 1

积分
94
最后登录
1970-1-1
 楼主| 发表于 2014-6-19 14:42:29 | 显示全部楼层

回复:关于KL26系列的RAM问题

回复第 7 楼 于2014-06-19 14:29:12发表:
回复第 6 楼 于2014-06-19 14:15:12发表:
楼主,你是不是用的是KL25的代码啊?
KL25的RAM最大是16K,是不是你没改RAM地址范围导致的呢?
 
嗬嗬,不是的。就文件名 还是25,其实内容已经是26的了,而且工程设置中也已经改为
RAM1:0X1FFF,E000 size 0x2000
RAM2 :0X2000,0000, size 0x6000
但是还是不对。
还有一个疑问就是设置的时候为什么不能直接写成
RAM1:0x1FFF,E000 size 0x8000
 怎么看都像RAM也是16K呢,怪异

 
回复 支持 反对

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2014-6-19 14:53:47 | 显示全部楼层

RE:关于KL26系列的RAM问题

楼主你用的是什么编译器呢?
另外,一般__initial_sp都是放在RAM的其实位置,为什么你要放到后面去呢?
RAM分为两段写,我认为是RAM虽然从地址上是连续的,但是实际使用的时候,还是不好跨界使用,比如一些堆栈,一定不能跨界RAM。
回复 支持 反对

使用道具 举报

该用户从未签到

10

主题

65

帖子

0

新手上路

Rank: 1

积分
94
最后登录
1970-1-1
 楼主| 发表于 2014-6-19 15:00:01 | 显示全部楼层

回复:关于KL26系列的RAM问题

回复第 9 楼 于2014-06-19 14:53:47发表:
楼主你用的是什么编译器呢?
另外,一般__initial_sp都是放在RAM的其实位置,为什么你要放到后面去呢?
RAM分为两段写,我认为是RAM虽然从地址上是连续的,但是实际使用的时候,还是不好跨界使用,比如一些堆栈,一定不能跨界RAM。
用的MDK 4.71的。_initial_sp的位置没有特别考虑,不过我看在_initial_sp不设置的情况下,编译结束后他的位置也是在RAM的最后
 
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-7-20 08:07 , Processed in 0.115865 second(s), 30 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表