SkyEye-1.3.2发布
经过几个月的开发,Skyeye-1.3.2可以发布了。相对于上一个版本,我们的主要修改为:* 添加了S3C6410的模拟,可以运行不加修改的linux系统,希望将来可以运行android。相关文档在:
https://sourceforge.net/apps/trac/skyeye/wiki/Linux#a5Linux-2.6.35onS3c6410platform
* 添加了一个独立的16550的uart模块。这样可以在任何虚拟开发板上通过修改配置文件来添加uart 16550的模块。
* 添加了信号和地址映射API,支持模块化的外设组件。
* 添加了一个调度器用来实现异步IO
* 添加了一个SOC目录,把所有arm的SOC模拟以独立的模块放到这个目录下。
一些小的修改有:
* 添加了一个load_file选项,来加载任意文件到内存地址
* 对gdb远程调试的一些小的修改
* 添加了最新版本的linux的测试用例
下载地址:
http://sourceforge.net/projects/skyeye
报告bug:
https://sourceforge.net/tracker/?group_id=85554&atid=576533
文档:
一共有四个pdf格式文档:中文的skyeye user manual, skyeye API, skyeye internals 和英文的skyeye user manual
Wiki:
https://sourceforge.net/apps/trac/skyeye/wiki
已知问题:
flash模拟和lcd模拟在32系统下运行不正常。Windows系统下不能编译SkyEye。预计下一个版本会解决这些问题。
感谢所有参与Skyeye-1.3.2_rc1版本开发的人。
- Thanks
- MK
添加了信号和地址映射API
* 添加了信号和地址映射API,支持模块化的外设组件。这个是在哪里实现的呢,是哪个函数呢 参考文件common/include/skyeye_signal.h,如下:
57 typedef union interrupt_signal{
58 arm_signal_t arm_signal;
59 mips_signal_t mips_signal;
60 powerpc_signal_t powerpc_signal;
61 }interrupt_signal_t;
62
63 exception_t send_signal(interrupt_signal_t* signal);
64
16550的uart模块
这个模块最终调用的底层的读写函数是添加了uart-16550模块的开发板上的uart模块的term或者stdio模式的读写吗。uart_16550怎么用呢,有测试例子吗? 可以用SkyEye的arm_hello测试用例进行测试1. 在skyeye.conf中添加如下行
uart_16550:base=0xe1000000, length=0x100, irq=0x20
表示在系统中添加了一个16550的uart外设。uart 16550的io起始地址是0xe1000000, 长度是0x100,你可以通过这个地址读写uart的寄存器。中断号为0x20
2. 启动SkyEye
运行 start命令启动SkyEye时候,可以用 show-map看当前的地址空间,可以看到uart_16550映射的地址空间,如下输出:
Start Addr Length Type
0x1000000 0x1400000 memory
0xf0000000 0x0 IO
0xe1000000 0xe1000100 IO
3.
修改测试用例中hello.c中
13 long* paddr=(long*)0xfffd001c;
为
13 long* paddr=(long*)0xe100 0000;
4. 重新编译arm_hello的测试用例,并运行,可以发现串口终端可以输出hello。这时模拟器用的串口是我们配置的uart_16550组件。
5. 通过这种方式,我们可以编写任何的SkyEye外设模块以及其他模块
Thanks
MK
页:
[1]