qqliyunpeng 发表于 2013-11-21 12:16:55

用KL05-SC文件夹下的自动生成工程工具的问题

我用它提供的工具,生成了很多文件,单片机是mkl05z32vfm4,打开生成的文件夹,将我的程序写了进去,配置中选择了单片机用j-link下载,进去,进行在线仿真,但是我发现在线仿真的这个指针在crt0.s文档下移动,并且是
/*
* File:        crt0.s
* Purpose:        Lowest level routines for Kinetis.
*
* Notes:       
*
*/


;         AREA   Crt0, CODE, READONLY      ; name this block of code
SECTION .noinit : CODE

      EXPORT__startup
__startup
    LDR   r0,=0                   ; Initialize the GPRs
        LDR   r1,=0
        LDR   r2,=0
        LDR   r3,=0
        LDR   r4,=0
        LDR   r5,=0
        LDR   r6,=0
        LDR   r7,=0

        CPSIE   i                     ; Unmask interrupts
      import start
      BL      start               ; call the C code
__done
      B       __done

      END
这个内容,当把所有的drive文件,和其他的文件都从工程中删除了后,就是做的一个led灯闪烁的程序,发现没问题,我想问问这是个什么问题。是在设置中需要改什么吗?
还有个问题是在配置中的Debugger中setup相的Run to main勾上后发生这个问题在各个文件中乱走,就是不执行main的函数,问题是我在main中并没有调用其他的函数,是我下进去的东西的路径错了,还是没有生成正确的文件来更新原来的文件??{:dizzy:}

Henjay724 发表于 2013-11-21 12:40:47

qqliyunpeng 发表于 2013-11-21 12:48:23

Henjay724 发表于 2013-11-21 12:40 static/image/common/back.gif
先不要勾选Run to main,调试看断点是不是停在crt0.s里,然后F11一步步走,跑到start()函数内,那里面最后 ...

这么说,你看是不是这样,我就想运行个led的闪烁的主函数,是不是还要改动下start.c里的内容?或者说每次建个新工程,还需要改动start.c中的内容?

Henjay724 发表于 2013-11-21 13:22:47

qqliyunpeng 发表于 2013-11-21 13:33:06

本帖最后由 qqliyunpeng 于 2013-11-21 13:35 编辑

Henjay724 发表于 2013-11-21 13:22 static/image/common/back.gif
一般情况不需要改啊

start函数内一般如下:里面其实也没做什么事情。实质就是关了看门狗,配置系统时 ...

确实有问题呀,单步调试的时候出现http://www.amobbs.com/forum.php?mod=image&aid=153724&size=300x300&key=4e48d57bc65124f4ac2fb396a5ed5ae9&nocache=yes&type=fixnone,实在是想不明白,你说是不是可能我的这个自动生成的文件下载的有问题呢,本身他就不能顺畅的走到main函数中呢,还有我发现,我的start.c是这样的,跟你的稍有不同。
void start(void)
{
        /* Disable the watchdog timer */
    SIM_COPC = 0x00;

        /* Copy any vector or data sections that need to be in RAM */
#ifndef CMSIS    // If conforming to CMSIS, we do not need to perform this code
#ifndef BOOTLOADER
        /* Copy any vector or data sections that need to be in RAM */
        common_startup();
#endif
#endif


        /* Perform processor initialization */
        sysinit();
#ifndef BRIDGE_BOARD
#ifndef BOOTLOADER   
    //printf("         \r\n");
       
        /* Determine the last cause(s) of reset */
        outSRS();       
       
        /* Determine specific Kinetis device and revision */
        cpu_identify();
#endif
#endif       
#ifndef CMSIS    // If conforming to CMSIS, we do not need to perform this code
        /* Jump to main process */
        main();

        /* No actions to perform after this so wait forever */
        while(1);
#endif
}

qqliyunpeng 发表于 2013-11-21 14:00:28

本帖最后由 qqliyunpeng 于 2013-11-21 14:02 编辑

Henjay724 发表于 2013-11-21 13:22 static/image/common/back.gif
一般情况不需要改啊

start函数内一般如下:里面其实也没做什么事情。实质就是关了看门狗,配置系统时 ...

我还想看看你的自动生成的sysinit.c的文件,我现在认为,可能这个有问题
在cpu文件夹下

qqliyunpeng 发表于 2013-11-21 14:22:48

经过一步一步的调试,我把串口uart0和貌似是是一些个外部中断什么的,给屏蔽掉了,调试成功了,只是我想可能如果加上别的一些,像uart或者i2c或者spi的时候可能就会有问题,还有生成的sysinit中的一些语句比如设置pin引脚的时钟打开什么的语句,我认为还是没有必要的,毕竟,如果我们开发,通常也是在外部设置的,只是,可能对于熟悉了这些个文件的人来说,用起来可能会方便些,但是如果这都熟悉了,可能自己建立个文件什么的,也就比阅读给的文件,然后去用它方便了些,或者,这是给我们提供了一种思路吧。谢谢楼上的回复,很专业,很给力,一下子知道了iar的使用方法和调试的步骤。。

wangpengcheng 发表于 2014-5-9 12:54:29

qqliyunpeng 发表于 2013-11-21 14:22
经过一步一步的调试,我把串口uart0和貌似是是一些个外部中断什么的,给屏蔽掉了,调试成功了,只是我想可 ...

飞思卡尔的芯片要慢慢去跟他沟通,争不来,呵呵!

qqliyunpeng 发表于 2014-5-9 23:54:56

wangpengcheng 发表于 2014-5-9 12:54
飞思卡尔的芯片要慢慢去跟他沟通,争不来,呵呵!

奥,飞思卡尔的服务到是挺耐心的,我还得到了一本书,看样子是真的在大力推广呢。
页: [1]
查看完整版本: 用KL05-SC文件夹下的自动生成工程工具的问题