打印

关于LINUX。谢谢了

[复制链接]
1642|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
olympics|  楼主 | 2009-3-2 23:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1 用虚拟机装LINUX要什么硬件配置跑起来不会慢(集成显卡的主板,1G以上的内存可以不可以?)
2 电脑主板没串口,用什么方法弄个串口最接近主板本身带的串口?(以前有个类似的帖子,还没找到) 转的串口在有虚拟机时要不要装LINXU的驱动?虚拟机下如何使用转的串口?
我用的虚拟机是VMWARE

相关帖子

沙发
goosen| | 2009-3-3 08:34 | 只看该作者

re

1)建议内存1G及以上,那样会好许多,对显卡没要求
2)可以配置使用主机串口。

使用特权

评论回复
板凳
olympics|  楼主 | 2009-3-3 16:46 | 只看该作者

22

使用特权

评论回复
地板
zzfff| | 2009-3-4 16:38 | 只看该作者

同上

也在想这个问题。

使用特权

评论回复
5
宇宙飞船| | 2009-3-4 17:06 | 只看该作者

俺还是比较落后的,没用过虚拟机串口,

也想知道效果。

使用特权

评论回复
6
armecos| | 2009-3-4 18:28 | 只看该作者

这里有虚拟机串口,

我用它做ecos在PC上的开发,Linux也能用,免驱动。《ecos增值包》里全包括了,不用到处找了。

********************************
* 手把手教你使用GDB调试ARM开发板 *
********************************
    2008/12/21  asdjf@163.com  www.armecos.com

    很多《ecos增值包》用户对于使用GDB调试EasyARM2200/SmartARM2200之类的ARM开发板非常感兴趣,但总是遇到各种障碍,可能原来的文档说明过于简单,现在把详细操作步骤总结如下,手把手地教会你GDB调试。
    
    《ecos增值包》里提供了现成的稳定环境,所有gcc、gdb、insight等程序都是已经被证明可以正常工作的,一切由于编译,开发工具版本不匹配,安装不完全等等原因引起的低级错误均不存在,在这个前提下,我们详细讨论GDB调试步骤。
    
    具体内容如下:
    
    GDB调试原理
    串口GDB配置
    网络GDB配置
    一个简单的命令行调试范例
    串口insight配置
    网络insight配置
    一个简单的图形化调试范例
    在虚拟机上使用GDB调试(VmWare + cygwin + gdb/insight)
    GDB命令使用说明
    
    我们先讲GDB调试原理,再讲最简单的命令行和图形化调试,包括配置和调试范例。考虑到ARM开发板资源有限,我们特意提供了PC机上虚拟调试的解决方案(仅限企业定制版用户),你可以先在PC机上虚拟调试,等调试差不多时再迁移到开发板上,好处是PC机调试速度特别快,资源丰富,无须添加其他设备,一台PC机足矣。最后,给出一个GDB常用命令总结,    不求全面,但求实用,更详细的使用方法可以通过GDB自带的help命令或者上网搜索得到。
    
    --------------
    | GDB调试原理 |
    --------------
    略
    
    --------------
    | 串口GDB配置 |
    --------------
    
在cygwin命令行输入arm-elf-gdb a.out
(gdb) set remotebaud 115200
(gdb) target remote COM1
Remote debugging using COM1
0x80007704 in ?? ()
(gdb) load
(gdb) list
(gdb) c
可以通过串口0调试a.out程序,注意:因为串口0已经用于GDB调试目的,所以被调试程序不能使用串口0,否则会发生冲突。

    --------------
    | 网络GDB配置 |
    --------------
    
在cygwin命令行输入arm-elf-gdb a.out
(gdb) target remote 192.168.0.6:9000
Remote debugging using 192.168.0.6:9000
0x80007704 in ?? ()
(gdb) load
Loading section .rom_vectors, size 0x40 lma 0x81010000
Loading section .text, size 0x14774 lma 0x81010040
Loading section .rodata, size 0x3c0 lma 0x810247b4
Loading section .data, size 0x6a4 lma 0x81024b74
Start address 0x81010040, load size 86552
Transfer rate: 62946 bits/sec, 298 bytes/write.
(gdb) list
(gdb) c
通过网口GDB调试a.out允许被调试程序使用串口0,因为不会冲突嘛!当你同时打开超级终端,就可以看到串口的输出信息。

    -------------------------
    | 一个简单的命令行调试范例 |
    -------------------------
    
    比如调试如下程序片段,taska是demo1.c文件里的一个函数,a.out是编译后的文件。
......

void taska(cyg_addrword_t data)
{
    int message = (int) data;
    int i = 0;
    int j = 0;
    
    for(;;)
    {
        printf(" AAAAAA111111 is active.thread data is %d. ",message);
        i = i + 1;
        j = j + 10;
        cyg_thread_delay(300);
    }
}

......
    
    在cygwin命令行输入:
$ arm-elf-gdb a.out
    
    设置GDB参数并加载被调试程序
(gdb) target remote 192.168.0.6:9000
(gdb) load
    
    在taska函数处设置断点
(gdb) break demo1.c:taska
    
    继续运行,遇到断点重新回到GDB命令行界面
(gdb) c
Continuing.

Breakpoint 1, taska (data=1) at demo1.c:11
11          int message = (int) data;
Current language:  auto; currently c
    
    使用list命令列出断点附近的源程序
(gdb) list
    
6       static cyg_thread thread_data[4];
7       static cyg_handle_t thread_handle[4];
8
9       void taska(cyg_addrword_t data)
10      {
11          int message = (int) data;
12          int i = 0;
13          int j = 0;
14
15          for(;;)

    按回车继续上一个命令,即:再执行一次list命令,接着列出后面的源程序
(gdb)
16          {
17              printf(" AAAAAA111111 is active.thread data is %d. ",message);

18              i = i + 1;
19              j = j + 10;
20              cyg_thread_delay(300);
21          }
22      }
23
24      void taskb(cyg_addrword_t data)
25      {

    使用n命令,单步调试,不进入函数内部
(gdb) n
12          int i = 0;
(gdb) n
13          int j = 0;
(gdb) n
17              printf(" AAAAAA111111 is active.thread data is %d. ",message);
(gdb) n
18              i = i + 1;
(gdb) n
19              j = j + 10;
(gdb) n
20              cyg_thread_delay(300);
(gdb) n
15          for(;;)
(gdb) n
17              printf(" AAAAAA111111 is active.thread data is %d. ",message);

    还可以使用display命令显示局部变量值,以后每次执行单步调试都会显示这个变量的值
(gdb) display i
1: i = 2
(gdb) n
18              i = i + 1;
1: i = 2
(gdb) n
19              j = j + 10;
1: i = 3

    如果出错,可以使用where命令了解出错位置附近的程序情况。
    
    ------------------
    | 串口insight配置 |
    ------------------
    
    使用arm-elf-insight a.out进入图形调试界面。
    
    在File -> targe settings...里设置
    Connection
    Target:     Remote/Serial
    Baud Rate:  115200
    Port:       com1
    
    ------------------
    | 网络insight配置 |
    ------------------
    
    使用arm-elf-insight a.out进入图形调试界面。
    
    在File -> targe settings...里设置
    Connection
    Target:    Remote/TCP
    Hostname:  172.168.0.6
    Port:      9000
    
    --------------------------
    | 一个简单的图形化调试范例 |
    --------------------------
    还是使用上面的程序例子,只不过换成图形化调试界面。
    如下图所示,图形化调试无须**烦琐的命令,方便设置/查看各种信息,大大方便了用户的使用。
    
    ------------------------------------------------------
    | 在虚拟机上使用GDB调试(VmWare + cygwin + gdb/insight) |
    ------------------------------------------------------
    使用虚拟机的好处是:无须额外添加硬件,仅在一台PC机上就可以搭建出ecos系统的GDB调试环境,速度快、成本低。支持键盘、屏幕,网卡,串口等设备。
    
    虚拟串口设置,使用VSPD软件虚拟一对直联串口COM3和COM4,COM3接VmWare虚拟机串口2,COM4接超级终端。
    
    
    设置启动盘,在VmWare的Floppy设备中指定使用redboot.flp软盘映像启动。这个redboot版本支持虚拟机的键盘、屏幕,网卡,串口,可以用i386-elf-gdb调试程序,无须硬件开发板。
    
    
    VmWare串口设置,VmWare缺省不支持串口,需要自行添加。建议添加两个串口设备,其中将串口2指向我们前面用VSPD软件虚拟出来的COM3。
    
    
    启动redboot。
    
    
    进入demo1.c图形调试界面,高亮条停止在断点处,鼠标停靠在变量上会自动显示出其值(如message=1),很方便。
    
    
    C与汇编混合显示模式MIXED,可以单步调试汇编码。可以用于学习C编译器是怎么把C语句编成汇编码的。
    
    
    除了用鼠标即时取变量值外,也可以通过局部变量窗口读/修改变量值。可以很清晰地显示复杂的类变量。
    
    
    将超级终端设置在虚拟串口COM4上,这样,VmWare从虚拟串口COM3上发送的信息就可以输出到超级终端上,不用额外添加硬件设备,一台PC全搞定。单步运行程序就可以在超级终端看到效果,直接修改寄存器、内存、变量等,可以看到程序执行发生相应变化。
    
    
    ------------------
    | GDB命令使用说明 |
    ------------------
    略,可以上网搜索详细说明。
    
    好啦,现在你就可以用最低成本调试RAM里的应用程序了(即使你只有一台PC机)。GDB(Insight)能够让你深入程序细节,随心所欲地调试程序。本解决方案特别适合低成本开发ecos程序。ecos与硬件无关,你基于ecos开发的应用程序可以不加改变地平滑移植到新的CPU处理器平台上,保值增值您的软件投资。

使用特权

评论回复
7
olympics|  楼主 | 2009-3-5 18:24 | 只看该作者

dddddddddddddddddddddddd

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

34

帖子

0

粉丝