高通sbl阶段ddr初始化怎么打印log
时间: 2023-07-12 07:16:16 浏览: 233
高通SBL阶段DDR初始化的Log可以通过串口输出,这需要使用串口工具来查看。下面简单介绍一下如何在SBL阶段打印Log。
1. 打印串口Log
在SBL阶段,在SDM845平台上,串口输出的波特率默认为115200,可以通过修改SBL的配置文件来设置波特率和输出的串口。在SBL的配置文件中,可以通过修改以下选项来打印串口Log:
```
CONFIG_BOOT_UART_NUM
CONFIG_BOOT_UART_BASE
CONFIG_BOOT_UART_CLK_HZ
CONFIG_BOOT_UART_BAUDRATE
```
其中,CONFIG_BOOT_UART_NUM表示串口的编号,CONFIG_BOOT_UART_BASE表示串口的基地址,CONFIG_BOOT_UART_CLK_HZ表示串口时钟的频率,CONFIG_BOOT_UART_BAUDRATE表示波特率。修改完配置文件后,重新编译SBL并烧录到设备上即可。
2. 查看串口Log
在设备上连接串口线,并使用串口工具打开相应的串口,即可查看串口输出的Log。常用的串口工具有SecureCRT、TeraTerm等,需要根据实际情况选择适合的工具。
注意:在SBL阶段,系统还没有启动,因此无法使用Android系统的Logcat工具来查看Log。
相关问题
高通sbl阶段ddr初始化阶段,有哪些函数可以打印log
在高通SBL阶段,DDR初始化阶段可以通过以下函数打印Log:
1. ddr_debug_init()
该函数用于初始化DDR调试模块,可以在函数内部打印Log。例如:
```
void ddr_debug_init(void)
{
ddr_printf("ddr_debug_init\n");
...
}
```
2. ddr_debug()
该函数用于打印DDR调试信息,可以在函数内部打印Log。例如:
```
void ddr_debug(uint32 level, const char *fmt, ...)
{
va_list ap;
...
va_start(ap, fmt);
vsnprintf(str, sizeof(str), fmt, ap);
va_end(ap);
ddr_printf("%s", str);
...
}
```
3. ddr_printf()
该函数用于打印DDR相关信息,可以在函数内部打印Log。例如:
```
void ddr_printf(const char *fmt, ...)
{
va_list ap;
...
va_start(ap, fmt);
vsnprintf(str, sizeof(str), fmt, ap);
va_end(ap);
uart_puts(str);
...
}
```
需要注意的是,这些函数都定义在DDR驱动程序中,如果需要使用这些函数打印Log,需要在代码中包含DDR驱动程序的头文件,并在代码中调用这些函数来打印Log。
高通sbl阶段ddr初始化的时候,有哪些函数可以打印log
在高通SBL阶段,DDR初始化的时候可以通过以下函数打印Log:
1. ddr_debug_init()
该函数用于初始化DDR调试模块,可以在函数内部打印Log。例如:
```
void ddr_debug_init(void)
{
ddr_printf("ddr_debug_init\n");
...
}
```
2. ddr_debug()
该函数用于打印DDR调试信息,可以在函数内部打印Log。例如:
```
void ddr_debug(uint32 level, const char *fmt, ...)
{
va_list ap;
...
va_start(ap, fmt);
vsnprintf(str, sizeof(str), fmt, ap);
va_end(ap);
ddr_printf("%s", str);
...
}
```
3. ddr_printf()
该函数用于打印DDR相关信息,可以在函数内部打印Log。例如:
```
void ddr_printf(const char *fmt, ...)
{
va_list ap;
...
va_start(ap, fmt);
vsnprintf(str, sizeof(str), fmt, ap);
va_end(ap);
uart_puts(str);
...
}
```
需要注意的是,这些函数都定义在DDR驱动程序中,如果需要使用这些函数打印Log,需要在代码中包含DDR驱动程序的头文件,并在代码中调用这些函数来打印Log。
阅读全文