• 大小: 1.84MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-08-30
  • 语言: 其他
  • 标签: PID  智能车  XS128  K60  

资源简介

K60简单例程 MC9S12XS128初始化程序和说明 MC9S12XS128简单测速例程 PID闭环调速部分教程(原创) PID测速实例C车 简单的PID闭环测速实例

资源截图

代码片段和文件信息


#include “common.h“

#if (defined(IAR))
#pragma section = “.data“
#pragma section = “.data_init“
#pragma section = “.bss“
#pragma section = “CodeRelocate“
#pragma section = “CodeRelocateRam“
#endif

/********************************************************************/
//复制中断向量表、初始化数据、以__ramfunc声明的子函数复制到RAM区(对flash操作的函数必须这样)
void common_startup(void)
{

#if (defined(CW))
    extern char __START_BSS[];
    extern char __END_BSS[];
    extern uint32 __DATA_ROM[];
    extern uint32 __DATA_RAM[];
    extern char __DATA_END[];
#endif

    /* Declare a counter we‘ll use in all of the copy loops */
    uint32 n;

    /* Declare pointers for various data sections. These pointers
     * are initialized using values pulled in from the linker file
     */
    uint8 * data_ram * data_rom * data_rom_end;
    uint8 * bss_start * bss_end;


    /* 这两个数组的地址 在  链接器linker文件,即ICF文件 定义       */
    /* 这两个全局变量在上面.icf文件里可以找到,里面定义了它们的地址*/  
    extern uint32 __VECTOR_TABLE[];
    extern uint32 __VECTOR_RAM[];

    /* 检测是否需要 复制中断向量表                            */
    /*如果它们地址不一样,则复制flash内的向量表到RAM区得向量表*/
    if (__VECTOR_RAM != __VECTOR_TABLE)
    {
        for (n = 0; n < 0x410; n++)
            __VECTOR_RAM[n] = __VECTOR_TABLE[n];
    }

    /* 把 中断向量表地址 重新指向 RAM 里的 中断向量表 */
    write_vtor((uint32)__VECTOR_RAM);  
    
      
    
    /*获取初始化数据地址*/
    #if (defined(CW))
        data_ram = (uint8 *)__DATA_RAM;
data_rom = (uint8 *)__DATA_ROM; 
        data_rom_end  = (uint8 *)__DATA_END; /* This is actually a RAM address in CodeWarrior */
        n = data_rom_end - data_ram;
    #elif (defined(IAR))
        data_ram = __section_begin(“.data“);
        data_rom = __section_begin(“.data_init“);
        data_rom_end = __section_end(“.data_init“);
        n = data_rom_end - data_rom;
    #endif

/* 复制初始化数据 */
while (n--)
*data_ram++ = *data_rom++;


      /* 获取 .bss 段的地址 (初始化数据为0) */
      #if (defined(CW))
              bss_start = (uint8 *)__START_BSS;
              bss_end = (uint8 *)__END_BSS;
      #elif (defined(IAR))
              bss_start = __section_begin(“.bss“);
              bss_end = __section_end(“.bss“);
      #endif
              

      /* 清除初始化为0的数据段 */
      n = bss_end - bss_start;
      while(n--)
        *bss_start++ = 0;

      /* 把以__ramfunc声明的子函数复制到RAM区  */
      #if (defined(IAR))
          uint8* code_relocate_ram  = __section_begin(“CodeRelocateRam“);
          uint8* code_relocate      = __section_begin(“CodeRelocate“);
          uint8* code_relocate_end  = __section_end(“CodeRelocate“);

          /* Copy functions from ROM to RAM */
          n = code_relocate_end - code_relocate;
          while (n--)
                  *code_relocate_ram++ = *code_relocate++;
      #endif
}
/********************************************************************/

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2014-02-25 17:43  K60简单例程\
     目录           0  2014-02-25 17:43  K60简单例程\K60简单测速例程\
     目录           0  2014-02-25 17:43  K60简单例程\K60简单测速例程\build\
     目录           0  2014-02-25 17:43  K60简单例程\K60简单测速例程\build\ftm_demo\
     目录           0  2014-02-25 17:43  K60简单例程\K60简单测速例程\build\ftm_demo\FLASH\
     目录           0  2014-02-25 17:43  K60简单例程\K60简单测速例程\build\ftm_demo\FLASH\Exe\
     文件       25034  2012-12-25 21:21  K60简单例程\K60简单测速例程\build\ftm_demo\FLASH\Exe\ftm_demo.srec
     文件      110424  2012-12-25 21:21  K60简单例程\K60简单测速例程\build\ftm_demo\FLASH\Exe\gpio_demo.out
     文件        9127  2012-12-25 21:22  K60简单例程\K60简单测速例程\build\ftm_demo\FLASH\Exe\gpio_demo.sim
     文件       34100  2012-10-24 16:24  K60简单例程\K60简单测速例程\build\ftm_demo\FLASH\Exe\gpio_demo.srec
     目录           0  2014-02-25 17:43  K60简单例程\K60简单测速例程\build\ftm_demo\FLASH\List\
     文件       54796  2012-12-25 19:28  K60简单例程\K60简单测速例程\build\ftm_demo\FLASH\List\adc.lst
     文件       36670  2012-12-25 19:28  K60简单例程\K60简单测速例程\build\ftm_demo\FLASH\List\adc.s
     文件       32121  2012-12-25 21:20  K60简单例程\K60简单测速例程\build\ftm_demo\FLASH\List\arm_cm4.lst
     文件       20941  2012-12-25 21:20  K60简单例程\K60简单测速例程\build\ftm_demo\FLASH\List\arm_cm4.s
     文件       25132  2012-12-25 20:26  K60简单例程\K60简单测速例程\build\ftm_demo\FLASH\List\assert.lst
     文件       16145  2012-12-25 20:26  K60简单例程\K60简单测速例程\build\ftm_demo\FLASH\List\assert.s
     文件       17335  2012-12-25 19:28  K60简单例程\K60简单测速例程\build\ftm_demo\FLASH\List\exti.lst
     文件       13662  2012-12-25 19:28  K60简单例程\K60简单测速例程\build\ftm_demo\FLASH\List\exti.s
     文件       19427  2012-12-25 21:20  K60简单例程\K60简单测速例程\build\ftm_demo\FLASH\List\FTM.lst
     文件       14951  2012-12-25 21:20  K60简单例程\K60简单测速例程\build\ftm_demo\FLASH\List\FTM.s
     文件        8958  2012-12-25 21:20  K60简单例程\K60简单测速例程\build\ftm_demo\FLASH\List\fun.lst
     文件        7607  2012-12-25 21:20  K60简单例程\K60简单测速例程\build\ftm_demo\FLASH\List\fun.s
     文件       26563  2012-12-25 19:28  K60简单例程\K60简单测速例程\build\ftm_demo\FLASH\List\gpio.lst
     文件       18595  2012-12-25 19:28  K60简单例程\K60简单测速例程\build\ftm_demo\FLASH\List\gpio.s
     文件        4553  2012-12-25 21:20  K60简单例程\K60简单测速例程\build\ftm_demo\FLASH\List\isr.lst
     文件        4676  2012-12-25 21:20  K60简单例程\K60简单测速例程\build\ftm_demo\FLASH\List\isr.s
     文件       47499  2012-12-25 19:28  K60简单例程\K60简单测速例程\build\ftm_demo\FLASH\List\LED.lst
     文件       29652  2012-12-25 19:28  K60简单例程\K60简单测速例程\build\ftm_demo\FLASH\List\LED.s
     文件       12628  2012-12-25 21:20  K60简单例程\K60简单测速例程\build\ftm_demo\FLASH\List\lptmr.lst
     文件       10425  2012-12-25 21:20  K60简单例程\K60简单测速例程\build\ftm_demo\FLASH\List\lptmr.s
............此处省略350个文件信息

评论

共有 条评论