新闻中心

EEPW首页>EDA/PCB>设计应用> 如何移植Linux到晶心平台

如何移植Linux到晶心平台

作者: 时间:2012-03-30 来源:网络 收藏

4.2.3. Kernel 解压缩与software breakpoint
在进行kernel 调试时,如果在低地址处,例如:head.S中进行调试,当设定 software breakpoint时,会有breakpoint无法停下来与AICE 断线的情况发生。原因是当使用者设定software breakpoint时,breakpoint处的instruction会修改并加入break instruction。但kernel解压缩时会将调试的程序代码覆盖造成与GDB调试不一致性而产生错误。解决的方法就是原设定software breakpoint改为hardware breakpoint,这样就可以避免因kernel解压缩所造成调试的错误,降低调试时的困难度。



4.2.4. PA/VA 观念说明与调试要领
在原始码arch/nds32/kernel/head.S中
la $lp, __mmap_switched
mtsr $lp, $IPC
iret

执行完iret后,系统就会从PA转成VA,MMU translation status从translation off转为translation on在此分界处调试规则如下所述,如果观念不清楚及容易产生调试时的错误,请务必牢记。

4.2.4.1. MMU translation off 时期调试

在这个时期调试,VA是不存在的。所有的IO address与memory都是PA没有VA,如果调试地址设成VA,容易hit illegal address 而造成exception。

4.2.4.2. MMU translation on 时期调试
在这个时期调试,PA是不存在的。所有的IO address与memory都是VA没有PA,如果调试地址设成PA,容易hit illegal address 而造成exception.

4.2.5.的基础组件

MMU translation on后,很快就会进入start_kernel 函数,接下来的重点就是基础组件,那就是interrupt,timer and UART。当这3个device移植成功后,的架构就建立起来了,printk也可以用了,Linux已经可以正常的运作。如果没有意外,可以执行完kernel甚至将filesystem带起来。接下来用户可以将自己的周边组件一个一个的device driver移植入系统。当周边组件移植完成后,Linux系统移植到就完成了。

5. 结语

Linux操作系统运作在已有多年的时间。各式各样的Linux软件运作在不计其数。皆可证明Linux操作系统运作结合晶心平台是一个稳定与成熟的产品,只要能明了熟悉Linux 移植的技巧与重点,使用晶心平台开发Linux的产品将是一件愉快与简单的工作。

linux操作系统文章专题:linux操作系统详解(linux不再难懂)

上一页 1 2 3 4 下一页

评论


相关推荐

技术专区

关闭