
boot
淡泊的猪
对的事情,坚持做
展开
-
boot可加载到任意地址执行的方法
当链接地址跟加载地址不一致时,将代码拷贝至链接地址处,并跳转到目标链接地址去执行,这样实现的一个好处是可以将boot加载到任意地址去执行,由boot自行搬移到链接地址,实现代码如下,boot入口函数,cpu为mips:LEAF(_start) #if 1 // relocation bal set_ra // nop 1: move t0, ra la t1, _start la t2, 1b s...原创 2017-06-28 16:53:29 · 303 阅读 · 0 评论 -
boot中的行编辑功能
一 行编辑的由来 在和程序交互的过程中,用户输入难免会出错,如果输入错误而不能修改,那该是一种很不友好的体验,于是行编辑出现了,用户在输入过程中可以删除,粘贴,移动光标,在光标处插入,可以翻看历史命令,只有当用户确认输入是正确无误,才按回车将输入结果提交给程序。 如果行编辑功能由用户程序来实现,那么将增加用户程序编程的难度,而且很多行编辑功能基本是相似的,于是linux就把它放在了内核中,也就原创 2017-07-13 14:41:10 · 317 阅读 · 0 评论 -
boot中的命令行解析器
当boot从终端读取一行输入后,该怎么解释执行呢,怎么判断一条命令什么时候结束,用户输入的是一条命令还是多条命令? 下面是boot中的重要代码片段: int boot_docommands(char *buf) { queue_t cmdqueue; ui_command_t *cmd; int status = CMD_ERR_BLANK; int t原创 2017-07-14 09:21:58 · 364 阅读 · 0 评论 -
boot中的malloc实现分析
初始化内存堆部分:cfe_main(){ /* * Initialize the memory allocator */ KMEMINIT((unsigned char *) (uintptr_t) mem_heapstart, ((CFG_HEAP_SIZE)*1024));}#define KMEMINIT(buffer,length) kmemin...原创 2018-03-13 09:23:21 · 980 阅读 · 0 评论