DM365 spi_norflash无操作系统启动和sys_bios启动(三)

来源:互联网 发布:java思想 编辑:程序博客网 时间:2024/06/06 03:53

七:第五次启动实验(UART测试实验,测试程序在SYS/BIOS系统下实现)

经过第四次的实验,成功启动了SYS/BIOS系统,这次的实验是通过UART测试cache和中断打开的情况下,系统能否正常的启动。

按照点灯的方法来测试UART程序,串口最终是没有数据输出的,最终找到2出问题:

1:经过测试,中断向量表不能放到DDR内,如果放到DDR内系统不能正常工作,在仿真器环境下也不能正常的工作。解决办法是将vecs段放在片内,首地址为0x00000000。在第一个UBL 中不占用0x00000000开始的一段地址。然后在UBL程序中在导入SYS/BIOS程序的时候将vecs段导入到片内。

2:由于在这个测试代码下的cache的打开,而第一个UBL个UBL工程也是默认的打开cache,所以在程序跳转的时候就会产生cache的一致性的问题,导致程序不能正常的执行。解决办法是:在第一个UBL工程里将cache和 中断均关闭,于是在第一个UBL的_c_int00函数前加入了一段汇编的启动代码,而且将这个启动代码配置为入口函数,配置方法:

八:调试的方法

由于程序是烧写到Flash中的,然后在上电后自动运行的,所以在脱离的仿真器的情况下,不能很好的看到程序的执行情况,于是利用直接连接目标板的方法进行仿真,就是在程序烧入到Flash之后,然后对目标板重新上电,然后利用仿真器连接目标板,查看片内和DDR上的数据,然后通过更改PC指针来进行程序的调试,连接方法如下:

1:找到目标板配置文件,然后点击Launch SelectedConfiguration


2:然后进行目标板的连接:


九:存在的一些问题:

1:ARM工作模式的修改 需要手动修改bin文件,比较麻烦。

2:bin文件的生成,需要手动的导出DDR中的数据,也是操作比较麻烦。



0 0