打印
[DSP编程]

【连载】DaVinci 把玩实录

[复制链接]
楼主: dong_abc
手机看帖
扫描二维码
随时随地手机跟帖
61
lofky 发表于 2013-10-30 19:45
楼主,也带带我

哪里,楼主谦虚了,高手的境界不在于自己会,而在于让更多的人都会,是吧,哈哈
笔记,是为了让我们这些初学者上手更快

使用特权

评论回复
62
dong_abc|  楼主 | 2013-10-30 23:31 | 只看该作者
Codec Engine是ARM和DSP之间通讯的一个桥梁,也是达芬奇最重要的一个内容,对于ARM应用工程师来说。
查看网盘里的这个文档CE_INSTALL_DIR/examples/build_instructions.html file.
可以很清晰的知道如何编译、运行一个Codec Engine实例。


使用特权

评论回复
63
dong_abc|  楼主 | 2013-10-30 23:35 | 只看该作者
我晕,没注意回复几个帖子还要审核,估计重复n次了。

使用特权

评论回复
64
dong_abc|  楼主 | 2013-11-1 21:41 | 只看该作者
本帖最后由 dong_abc 于 2013-11-1 22:20 编辑

null

使用特权

评论回复
65
dong_abc|  楼主 | 2013-11-1 21:42 | 只看该作者
本帖最后由 dong_abc 于 2013-11-1 21:57 编辑

在楼上网盘/DVSDK安装目录下 有个build_instructions.html。 看看就知道如何编译、运行一个DVSDK的demo。 也能很清晰的看出一个完整的dvsdk应用程序所需要的组件。
楼下copy一段出来预览一下。

使用特权

评论回复
66
dong_abc|  楼主 | 2013-11-1 21:52 | 只看该作者
Building the examples: step-by-step instructions

1. [Optional] Copy the entire "examples" tree out of the product

This step is optional, but recommended if you plan to modify the samples in any way. It will ensure you have a backup copy of the original examples, as provided by the Codec Engine product.

Important: throughout the rest of this document, we will use the following notation:
•<CE_EXAMPLES_INSTALL_DIR> - absolute path of the examples directory or the copy you made, e.g. /usr/work/examples
•<CE_INSTALL_DIR> - root directory of your Codec Engine installation. The original examples are in <CE_INSTALL_DIR>/examples.
•<BIOS_INSTALL_DIR> - root directory of your DSP/BIOS installation.
•<XDC_INSTALL_DIR> - root directory of your xdctools installation.
•directory/file - position of the file relative to the examples directory; for examples, ti/sdo/ce/examples/codecs/makefile refers to <CE_EXAMPLES_INSTALL_DIR>ti/sdo/ce/examples/codecs/makefile.

2. Edit xdcpaths.mak to customize the build for your software installation and your hardware

At the root of the Examples directory is a build-related file named xdcpaths.mak that all Codec Engine example makefiles include. All users must edit this file to specify where various software components needed by Codec Engine are on their system, and often to narrow the list of hardware platforms to build for (thereby reducing the example build time and possibly the scope of external components).

The variables defined in xdcpaths.mak that most users must assign are: DEVICES, GPPOS, PROGRAMS, and various *_INSTALL_DIR variables. Each are described more below as well as in comments throughout the xdcpaths.mak file.

Advanced users will note that these GNU make-based variables can be overridden on the command line. As a result, it is possible to tailor these makefiles without modifying them - by simply setting the variables on the command line when running "gmake".

2.1 xdcpaths.mak's DEVICES variable

The DEVICES variable indicates which hardware platforms should be built for. Most users are only interested in building for a single platform, and the other platforms can be removed from the DEVICES variable.

Note that there is a one-to-one mapping between the "short name" in the DEVICES macro and the "platform package" which is used. For example, the OMAP3530 value in DEVICES maps to the ti.platforms.evmOMAP3530 platform package.

2.2 xdcpaths.mak's GPPOS variable

The GPPOS variable indicates which GPP (General Purpose Processor, often an ARM) OS's should be built for. Most users are only interested in building for a single GPP OS (e.g. WinCE or Linux glibc or Linux uClibc), and the other GPP OS's can be removed from the GPPOS variable.

Note that there is a one-to-one mapping between the "short name" in the GPPOS macro and the "target module" which is used. For example, the WINCE value in GPPOS maps to the microsoft.targets.arm.WinCE target Module.

2.3 xdcpaths.mak's PROGRAMS variable

The PROGRAMS variable indicates roughly which system architecture the examples should be built for. Generally, Codec Engine supports "local" and "remote" codecs, and as a result there are 3 types of executables that can be built - APP_LOCAL, APP_CLIENT and DSP_SERVER.

APP_LOCAL indicates that all examples that support the apps and codecs running on the same processor should be built. This is typically set for single core devices (e.g. DM365, DM6437), but can als be set for multi-core devices (e.g. OMAP3530, DM6446) where the app and codec run on either the GPP or the DSP.

APP_CLIENT and DSP_SERVER typically go together, and indicate that all examples that support remote execution of codecs should be built. If DSP_SERVER is set in the PROGRAMS variable and an appropriate multi-core platform is set in the DEVICES variable, the examples in examples/ti/sdo/ce/examples/servers may be built. APP_CLIENT indicates the "client" side of a "client/server" system, so GPP-side apps will be built (for the appropriate GPP OS's and hardware platforms set in GPPOS and DEVICES respectively).

Note that you can set all 3 (APP_LOCAL, APP_CLIENT, and DSP_SERVER) or any subset of them. As a further example, if only DSP_SERVER is set, no applications will be built, but all components required to create a server (including codecs) will be built.

2.4 xdcpaths.mak's various *_INSTALL_DIR, CGTOOLS_* and CC_* variables

The xdcpaths.mak file also contains variables to indicate where products which Codec Engine may depend on are installed. The list of dependent products is a direct result of what values are assigned in the DEVICES, GPPOS and PROGRAMS variables. For example, if you've set PROGRAMS to only APP_LOCAL, DEVICES to only DM355, and GPP_OS to LINUX_UCLIBC, you aren't required to provide DSPLINK_INSTALL_DIR, BIOS_INSTALL_DIR, CGTOOLS_V5T or CC_V5T

Further, if you're using a "full" installation of Codec Engine (see  http://tiexpressdsp.com/index.ph ... d_others_don.27t.3F for more details), many of the dependencies will be "auto-assigned" for you to the cetools/packages directory.

Please refer to the comments throughout xdcpaths.mak for more details.

Each directory contains a GNU makefile which enables you to build the sample in the current directory. Top-level directories also contain a makefile which steps into subdirectories and builds all the examples under the parent directory.

FYI, the xdcpaths.mak file is included by the individual makefiles for all the example codecs, servers, and applications.

Please keep in mind that MOST BUILD TROUBLES OCCUR WHEN ONE OF THE VARIOUS *_INSTALL_DIR VARIABLES ARE INCORRECT! Make sure there are no extra spaces (check the end of lines!), that every individual path (segment separated by the semicolon) is correct, character for character, and the build process is very likely to go smoothly.

3. Build example codecs

Change directory to ti/sdo/ce/examples/codecs and type

    gmake clean
     gmake

Alternatively, you can change into a specific codec's directory (e.g. ti/sdo/ce/examples/codecs/viddec_copy), and type

    gmake clean
     gmake

4. Build example extensions

Change directory to ti/sdo/ce/examples/extensions and type

    gmake clean
     gmake

Alternatively, you can change into a specific example extension directory (e.g. ti/sdo/ce/examples/extensions/scale), and type

    gmake clean
     gmake

5. Build example DSP servers

Note that this is only necessary for dual processor environments, like DM6446.

Change directory to ti/sdo/ce/examples/servers and type

    gmake clean
     gmake


Alternatively, you can change into a specific server's directory (e.g. ti/sdo/ce/examples/servers/video_copy), and type

    gmake clean
     gmake


Note: when developing your own codecs and applications, you will likely take one of the DSP server sample and modify it to suit your needs. These are the source files for this server application that you need to know about:
•*.cfg: Configuration script that determines what codecs should be included in the server, and how some of the components (e.g. DSKT2 and DMAN3) will be configured.
•*.tcf: TConf file for the app. It is often set to allow for a generous heap and static code and data. Be very careful with changing the memory map.
•main.c: generic main()
•link.cmd: application specific linker command file.

6. Build the GPP applications

Change directory to ti/sdo/ce/examples/apps (where the makefile is) and type

    gmake clean
     gmake

使用特权

评论回复
67
weiwang10| | 2013-11-1 21:55 | 只看该作者
楼主好像进度很快啊,才几天时间就看了这么多东西了。12楼头像看着像个熟人,三年前群里带着入门ARM的大神。

使用特权

评论回复
68
dong_abc|  楼主 | 2013-11-1 22:14 | 只看该作者
weiwang10 发表于 2013-11-1 21:55
楼主好像进度很快啊,才几天时间就看了这么多东西了。12楼头像看着像个熟人,三年前群里带着入门ARM的大神 ...

晕,这还快呀? 还没开始。 这么多天才摸清楚DVSDK怎么运作的。
对于ARM端的应用层coder来说,只需要调用DMAI接口就完事了。DMAI把底层的组件全打包封装好了。

这么个DVSDK框架就到这里,安装目录每个组件下面都有说明文档pdf,耐心看看就知道了。
接下来才刚刚开始,DSP玩的不是CPU,主要玩算法。

熟悉一下常用算法库先......

使用特权

评论回复
69
dong_abc|  楼主 | 2013-11-1 22:16 | 只看该作者
本帖最后由 dong_abc 于 2013-11-3 06:02 编辑

编译了一下dvsdk,发现一个致命的错误,dvsdk安装目录不能有点。 我的安装目录是/davinci/dvsdk4.03  ,报错不支持有‘.’的目录。


重装了dvsdk(/davinci/dvsdk4_03),重新编译OK.  浪费好几个小时。
                  

使用特权

评论回复
70
dong_abc|  楼主 | 2013-11-1 22:17 | 只看该作者
本帖最后由 dong_abc 于 2013-11-3 01:31 编辑

准备了一下 x-loader,u-boot ,kernel ,rootfs .都是dvsdk自带的,板子拿回来可以写进去瞧瞧。
不过这些玩意很无聊的说。刚才找了些算法库的应用文档,看着头晕,还是看看如何调用API省心。
明天放风筝去,散散心......

使用特权

评论回复
71
dong_abc|  楼主 | 2013-11-4 02:07 | 只看该作者
如何折腾davinci的DSP端算法, 在德州仪器在线技术支持社区说的很清楚。这个社区非常好,很多问题都能在上面找到答案。
http://www.deyisupport.com/quest ... ors/f/39/t/670.aspx

使用特权

评论回复
72
dong_abc|  楼主 | 2013-11-4 02:36 | 只看该作者
可以不用Codec Engine 框架去调用DSP端算法,直接把davinci当一颗纯DSP用,看了一下文档,貌视很繁琐的说。
那天试试。先按TI的套路走,把自己的算法做成DMAI标准接口。

使用特权

评论回复
73
hbicecream| | 2013-11-4 09:19 | 只看该作者
玩达芬奇的不多啊,玩3730的就更少,mark一下一起玩

使用特权

评论回复
74
dong_abc|  楼主 | 2013-11-5 01:27 | 只看该作者
本帖最后由 dong_abc 于 2013-11-5 01:36 编辑

在csdn找到一个傻瓜文档。http://bbs.csdn.net/topics/370205213
谁看了都会玩davinci, 不信,看楼下。

使用特权

评论回复
75
dong_abc|  楼主 | 2013-11-5 01:28 | 只看该作者
5. davinci程序开发
a) codec程序开发
       开发Ti程序最简单的方法,复制例程,然后在本例程基础上修改。以下以制作直方图统计为例,说明操作步骤如下:
i. 复制
复制dvsdk_3_00_02_44/codec_engine_2_24/examples/ti/sdo/ce/examples/codecs/目录下的videnc_copy目录, 改变本目录的安全属性,使一般用户可读写。
ii. 改目录名和文件名
首先将复制的目录名改为videnc_histogram, 然后进入目录做如下更改
videnc_copy.c 改为 videnc_histogram.c
VIDENC_COPY.xdc 改为VIDENC_HISTOGRAM.xdc (注意大写)
VIDENC_COPY.xs 改为VIDENC_HISTOGRAM.xs (注意大写)
videnc_copy_ti.h 改为videnc_histogram_ti.h
videnc_copy_ti_priv.h 改为videnc_histogram_ti_priv.h
iii. 改文件内容
1. Makefile内容不变
2. package.bld: 打开package.bld, 查找替换文件中的copy 为 histogram
3. Package.mak 是自动生成的文件,不变。
4. Package.xdc: 打开Package. xdc, 改 copy为histogram, 改COPY为 HISTOGRAM
5. Package.xs: 打开Package.xs, 查找替换文件中的copy 为 histogram, 查找替换文件中的COPY 为 HISTOGRAM
6. Videnc_histogram.c: 打开videnc_histogram.c, 查找替换文件中的copy 为 histogram,查找替换文件中的COPY 为 HISTOGRAM
7. VIDENC_HISTOGRAM.xdc: 打开VIDENC_HISTOGRAM.xdc,查找替换文件中的COPY 为 HISTOGRAM
8. VIDENC_HISTOGRAM.xs不变
9. videnc_histogram_ti.h: 打开videnc_histogram_ti.h,查找替换文件中的COPY 为 HISTOGRAM
10. videnc_histogram_ti_priv.h: 打开videnc_histogram_ti_priv.h,查找替换文件中的COPY 为 HISTOGRAM
iv. 添加算法
打开Videnc_histogram.c
想加算法的话,就用自己的算法替换第 333 行到 381 行的复制语句,不做替换是就是个简单的内存复制,我们暂不加自己的算法。
v. 编译
在命令窗口中进入本工程的根目录, 先调用make clean清过程文件,再调用用make 生成codec库, 这时在lib目录里可以生成videnc_histogram.a64P等库文件,如果没有生成这些文件,则说明之前中间哪一步做错了。

b) server程序开发
       开发Ti程序最简单的方法,复制例程,然后在本全程基础上修改。以下以制作直方图统计为例,说明操作步骤如下:
i. 复制
复制dvsdk_3_00_02_44/codec_engine_2_24/examples/ti/sdo/ce/examples/servers/目录下的all_codecs目录, 改变本目录的安全属性,使一般用户可读写。
ii. 改目录名和文件名
首先将复制的目录名改为video_histogram, 然后进入目录做如下更改
改all.cfg 为video_histogram.cfg
            改all.tcf 为video_histogram.tcf
iii. 改文件内容
1. link.cmd: 不变
2. main.c: 查找替换文件中的all_codecs为 video_histogram
3. package.bld: 查找替换文件中的all_codecs为 video_histogram, 替换   serverName = "all" 为  serverName = "video_histogram"
4. package.mak: 不变
5. package.xdc: 查找替换文件中的all_codecs为 histogram
6. video_histogram.cfg: 查找替换文件中的all_codecs 为 videnc_histogram, 查找替换videnc_copy为videnc_histogram,查找替换文件中的VIDENC_COPY 为 VIDENC_HISTOGRAM
iv. 编译
在命令窗口中进入本工程的根目录, 先调用make clean清过程文件,再调用用make 生成server库, 这时在工程的bin/ti_platforms_evm3530目录下可以生成video_histogram.x64P库文件,如果没有生成这个文件,则说明之前中间哪一步做错了。
c) 应用程序开发
开发Ti程序最简单的方法,复制例程,然后在本全程基础上修改。以下以制作直方图统计为例,说明操作步骤如下:
i. 复制
复制dvsdk_3_00_02_44/codec_engine_2_24/examples/ti/sdo/ce/examples/apps/目录下的video_copy目录, 改变本目录的安全属性,使一般用户可读写。
ii. 改目录名
首先将复制的目录名改为video_histogram, 然后进入目录做如下更改

使用特权

评论回复
76
dong_abc|  楼主 | 2013-11-5 01:30 | 只看该作者
iii. 改内容
1. remote.cfg : 查找替换文件中的video_copy为 video_histogram, 替换   all_codecs 为  video_histogram
2. local.cfg : 查找替换文件中的viddec_copy为 viddec_histogram, 替换   VIDDEC_COPY 为  VIDDEC_HISTOGRAM, 替换 video_copy为 video_histogram,
3. app.c
查找videnc_copy, 替换为videnc_histogram, 查找 video_copy, 替换为 video_histogram

iv. 编译
在命令窗口中进入本工程的根目录, 先调用dvsdk_3_00_02_44/codec_engine_2_24/examples/ti/sdo/ce/examples/apps/video_histogram/make clean清过程文件,再调用用dvsdk_3_00_02_44/codec_engine_2_24/examples/ti/sdo/ce/examples/apps/video_histogram/make 生成可执行程序, 这时在工程的/bin/ti_platforms_evm3530目录下可以生成app_remote.xv5T文件,如果没有生成这个文件,则说明之前中间哪一步做错了。
6. 利用nfs起动测试程序
i. 建立测试目录
虚拟机控制台下输入 mkdir -p ~/workdir/filesys/opt/dvsdk/xdm_test 建立测试目录
ii. 复制测试文件
a. 复制 cmem.ko, 虚拟机控制台下输入
realtimedsp@realtimedsp-desktop:~$ cp ~/workdir/omap3530/project/dvsdk_3_00_02_44/linuxutils_2_24_02/packages/ti/sdo/linuxutils/cmem/src/module/cmemk.ko ~/workdir/filesys/opt/dvsdk/xdm_test/

b. 复制 dsplink.ko, 虚拟机控制台下输入
realtimedsp@realtimedsp-desktop:~$ cp ~/workdir/omap3530/project/dvsdk_3_00_02_44/dsplink_1_61_03/packages/dsplink/gpp/export/BIN/Linux/OMAP3530/RELEASE/dsplinkk.ko ~/workdir/filesys/opt/dvsdk/xdm_test/

c. 复制 lpm_omap3530.ko, 虚拟机控制台下输入
realtimedsp@realtimedsp-desktop:~$ cp ~/workdir/omap3530/project/dvsdk_3_00_02_44/local_power_manager_1_24/packages/ti/bios/power/modules/omap3530/lpm/lpm_omap3530.ko ~/workdir/filesys/opt/dvsdk/xdm_test/

d. 复制 sdmak.ko, 虚拟机控制台下输入
realtimedsp@realtimedsp-desktop:~$ cp ~/workdir/omap3530/project/dvsdk_3_00_02_44/linuxutils_2_24_02/packages/ti/sdo/linuxutils/sdma/src/module/sdmak.ko ~/workdir/filesys/opt/dvsdk/xdm_test/

e. 复制loadmodules.sh, 模块加载/卸载脚本,虚拟机控制台下输入
realtimedsp@realtimedsp-desktop:~$ cp ~/workdir/omap3530/project/dvsdk_3_00_02_44/codec_engine_2_24/examples/apps/system_files/OMAP3530/*.sh /home/realtimedsp/workdir/filesys/opt/dvsdk/xdm_test/
f. 修改loadmodules.sh,输入
realtimedsp@realtimedsp-desktop:~$ gedit ~/workdir/filesys/opt/dvsdk/xdm_test/loadmodules.sh
将第58行内容改动如下
insmod cmemk.ko phys_start=0x84e00000 phys_end=0x86000000 pools=20x4096,10x131072,2x1048576,1x256000,8x829440,2x131072,10x4096

g. 复制arm应用程序 虚拟机输入
realtimedsp@realtimedsp-desktop:~$ cp ~/workdir/omap3530/project/dvsdk_3_00_02_44/codec_engine_2_24/examples/ti/sdo/ce/examples/apps/video_histogram/bin/ti_platforms_evm3530/app_remote.xv5T ~/workdir/filesys/opt/dvsdk/xdm_test/
h. 复制arm应用程序 虚拟机输入
realtimedsp@realtimedsp-desktop:~$ cp ~/workdir/omap3530/project/dvsdk_3_00_02_44/codec_engine_2_24/examples/ti/sdo/ce/examples/servers/video_histogram/bin/ti_platforms_evm3530/video_histogram.x64P ~/workdir/filesys/opt/dvsdk/xdm_test/
i. 复制测试用数据文件,虚拟机输入
realtimedsp@realtimedsp-desktop:~$ cp ~/workdir/omap3530/project/dvsdk_3_00_02_44/codec_engine_2_24/examples/ti/sdo/ce/examples/apps/video_histogram/in.dat /home/realtimedsp/workdir/filesys/opt/dvsdk/xdm_test/
j. 复制内核到tftpboot目录,没有则按照使用说明书编译一个
realtimedsp@realtimedsp-desktop:~$ cp ~/workdir/lsp/arch/arm/boot/uImage ~/workdir/tftpboot
7. 在ICETEK-OMAP3530-EVM实验箱上测试和运行
i. 断除ICETEK-OMAP3530-EVM系统电源,关闭实验箱左上角电源总开关。
ii. 取出ICETEK-OMAP3530-EVM系统配件箱中的串口通信电缆;用此线连接ICETEK-OMAP3530-EVM板上J26插座和PC机COM1插座。
iii. 取出ICETEK-OMAP3530-EVM系统配件箱中的以太网电缆;用此线连接ICETEK-OMAP3530-EVM板上以太网插座J13和PC机网络插座。
iv. 取出ICETEK-OMAP3530-EVM系统配件箱中的电源连接电缆;用此电缆连接实验箱左侧电源插座和220V交流供电接线插座。
v. 用视频线连接视频前端的摄像头到ICETEK-OMAP3530-EVM板的J33,视频输入
vi. 用lcd排线连接lcd70到evm的U13,做视频输出
vii. Pc机起动超级终端【Davinci-超级终端】
viii. 插入起动用sd卡到 ICETEK-OMAP3530-EVM 的J16
ix. 开启实验箱总电源,开启ICETEK-OMAP3530-EVM板的电源开关。正常情况下ICETEK-OMAP3530-EVM板上电源指示灯D12将亮起。
x. 观察【Davinci-超级终端】中的显示,当出现计数时,按回车,进行如下操作:
could not establish link
Hit any key to stop autoboot:  0   输入回车以暂停起动
OMAP3_EVM # setenv bootargs 'initcall_debug console=ttyS2,115200n8 noinitrd rw ip=192.168.1.77:192.168.1.103:192.168.1.1:255.255.255.0::eth0:off eth=70:64:66:75:66:6c root=/dev/nfs nfsroot=192.168.1.103:/home/realtimedsp/workdir/filesys, rootdelay=15 mem=78M'                                    输入起动参数,配置为nfs起动
OMAP3_EVM #  tftp 0x80200000 uImage     从tftp下载起动内核
OMAP3_EVM #  boot                       起动

......

initcall ip_auto_config+0x0/0xe08 returned 0 after 1547694 usecs
initcall ip_auto_config+0x0/0xe08 returned 0 after 1547694 usecs
<6>Waiting 15sec before mounting root device...
Waiting 15sec before mounting root device... 为保证顺利nfs起动,重新插拨一下网线

......

INIT: Entering runlevel: 5
Starting telnet daemon.
Starting syslogd/klogd: done
Starting thttpd.                             到这里说明nfs起动已经成功
i. 虚拟机下,起动控制台,输入如下
realtimedsp@realtimedsp-desktop:~$ telnet 192.168.1.77

Trying 192.168.1.77...
Connected to 192.168.1.77.
Escape character is '^]'.

_____                    _____           _         _   
|  _  |___ ___ ___ ___   |  _  |___ ___  |_|___ ___| |_
|     |  _| .'| . | . |  |   __|  _| . | | | -_|  _|  _|
|__|__|_| |__,|_  |___|  |__|  |_| |___|_| |___|___|_|  
              |___|                    |___|            

Arago Project http://arago-project.org omap3evm

Arago 2009.09 omap3evm


omap3evm login: root                 以根用户权限登录ICETEK-DM355-EVM嵌入式操作系统
root@omap3evm:~# cd /opt/dvsdk/xdm_test     进入程序测试目录
root@omap3evm:~# ./loadmodules.sh       加载组件,辅助调用dsp用
root@omap3evm:~# ./app_remote.xv5T   起动算法调用程序
ii.  这时程序应该可以运行了,只不过我们的算法现在还没有加入进去,他只是实现了一个视频文件的复制功能,程序运行后会在本目录下生成一个与in.dat一样大小的文件 out.dat,只不过这个复制过程是在dsp端运行的,而文件的读写过程是在arm端进行的。

使用特权

评论回复
77
dong_abc|  楼主 | 2013-11-10 02:50 | 只看该作者
把玩了几下板子,都懒得折腾了, 烧了几下系统,没什么意思。 把DSP玩成ARM了。

使用特权

评论回复
78
dong_abc|  楼主 | 2013-11-10 02:55 | 只看该作者
我发现这个davinci确实不适合用来入门DSP, 用来验证算法有些麻烦。
app、codec、server整完了还得搞一堆东西一起编译,靠!

使用特权

评论回复
79
dong_abc|  楼主 | 2013-11-10 07:08 | 只看该作者
能不能用仿真器调试davinci,有人试过吗?

使用特权

评论回复
80
dong_abc|  楼主 | 2013-11-10 07:14 | 只看该作者
找了一圈,竟然只有一个网页提到,仿真器仿真davinci, 也没说出个名堂http://blog.sina.com.cn/s/blog_6479e1a90100lzv7.html

使用特权

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

本版积分规则