ZHCADN6 January 2024 DRA821U , DRA821U-Q1 , TDA4AL-Q1 , TDA4VH-Q1 , TDA4VL-Q1 , TDA4VM , TDA4VM-Q1
将多核日志打印到串行端口的软件级设计是一个复杂的过程。了解此多核日志输出系统有助于自定义自有系统输出的设计。默认情况下,U-BOOT 和内核会初始化一个串行端口用于日志输出。有关驱动程序和其他相关信息的详情,请参阅此 U-BOOT/内核文档。该串行端口始终在 A72 侧进行控制。A72 内核的日志将直接通过此串行端口而打印。但是,其他内核的日志首先被放入共享存储器中,然后由 A72 应用程序读取。具体过程如下:
typedef struct {
/**< Init by reader to 0 */
uint32_t log_rd_idx;/**< Init by writer to 0 */
uint32_t log_wr_idx;
/**< Init by writer to APP_LOG_AREA_VALID_FLAG.
reader will ignore this CPU shared mem log
until the writer sets this
to APP_LOG_AREA_VALID_FLAG */
uint32_t log_area_is_valid;
/**< CPU sync state */
uint32_t log_cpu_sync_state;
/**< Init by writer to CPU name, used by reader to add a prefix when writing to console device */
uint8_t log_cpu_name[APP_LOG_MAX_CPU_NAME];
/**< memory into which logs are written by this CPU */
uint8_t log_mem[APP_LOG_PER_CPU_MEM_SIZE];
} app_log_cpu_shared_mem_t;