S12G128底层代码分析
来源:互联网 发布:健身 饮酒 知乎 编辑:程序博客网 时间:2024/06/05 18:44
下决定转软件了,不知是福是祸,不管如何先努力再说。
看别人的代码真心痛苦,而且是商业生成的。但是不一点一点的看代码,又怎么会写呢,所以从底层代码一点一点看吧。
10月23日
Rte_Init包含Mcu_InitClock(时钟初始化)、Fls_Init(HLASH初始化)、LinIf_Init(LIN通讯初始化)、Gpt_Init(中断定时器初始化)、IoHwAb_Init(IO口初始化)、Com_Init()、InitSensor_Parameter()、InitSwitch_Parameter()、InitKnobRes_Parameter();
时钟的初始化:
1、将时钟保护寄存器CPMUPROT的保护关闭,写0x26(00100110);
2、将时钟选择寄存器CPMUCLKS选择为PLL时钟源,写0x80(10000000);
3、选择时钟参数CPMUREFDIV = 0x80(不分频),CPMUSYNR = 0x01(fVCO = 4*fPLL),CPMUPOSTDIV = 0x00(fBUS = fPLL/2);
4、将外部时钟寄存器CPMUOSC开启,写0x80(10000000),外部时钟打开;
5、等待这些配置准备好((CPMUFLG & 0x08 == 0)||(CPMUFLG & 0x01 == 0));
6、将时钟保护寄存器CPMUPROT的保护开启,写0x00;
7、延时一段时间,然后返回OK;
FLASH及EEPROM的初始化:
1、配置FLASH时钟寄存器FCLKDIV,且根据FLASH状态寄存器FSTAT的CCIF位判断是否操作成功;
2、操作FSTAT寄存器,清除标志位且将ACCERR,FPVIOL置1;
3、EEPROM直接写并进行CRC校验;
LIN通讯初始化:
商业代码没得看,恶心,这种结构体嵌套,打算从应用看在分析了。
中断定时器初始化:
1、TSCR1高位置0,关闭定时器;
2、TSCR2时钟分频选择为BUSCLOCK/128;
3、
---未完待续---
- S12G128底层代码分析
- UBOOT 的 lowlevel_init.S,代码分析,底层分析,底层初始化
- UBOOT 的 lowlevel_init.S,代码分析,底层分析,底层初始化
- Ascent代码分析2-底层shared
- Nova创建虚拟机的底层代码分析
- MTD(2)---nand flash的底层驱动代码分析 .
- MTD(2)---nand flash的底层驱动代码分析
- CyclicBarrier核心代码dowait()方法分析(底层实现机制)
- MTD(2)---nand flash的底层驱动代码分析
- java底层代码分析:Java NIO原理图文分析及代码实现
- IL代码底层运行机制
- 公共配置底层代码
- 公共配置底层代码
- IL代码底层运行机制
- IL代码底层运行机制
- IL代码底层运行机制
- web服务器底层代码
- socket底层代码
- 讲给Android程序员看的前端教程(02)——HTML5标签(1)
- 排序(大话数据结构阅读笔记)
- Linux单元小结(11)
- windows常用命令
- delphi读取.ini配置文件
- S12G128底层代码分析
- jeecg中上传附件的处理
- ByteArrayinputStream与ByteArrayOutputStream,printStream
- Python按位异或运算符^应用案例一则:查找只出现一次的数字
- Python编程一定要注意的那些“坑”(八):赋值运算符=
- Go语言项目Beego的学习
- 湖南跑胡子算法
- 实现maven管理的Javaweb项目的proguard代码混淆功能
- linux开机自动执行脚本