1、编译环境:
根据Tiny4412用户手册.pdf中的3.2节完成开发环境的配置:
2、新增内核日志打印宏定义
#define LOGE(fmt, ...) printk(KERN_ERR "[E]"LOG_TAG"[%s][%s][%d]"fmt, __FILE__, __func__, __LINE__, ##__VA_ARGS__)
#define LOGD(fmt, ...) printk(KERN_DEBUG "[D]"LOG_TAG"[%s][%s][%d]"fmt, __FILE__, __func__, __LINE__, ##__VA_ARGS__)
#define LOGI(fmt, ...) printk(KERN_INFO "[I]"LOG_TAG"[%s][%s][%d]"fmt, __FILE__, __func__, __LINE__, ##__VA_ARGS__)
#define LOGW(fmt, ...) printk(KERN_WARNING "[W]"LOG_TAG"[%s][%s][%d]"fmt, __FILE__, __func__, __LINE__, ##__VA_ARGS__)
#define FUNC_ENTER() printk(KERN_INFO "[I]"LOG_TAG"[%s][%s][%d] FUNC_ENTER", __FILE__, __func__, __LINE__)
#define FUNC_EXIT() printk(KERN_INFO "[I]"LOG_TAG"[%s][%s][%d] FUNC_EXIT", __FILE__, __func__, __LINE__)
3、日志打印
在函数start_kernel入口加上FUNC_ENTER();
asmlinkage void __init start_kernel(void)
{
FUNC_ENTER();
char * command_line;
extern const struct kernel_param __start___param[], __stop___param[];
smp_setup_processor_id();
日志打印信息:
Booting from SD
Uncompressing Linux... done, booting the kernel.
[ 0.000000] [I][main][init/main.c][start_kernel][460] FUNC_ENTER