当前位置:首页 >> 信息与通信 >>

展讯 开机流程介绍


L平台开机流程介绍

展讯通信 主讲人:Nick.Zhao

开机的条件
VBAT is high. PBINT is high CHINT is high ALARM INT

ad re Sp

um tr

on C

ia l nt de fi

2010-3-2

保密信息

.2

ROM Code软件流程
Start

Initialize the IRAM, Pin, UART and Keypad

USB Bootstrap Pin is Set? No

ad re Sp
Yes Send the Version String and go to UartBoot Mode

Key(0,0) is Pressed? No

um tr
No

on C
Yes

Yes

ia l nt de fi

Receive two 0x7e?

Remap and Jump to 0x0

Send the Version String and go to USB Boot Mode

2010-3-2

保密信息

.3

Before __main ? Code from tx_illdb.s ? Work flow – Disable interrupt – Abnormal reset check – Initialize clock and EMC access timing for nor platform – Enter SVC mode and setup SVC stack pointer – BL PM_Init – B __main

ad re Sp

um tr

on C

ia l nt de fi

2010-3-2

保密信息

.4

Enter __main ? 1. Copies nonroot (RO and RW) execution regions from their load addresses to their execution addresses. ? 2. Zeroes ZI regions. ? 3. Branches to __rt_entry. ? The library function __rt_entry() runs the program as follows: ? 1. Calls __rt_stackheap_init() to set up the stack and heap. ? 2. Calls __rt_lib_init() to initialize referenced library functions, initialize the locale and, if necessary, set up argc and argv for main(). ? 3. Calls main(), the user-level root of the application. ? 4. Calls exit() with the value returned by main().

ad re Sp

um tr

on C

ia l nt de fi

2010-3-2

保密信息

.5

Enter Main
? main(main.c)->SCI_KernelEnter(threadx_os.c)>tx_kernel_enter[_tx_initialize_kernel_enter (tx_api_thumb.h)]

?

_tx_initialize_kernel_enter(tx_ike.c)->
– – – –

_tx_initialize_low_level(tx_illdb.s) _tx_initialize_high_level(tx_ihl.c) tx_application_define(threadx_os.c)->SCI_ApplicationDefine(init.c) _tx_thread_schedule(tx_ts.s)

?

SCI_ApplicationDefine->
– – – – –

RM_SendRunModeRequest (); SaveHWRestartCondition(); SCI_InitHw(); SCI_InitRtos(); SCI_InitRef(0);

ad re Sp

um tr

on C

ia l nt de fi

2010-3-2

保密信息

.6

几个重要的模式
CALIBRATION_MODE 校准模式,APP不起来,工厂生产校准时进入。

ia l 发生Assert后重启,通常不再执行LCD初始化过程。 nt de WATCHDOG_RESET_MODE fi on 跟正常重启没有太多的不同。 C CALIBRATION_NV_ACCESS_MODE um tr 用来快速写IMEI号,ProductInfo等信息。 ad re CALIBRATION_POST_MODE Sp 在Calibration Mode后通过模式切换可进入到Calibration Post
ASSERT_BACK_MODE Mode。它和Normal Mode的区别在于在这种模式下没有LOG,不 Sleep。

2010-3-2

保密信息

.7

常见的不开机开机死机问题
常见原因有: 1. Flash配置不正确。 2. PIN脚配置不正确。 3. NV被破坏等原因。 4. 在EFS初始化前发生了Assert。 5. 硬件原因

常用的Debug手段:

ad e 1. 通过加开机Uartpr Trace,定位到死机位置。 S 2. 通过拉键盘灯或LCD背光的方法来定位死机位置。

um tr

on C

ia l nt de fi

使用拉LCD背光的方法需要注意先对Analog部分初始化,即调 ANA_Init(),然后再调GPIO_SetLcdBackLight()。

2010-3-2

保密信息

.8


赞助商链接
相关文章:
更多相关文章: