4763|3

190

帖子

10

TA的资源

一粒金砂(中级)

楼主
 

[LPC54102]04、LPC5410x启动过程分析 [复制链接]

本帖最后由 dvd1478 于 2015-4-23 00:45 编辑

LPCXpressopen 进行lib方式的开发,不利于上电复位的流程,也做成我读按键的值都读了几天,真是糗大,最后是老老实实的跟踪一下。
1)复位启动
iar_startup_lpc5410x.s  主从模式(双核)的选择暂时不多分析,以后玩到双核再做分析
从shared_boot_entry为入口

iar_startup_lpc5410x.s

2) sysinit.c
在iar_startup_lpc5410x.s 的normal_boot

跳转到SystemInit
其内容包含以下的
1)SCB->VTOR  中断影响矢量表指针   在IAP、RAM运行,多程序的时候要进行修改的部分
2)FPU 的初始化,由于LPC5410x是Cortex M4 所以其包含了fpu的初始化(注意,并不是所有的Cortex M4都要初始化才可以使用的,例如,我用过一款Kinetix  K60 就不用初始化,直接打开宏调用函数即可,具体看芯片的手册或例程)
3) 系统时钟的初始化(这个很关键,必记录下先,以后再对其说明)
Chip_SystemInit  是在 sysinit_5410x.c 主要是设置系统时钟并为100MHz
Board_SystemInit 是在board_sysinit.c 主要系统时钟,以及引脚复用功能的确实
两者是二选一的,Chip_SystemInit 是针到LPC5410x芯片级的,Board_SystemInit 是根据开发板的具体设置而定的。
引脚复用功能的确定是很重要的,我是用万利的板子,却用了官方的例程,搞很久就是按键读出不了正确的数据,后来找到,原因在此。以后在GPIO 再说。
时钟的设置

可以使用IRC(内部振荡RC时钟)以及外部CLKIN时钟

BOARD_MAINCLOCKRATE 就是开发板子的系统时钟在,board.h进行设计的

以及设置CLKOUT的输出源(这个可以不输出,但还是保留,用示波器,直接观察时钟的频率这个更为直观)
Chip_Clock_SetCLKOUTSource(SYSCON_CLKOUTSRC_MAINCLK, 1);
还可以有以下选择
typedef enum {
SYSCON_CLKOUTSRC_MAINCLK = 0,
SYSCON_CLKOUTSRC_CLKIN,
SYSCON_CLKOUTSRC_WDTOSC,
SYSCON_CLKOUTSRC_IRC,
SYSCON_CLKOUTSRCA_OUTPUT,
SYSCON_CLKOUTSRC_RTC = 7
} CHIP_SYSCON_CLKOUTSRC_T;
4)__iar_program_start

这部分是iar编译器的实始化,堆、栈大小等分配,初始化变量也未初始化变量等申请,等等,最后跳转到main中
5)main


符值 到全局变量SystemCoreClock 方便知道系统时钟以及计算时间
后面的就比较方便了,在具体的实例在分析不再进行跟踪了

此帖出自NXP MCU论坛

最新回复

楼主分析不错,其实其他Cortex核的MCU都是这个步奏走的,都是大同小异  详情 回复 发表于 2015-4-23 23:57

赞赏

1

查看全部赞赏

点赞 关注
 

回复
举报

3836

帖子

19

TA的资源

纯净的硅(中级)

沙发
 
很详细,谢谢分享。
此帖出自NXP MCU论坛
 
 
 

回复

1291

帖子

0

TA的资源

纯净的硅(中级)

板凳
 
楼主分析不错,其实其他Cortex核的MCU都是这个步奏走的,都是大同小异
此帖出自NXP MCU论坛

点评

是的,很多的Cortex 核的MCU都是大概这样走,这并不是关键,关键在于设置初始化包含那些步骤,以及对应的函数与文件,方便日后有修改的需要时拿起来就能用!  详情 回复 发表于 2015-5-2 22:03
 
 
 

回复

190

帖子

10

TA的资源

一粒金砂(中级)

4
 
强仔00001 发表于 2015-4-23 23:57
楼主分析不错,其实其他Cortex核的MCU都是这个步奏走的,都是大同小异

是的,很多的Cortex 核的MCU都是大概这样走,这并不是关键,关键在于设置初始化包含那些步骤,以及对应的函数与文件,方便日后有修改的需要时拿起来就能用!
此帖出自NXP MCU论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表