12
返回列表 发新帖
楼主: FSL_TICS_ZJJ

[分享] 【经验分享】KL25在MDK中将函数指定到flash地址

[复制链接]

该用户从未签到

11

主题

91

帖子

0

高级会员

Rank: 4

积分
660
最后登录
2020-3-4
发表于 2014-12-1 14:40:00 | 显示全部楼层
楼主,您好!能不能用这种方法将函数指定到RAM地址呢?需不需要改动什么地方呢?
回复 支持 反对

使用道具 举报

该用户从未签到

15

主题

194

帖子

0

高级会员

Rank: 4

积分
551
最后登录
1970-1-1
发表于 2014-12-12 13:56:43 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2014-10-29 13:51
可以,那么就是正常操作flash的方法。
你可以先把数据定义到具体的flash,如果需要修改,就需要先读取你 ...

请问这个“读取”和“擦除” 用的是什么指令。谢谢~~
回复 支持 反对

使用道具 举报

该用户从未签到

15

主题

194

帖子

0

高级会员

Rank: 4

积分
551
最后登录
1970-1-1
发表于 2014-12-12 14:22:58 | 显示全部楼层
char funcInROM(int flag)对应的16进制码  请问是怎么出来的 我和这串数据对不上,请介绍一下 01460029 01DD0120 70470020 FCE70000
回复 支持 反对

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
 楼主| 发表于 2014-12-12 15:18:46 | 显示全部楼层
LFang 发表于 2014-12-1 14:40
楼主,您好!能不能用这种方法将函数指定到RAM地址呢?需不需要改动什么地方呢? ...

可以的,其实思想是一样的,你可以把要放到RAM里的函数放到一个.C文件里,通过分散加载把编译产生的.O文件放到RAM里。
另外,在MDK中的help里,你搜索:placing functions and data at specific address
会有具体的方法。
回复 支持 反对

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
 楼主| 发表于 2014-12-12 15:23:27 | 显示全部楼层
寻找钢叉的猹 发表于 2014-12-12 14:22
char funcInROM(int flag)对应的16进制码  请问是怎么出来的 我和这串数据对不上,请介绍一下 01460029 01D ...

这个是生成的代码,只是供你参考,实际上和你的优化等也有关系。
生成的的数据不见得就是一样。
最关键的是,你可以先不指定到具体地址0x0001e000,你会发现,其实那边是没有数据的。
如果指定了,在0x0001e000就会有这段代码。
具体数据是编译器生成的,这里我也不知道具体的对应关系,只是相对的推出这个地方的代码是funcInROM生成的。
不指定地址的时候,你那这段数据,也可以在前面的flash中搜索到。
回复 支持 反对

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
 楼主| 发表于 2014-12-12 15:28:30 | 显示全部楼层
本帖最后由 FSL_TICS_ZJJ 于 2014-12-12 15:34 编辑
寻找钢叉的猹 发表于 2014-12-12 13:56
请问这个“读取”和“擦除” 用的是什么指令。谢谢~~

如果在代码中读取与擦除flash,可以直接用FTFA寄存器的指令去操作。
具体查看KL25的FTFA章节,有具体的flash操作命令的。
另外,你也可以参考flashdriver,在经验分享总贴中也有我写的文章。
回复 支持 反对

使用道具 举报

该用户从未签到

15

主题

194

帖子

0

高级会员

Rank: 4

积分
551
最后登录
1970-1-1
发表于 2014-12-14 20:29:25 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2014-12-12 15:28
如果在代码中读取与擦除flash,可以直接用FTFA寄存器的指令去操作。
具体查看KL25的FTFA章节,有具体的fla ...

thanks~~~~
回复 支持 反对

使用道具 举报

  • TA的每日心情
    慵懒
    2016-11-24 10:19
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    50

    主题

    1028

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2870
    最后登录
    1970-1-1
    发表于 2015-5-15 10:38:44 | 显示全部楼层
    我用这个方法实现了 KL03 的代码分散加载,但却导致了另外一个问题:下载程序后程序不初始化RAM中的全局变量了,导致用到的全局变量初始值都不对;去掉分散加载后就正常了,怎么破?
    谢谢
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2017-5-3 11:19
  • 签到天数: 10 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    50

    主题

    1万

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    14090
    最后登录
    2024-4-19
    发表于 2015-5-15 14:59:31 | 显示全部楼层
    学习了。。。 blank.png blank.png blank.png blank.png blank.png blank.png blank.png blank.png blank.png blank.png
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-23 04:52 , Processed in 0.104746 second(s), 27 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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