笔者2011年毕业刚入门接触到的芯片有freescale的MC9S12系列, MPC5634, 及NEC的V850. 使用V850是做一个快速原型项目. 该项目的底层是在KPIT的Auto SAR 3.1版本上来集成开发, 笔者参与了所有底层驱动的开发, 接触了很多执行器驱动芯片、传感器等. 在这个项目上极大的提高了对驱动开发的认识, 特别有幸读到这么标准的、规范的、漂亮的代码, 对以后的代码开发也是一个榜样.
本文是使用V850芯片的底层代码配置工具Applilet2来做一个经典的闪灯demo程序. 后续将使用KPIT的AutoSAR配置工具逐个介绍MCAL各模块的具体配置和工程实践.
——以LED闪灯程序为例:
1. Applilet工具启动界面。
2. “FileàNew”创建新工程,如下图所示。
“Series Name” 选择“V850ES/FK3”,“Chip Name”选择“uPD70F3385”。单击“Next”继续。
3. 编译器选择“GHS Compiler”。当然如果你用的其它的,你可以选择其他的。
选择“GHS Compiler”后会直接生成一个Green Hill的工程。如果你选择“NEC Compiler”,生产的是PM+工程。
4. “Select RTOS” 不可选,直接“Next”。到“第5步:Confirmation”。单击“Finish”完成。
5. 进入配置主界面。
1. 首先要配置时钟。简单配置一下时钟,“MainOSC clock”为8MHz,使用“PLL/SSCG模式”。
2. 看电路图知道LED1、LED2使用的是PCM2、PCM3脚(iSOFT板子,第一版)。所以配置PortCM。
3. 配置完成后单击工具栏生成代码。
单击Generate产生代码。
4. 修改代码,产生闪灯效果。
a. 修改产生的Port.c文件,添加如下内容。
/* Start adding user code. Do not edit comment generated here */
void Delay_10ms()
{
UINT i,j;
for(i = 0; i < 2000; i++)
{
for(j = 0; j< 27; j++);
}
}
void led_flicker()
{
PCM = Pn2_OUTPUT_1 | Pn3_OUTPUT_1;
Delay_10ms();
PCM = Pn2_OUTPUT_0 | Pn3_OUTPUT_0;
Delay_10ms();
}
/* End user code adding. Do not edit comment generated here */
b. 修改主函数。如下:
void main(void)
{
SystemInit();
/* Start user code. Do not edit comment generated here */
while (1) {
led_flicker(); //闪灯
}
/* End user code. Do not edit comment generated here */
}
Applilet2工具的使用过程大概就是这样,根据自己的配置需要增加相应配置。
端口PCD1—PWM10_HB0INA—R152、PCS6—PWM11HB0INB—R154定时10s测试代码如下:
void PORT_Init(void)
{
PMCD = PMn0_MODE_DEFAULT | PMn1_MODE_OUTPUT | PMn2_MODE_DEFAULT | PMn3_MODE_DEFAULT | PMn4_MODE_DEFAULT | PMn5_MODE_DEFAULT | PMn6_MODE_DEFAULT | PMn7_MODE_DEFAULT;
PMCS = PMn0_MODE_DEFAULT | PMn1_MODE_DEFAULT | PMn2_MODE_DEFAULT | PMn3_MODE_DEFAULT | PMn4_MODE_DEFAULT | PMn5_MODE_DEFAULT | PMn6_MODE_OUTPUT | PMn7_MODE_DEFAULT;
PMCCS = PMCn6_OPER_PORT;
}
/* Start adding user code. Do not edit comment generated here */
void Delay() //定时10s
{
UINT i,j,k;
for(i = 0; i < 2000; i++)
{
for(j = 0; j< 27000; j++);
}
}
void flicker()
{
PCD = Pn1_OUTPUT_0;
PCS = Pn6_OUTPUT_1;
Delay();
PCD = Pn1_OUTPUT_1;
PCS = Pn6_OUTPUT_0;
Delay();
}
/* End user code adding. Do not edit comment generated here */
通过示波器观察R152、R154脚波形如下:
PCD1_R152_10s
PCS6_R154_10s
Applilet2是V850芯片入门很好的小工具, 借助这个工具可以总览芯片架构及芯片具有的模块, 是帮助初学者的入门利器.
类似的像飞思卡尔有PE配置工具, 手头有飞思卡尔板子的可以参考一下, 从基础的动手尝试.