查看: 5236|回复: 13

[已解决] KE02的sysinit()函数求解(已解决)

[复制链接]
  • TA的每日心情
    开心
    2018-4-17 08:39
  • 签到天数: 8 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    33

    主题

    788

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2796
    最后登录
    1970-1-1
    发表于 2014-8-24 11:11:48 | 显示全部楼层 |阅读模式
    本帖最后由 FSL_TICS_Robin 于 2014-9-9 13:56 编辑

    看KE02的库,在好多例程利都有这个函数,没明白作用是什么样的,求这个函数的详细说明,谢谢
    我知道答案 目前已有13人回答
    回复

    使用道具 举报

    该用户从未签到

    1

    主题

    65

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    233
    最后登录
    1970-1-1
    发表于 2014-8-24 21:19:09 | 显示全部楼层
    系统上电,不是马上就进入 main函数的, 是先进入reset handler , 里面再运行 system_init , 也就是 配置些时钟,看门狗啥的, 让芯片运行在某一个特定的时钟状态, 再然后才开始运行main函数。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4

    主题

    351

    帖子

    0

    高级会员

    Rank: 4

    积分
    973
    最后登录
    1970-1-1
    发表于 2014-8-25 09:29:02 | 显示全部楼层
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    145

    主题

    4926

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    9267
    最后登录
    1970-1-1
    发表于 2014-8-27 11:59:48 | 显示全部楼层
    楼主其实,如果你打开例程看看,就知道了。
    你的时钟模式工作在什么模式?
    还有模块的时钟开启等都在这里,这个函数很重要,楼主要仔细研读。
    结合RM读。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-4-17 08:39
  • 签到天数: 8 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    33

    主题

    788

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2796
    最后登录
    1970-1-1
     楼主| 发表于 2014-8-27 18:44:31 | 显示全部楼层
    FSL_TICS_ZJJ 发表于 2014-8-27 11:59
    楼主其实,如果你打开例程看看,就知道了。
    你的时钟模式工作在什么模式?
    还有模块的时钟开启等都在这里, ...

    看RM还懂一点,看例程函数就不太明白了,例如/* If not trimmed, do trim first */
       ICS_C3 =  ICS_TRIM_VALUE;   #define ICS_TRIM_VALUE          0x54
    RM上的
    Example: 20.5.1.1 FEI mode initialization routine
    /* the following code segment demonstrates setting ICS to FEI mode generating 36MHz bus*/
    ICS_C2 = 0x00; /*BDIV=0, no prescalar
    ICS_C1 = 0x04; /* internal reference clock to FLL */
    ICS_C3 = TRIM_VALUE_35.15625KHZ; /* FLL output 36MHz */
    /* the following code segment demonstrates setting ICS to FEI mode generating 4.5MHz bus*/
    ICS_C2 = 0x60; /*BDIV=3, prescalar = 8 */
    ICS_C1 = 0x04; /* internal reference clock to FLL */
    ICS_C3 = TRIM_VALUE_35.15625KHZ; /* FLL output 4.5MHz */
    ICS_C3的值RM是TRIM_VALUE_35.15625KHZ,例程上是 0x54,这两个之间的换算关系是怎么计算的呢,即如果我想把ICS_C3设置为35.15625KHZ,那么需要赋值的16进制数应该是多少,怎么计算呢,谢谢
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-2 06:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6020
    最后登录
    2020-9-28
    发表于 2014-8-28 09:00:20 | 显示全部楼层
    例程里这个值取的有点问题,每块芯片的值都不一定相同的。
    建议你看一下:
    【经验分享】KE02芯片OpenSDA调试时IRC频率问题
    【经验分享】使用CodeWarrior10.5软件的PE工具trim芯片内部慢速时钟
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-4-17 08:39
  • 签到天数: 8 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    33

    主题

    788

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2796
    最后登录
    1970-1-1
     楼主| 发表于 2014-8-28 19:33:25 | 显示全部楼层
    FSL_TICS_ZJJ 发表于 2014-8-27 11:59
    楼主其实,如果你打开例程看看,就知道了。
    你的时钟模式工作在什么模式?
    还有模块的时钟开启等都在这里, ...

    你需要这样做。
    1,读出你的ICS_C3的值,这个值对应的就是31.25khz,我读出来是0x80。
    2,SCTRIM的每个位(步长)就等于31.25K*0.002=0.0625.
    3,算你想要的频率需要增加多少个步长。
    4,加上你读的ICS_C3的值就是你的目标trim值。
    C3变大则频率变小,即周期变长。
    C3变小则频率变大,即周期减小。

    OK,然后你就把这个值填到ICS_C3中。
    看到类似问题您在另一个论坛中的回复,
    请问KE02芯片IAR编译环境,如何读出这个ICS_C3的值呢 ,谢谢
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-2 06:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6020
    最后登录
    2020-9-28
    发表于 2014-8-29 10:23:55 | 显示全部楼层
    qiu-368230 发表于 2014-8-28 19:33
    你需要这样做。
    1,读出你的ICS_C3的值,这个值对应的就是31.25khz,我读出来是0x80。
    2,SCTRIM的每个位 ...

    KE02 IRC.jpg
    因为调试时可能有问题,所以通过软件读寄存器后用串口发送出来

    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    145

    主题

    4926

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    9267
    最后登录
    1970-1-1
    发表于 2014-8-29 13:21:31 | 显示全部楼层
    qiu-368230 发表于 2014-8-28 19:33
    你需要这样做。
    1,读出你的ICS_C3的值,这个值对应的就是31.25khz,我读出来是0x80。
    2,SCTRIM的每个位 ...

    直接debug,然后通过寄存器查看就可以读取,或者如楼上所说,用串口发出来。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-2 06:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6020
    最后登录
    2020-9-28
    发表于 2014-9-9 13:51:39 | 显示全部楼层
    楼主你好
    请问你的问题解决了吗? 如果问题尚未解决可以继续在帖子中与大家讨论。

    PS:由于你长时间未回帖,所以先把你的帖子标示成已解决了。
    以后问题解决后还请配合我们在帖子标题末添加“(已解决)”字样,谢谢!
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-21 06:04 , Processed in 0.112875 second(s), 31 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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