楼主: zhide99-266041

[求助] K60的pll的问题

[复制链接]

该用户从未签到

3

主题

57

帖子

0

新手上路

Rank: 1

积分
11
最后登录
1970-1-1
发表于 2011-12-2 16:49:14 | 显示全部楼层 |阅读模式
//函数申明
static void set_sys_dividers(uint_32);
//下面是分频在ram中运行的代码,因为在flash运行会出错,整个代码都是塔式结构,DEMO工程里pll_init()函数的代码,看不懂,高手来解析下;
void (*fcn_ram_call) (uint_32);
uint_32  fcn_thumb_flag;
uint_32  fcn_rom_addr;
uint_32  fcn_ram_addr;
uint_32  fcn_ram_copy[64];
fcn_thumb_flag = (uint_32)set_sys_dividers &0x01;
fcn_rom_addr = (uint_32)set_sys_dividers &~(uint_32)0x01;
fcn_ram_addr = (uint_32) fcn_ram_copy | ( fcn_rom_addr & 0x02);
_mem_copy( (pointer)fcn_rom_addr, (pointer)fcn_ram_addr, sizeof(fcn_ram_copy)-3);
fcn_ram_call = (void(*)(uint_32))(fcn_ram_addr|fcn_thumb_flag);
fcn_ram_call(SIM_CLKDIV1_COPY);//函数调用
 
我知道答案 目前已有9人回答
回复

使用道具 举报

该用户从未签到

5

主题

28

帖子

0

新手上路

Rank: 1

积分
24
最后登录
1970-1-1
发表于 2011-12-2 18:05:16 | 显示全部楼层

回复:K60的pll的问题

你用的是IAR?
回复 支持 反对

使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2011-12-2 21:00:17 | 显示全部楼层

    RE:K60的pll的问题

    这些问题,不要把他想的很复杂。他们就是一些基础的C语言知识,其中包括变量、数组的定义,函数的声明,其中还涉及到指针函数。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3

    主题

    57

    帖子

    0

    新手上路

    Rank: 1

    积分
    11
    最后登录
    1970-1-1
     楼主| 发表于 2011-12-5 16:53:05 | 显示全部楼层

    回复:K60的pll的问题

    管理员,你理解错了我的意思了,
    这段代码是将flash里的函数copy到RAM里来执行的,这就和处理器的架构有关系了,thumb-2指令集等等,
    我不是太理解为什么是这样做?还期待高手来点播下
    或许打个比方,把这段代码弄清楚了,我就可以自己开辟段RAM来当简易的cache用了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2011-12-5 22:41:33 | 显示全部楼层

    RE:K60的pll的问题

    哦。这拷贝到RAM中执行是由于FLASH存储方式确定的,因为同一片FLASH不能进行操作,只能将FLASH拷贝到RAM中执行。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12

    主题

    136

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    256
    最后登录
    2021-1-15
    发表于 2011-12-5 22:55:48 | 显示全部楼层

    回复:K60的pll的问题

    其实也可以直接在flash里分频的,早期的kinetis的勘误表中有这个错误,后来这个错误被改正了;这个是mqx里的;
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3

    主题

    57

    帖子

    0

    新手上路

    Rank: 1

    积分
    11
    最后登录
    1970-1-1
     楼主| 发表于 2011-12-6 09:18:33 | 显示全部楼层

    回复:K60的pll的问题

    回复第 6 楼 于2011-12-05 14:55:48发表:
    其实也可以直接在flash里分频的,早期的kinetis的勘误表中有这个错误,后来这个错误被改正了;这个是mqx里的;
     
    这应该是个硬件上的小bug吧,难道已经修正了?即使不用MQX,则需要在该函数前添加关键字__ramfunc,将函数拷到RAM中
     
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3

    主题

    57

    帖子

    0

    新手上路

    Rank: 1

    积分
    11
    最后登录
    1970-1-1
     楼主| 发表于 2011-12-6 09:18:02 | 显示全部楼层

    回复:K60的pll的问题

    回复第 5 楼 于2011-12-05 14:41:33发表:
    哦。这拷贝到RAM中执行是由于FLASH存储方式确定的,因为同一片FLASH不能进行操作,只能将FLASH拷贝到RAM中执行。
     
    这么说吧, 为什么确定RAM的地址和ROM的地址,是下面的三句代码?
    fcn_thumb_flag = (uint_32)set_sys_dividers &0x01;
    fcn_rom_addr = (uint_32)set_sys_dividers &~(uint_32)0x01;
    fcn_ram_addr = (uint_32) fcn_ram_copy | ( fcn_rom_addr & 0x02);

     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2011-12-16 16:44:52 | 显示全部楼层

    RE:K60的pll的问题

    我这没有关于FLASH的操作的代码,你能不能共享一下,我看看。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3

    主题

    57

    帖子

    0

    新手上路

    Rank: 1

    积分
    11
    最后登录
    1970-1-1
     楼主| 发表于 2011-12-20 15:45:12 | 显示全部楼层

    回复:K60的pll的问题

    回复第 9 楼 于2011-12-16 08:44:52发表:
    我这没有关于FLASH的操作的代码,你能不能共享一下,我看看。
     
    等我总结好了,共享下。其实在bootloader里有对FLASH的操作。
    我想问下,我的板子K60发热满严重的,LQF封装的,跑在100M,大家对不用的引脚都是接地的吗?是不是有的引脚不能接地啊?但在塔式结构上跑相同的程序,却没有这种现象,狂晕,难道和封装有关系吗?
     
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-18 10:15 , Processed in 0.105506 second(s), 29 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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