k70学习笔记(1. icf文件解释,工程结构图,常规中断)

以前没有使用过fsl的芯片,记录开始

1. iar的icf文件,在ram中调试的

知道icf的7条语法

(1)定义标记符号 define symbol __ICFEDIT_region_ROM_start__ = 0x0;

(2)定义存储器大小 define memory mem with size = 4G;

(3)定义rom,ram区 define region RAM_region   = mem:[from __ICFEDIT_region_RAM_start__   to __ICFEDIT_region_RAM_end__] | mem:[from (__region_RAM2_start__) to __region_RAM2_end__];


2.iar工程结构图


io.c 是对串口驱动的封装,主要是in_char (void){}; out_char (char ch){}; char_present (void){}三个函数,

printf.c 实现

int
printf (const char *fmt, ...)
{}
int
sprintf (char *s, const char *fmt, ...)
{}
两个函数,iar的k70工程里面没有使用syscall,代码的方式实现了printf

startup.c 实现

void
common_startup(void)
{}

一个函数,这个函数是完成ram的初始化的.


3.k70的中断的设置

(1)中断初始化

void Pit_init(void)
{
    printf("%d\n", fvdi_bv);
    SIM_SCGC6 |= SIM_SCGC6_PIT_MASK;//enable the clock of PIT module
        
    //PIT_TFLG_REG(PIT_BASE_PTR,0) |= PIT_TFLG_TIF_MASK; //clear flag
    PIT_MCR = 0x00;
    //PIT_MCR_REG(PIT_BASE_PTR) &= ~PIT_MCR_MDIS_MASK;//enable PIT module
        
    PIT_LDVAL0 = 14400000;
    //PIT_LDVAL_REG(PIT_BASE_PTR,0) = 14400000;//setup timer 0 for 256000 cycles

    PIT_TCTRL_REG(PIT_BASE_PTR,0) |= PIT_TCTRL_TEN_MASK;
//    PIT_TCTRL_REG(PIT_BASE_PTR,0) &= ~PIT_TCTRL_TIE_MASK; 
    PIT_TCTRL_REG(PIT_BASE_PTR,0) |= PIT_TCTRL_TIE_MASK;
  enable_irq(84-16); //GPIOE Vector is 107. IRQ# is 107-16=91
}

(2)在isr.h中重新定义中断向量

#undef  VECTOR_106
#define VECTOR_106 portd_isr

#undef  VECTOR_107
#define VECTOR_107 porte_isr

#undef  VECTOR_084
#define VECTOR_084 pit0_isr

// ISR(s) are defined in your project directory.
extern void portd_isr(void);
extern void porte_isr(void);
extern void pit0_isr(void);

(3)写中断服务函数

void pit0_isr(void)
{
    unsigned int c;
    //turn off timer
    PIT_TCTRL_REG(PIT_BASE_PTR,0)&=~(PIT_TCTRL_TIE_MASK|PIT_TCTRL_TEN_MASK);
        
    //PIT_TFLG0 = PIT_TFLG_TIF_MASK;
    PIT_TFLG_REG(PIT_BASE_PTR,0) |= PIT_TFLG_TIF_MASK; 
    GPIOD_PTOR |= GPIO_PTOR_PTTO(GPIO_PIN(0)|GPIO_PIN(1));
    c = PIT_CVAL0;
    //turn on timer
    PIT_TCTRL_REG(PIT_BASE_PTR,0)|=(PIT_TCTRL_TIE_MASK|PIT_TCTRL_TEN_MASK);  
}
就可以了.




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值