CCS5.2.1暗装好之后,建工程找不到存档将新建存档C6678

TI&DSP多核C6678使用第三天
首先,现在是一月十七号,距离上一篇博客将近两个月了。现在是10:43分,还有三十分钟给我写这篇博客,下午要出去唱歌。正如我给某人说过的,什么都可以落下,就是玩的不能落下。呵呵,当然我知道什么该做的。
直入正题,坚哥上周五给了我板子TMDXEVM6678LE。给我一个星期时间入门,我差不多用了三天左右。其它的时间有些花在安卓上,还有周末去玩了。虽然一个星期完成了任务,但总的来说效率还可以再提高。
& & 首先,拿到板子,QSG(Quick Start
Guide)上面说的我照做了,但是用的是网口连接方法,当时我的电脑只有一个网卡,没配置成功。虽然今天看来,一个网卡也是可以配置的,但是当时并没有“死磕”这一关,这样选择是对的。
事情出现转机是在我去综合楼、商业街办事情的路上碰到了“大兵”。我印象中他有用过6678,果断向他请教,得到三点很重要的信息:1,网口可以不用
2,电源可以任意插拔
3,USB串口必须接上层小板。特别是第三点很重要,因为上层小板使用的是XDS560,下层是XDS100。回来之后,我用他教的方法接好之后,很快就可以连接到目标板了。
又因为我曾经用过CCS4.0,现在用CCS5感觉还比较适应,另外CCS5是基于ECLIPSE的,用ECLIPSE开发安卓的经历也给了我很大的帮助。
第一天结束的时候我还跑起了DEMO,看到8个CORE显示Running,还是有一点欣慰。有一个很大的收获是知道有一个目录%PDK_INSTALL_PATH%,指向D:\Program
Files\Texas
Instruments\pdk_C_0_9_beta2。里面包含了Platform的库,就是可以直接利用的C库。
以上是第一天做的事情,突然接到笑笑电话。现在是10:58,未完待续。。。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。关于程序包含CSL库的问题 - C6000(TM)多核 - 德州仪器在线技术支持社区
关于程序包含CSL库的问题
发表于5年前
<input type="hidden" id="hGroupID" value="32"
我在编写6678程序的时候,由于要用到CSL_chipReadReg()这个函数,于是就在程序里包含了头文件#include &ti/csl/csl_chip.h&&/p>
&p>程序build的时候说找不到csl_chip.h这个文件,然后我在工程build setting里的include search path里加入了csl_chip.h文件的路径(我的MCSDK是装在C盘底下的,CCS装在D盘底下),再次build的时候上一个错误消失了,但是又有了一个新的错误,说我的&CSL_chipReadReg()是undefined symbol。&/p>
&p>这该怎么解决啊?我的工程是建立在G盘底下的。&/p>&div style=&clear:&>&/div>" />
关于程序包含CSL库的问题
此问题已被解答
All Replies
我在编写6678程序的时候,由于要用到CSL_chipReadReg()这个函数,于是就在程序里包含了头文件#include &ti/csl/csl_chip.h&
程序build的时候说找不到csl_chip.h这个文件,然后我在工程build setting里的include search path里加入了csl_chip.h文件的路径(我的MCSDK是装在C盘底下的,CCS装在D盘底下),再次build的时候上一个错误消失了,但是又有了一个新的错误,说我的&CSL_chipReadReg()是undefined symbol。
这该怎么解决啊?我的工程是建立在G盘底下的。
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
进士4115分
请在include searche path中包含相应的CSL lib库。
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
Andy Yin &您好!
我在C6000 Linker的File Search Path中添加了CSL lib库的地址(如下)但是依然不行。还是说 CSL_chipReadReg()是undefined symbol。
C:\Program Files\Texas Instruments\pdk_C_0_9_beta2\packages\ti\csl\lib
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
探花11560分
一般这种问题都是你的库和头文件路径不对,请仔细检查
上述内容如果回答了您的问题,请点击标签栏&是&按钮。您的轻轻一点,会帮助我们更好的管理论坛内容,谢谢!
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
进士4115分
chao fan您好,
请确认选择上述目录下的CSL lib文件,如ti.csl.ae66e,同时请留意编译链接时是否存在相应的CSL lib,如果还存在问题,请将编译时打印的东西贴上来,谢谢
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
Andy Yin 您好,
我把CSL lib库加入了,但是情况还是像原来一样,编译的提示是这样的:
&#39;Building target: matrix_transposition.out&#39;
&#39;Invoking: C6000 Linker&#39;
&D:/Program Files/Texas Instruments/ccsv5/tools/compiler/c6000/bin/cl6x& -mv6600 -g -O2 --diag_warning=225 --abi=eabi -z -m&matrix_transposition.map& &--stack_size=400 --warn_sections -i&D:/Program Files/Texas Instruments/pdk_C_0_16/packages/ti/csl/lib& -i&D:/Program Files/Texas Instruments/ccsv5/tools/compiler/c6000/lib& -i&D:/Program Files/Texas Instruments/ccsv5/tools/compiler/c6000/include& &--reread_libs --rom_model -o &matrix_transposition.out& &&./matrix_trans.obj& -l&libc.a& &../matrix.cmd&
warning: creating output section &.neardata& without a SECTIONS specification.
& For additional information on this section, please see the &#39;C6000 EABI
& Migration&#39; guide at
& EABI_Sections
warning: creating output section &.rodata& without a SECTIONS specification.
& For additional information on this section, please see the &#39;C6000 EABI
& Migration&#39; guide at
& EABI_Sections
warning: creating group &NEARDP_DATA& to co-locate output sections .neardata
& and .rodata with .bss
undefined & & & first referenced &
&symbol & & & & & & in file & & &
--------- & & & ---------------- &
CSL_chipReadReg ./matrix_trans.obj
error: unresolved symbols remain
error: errors encoun &matrix_transposition.out& not built
我试着把csl_chip.c这个文件复制一份到工程目录底下,结果编译通过了。但是我还是想找出不用复制源文件到工程目录下使用库函数的方法。谢谢帮助!
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
进士4115分
我在本机测试结果如下,请参考。
在没有添加相应的CSL lib时,对应编译提示如下:
'Invoking: C6000 Linker'
"C:/Program Files/Texas Instruments/C6000 Code Generation Tools 7.2.2/bin/cl6x" -mv64+ -g --define=TEST_MULTIPLE_INSTANCES --diag_warning=225 --abi=eabi -z -m"FFTC_MultiInst_testProject.map" --warn_sections -i"C:/Program Files/Texas Instruments/C6000 Code Generation Tools 7.2.2/lib" -i"C:/Program Files/Texas Instruments/C6000 Code Generation Tools 7.2.2/include" --reread_libs --rom_model -o "FFTC_MultiInst_testProject.out" -l"./configPkg/linker.cmd" &"./test_singlecore_shift.obj" "./test_singlecore_queueshare.obj" "./test_singlecore_psinfo.obj" "./test_singlecore_poll.obj" "./test_singlecore_multipleinst.obj" "./test_singlecore_flowshare.obj" "./test_singlecore_dftlist.obj" "./test_singlecore.obj" "./test_osal.obj" "./test_multicore.obj" "./test_mono_singlecore_psinfo.obj" "./test_mono_singlecore.obj" "./test_main.obj" "./test_lld.obj" "./qmss_device.obj" "./listlib.obj" "./fftc_lld.obj" "./fftc.obj" "./cppi_device.obj" -l"libc.a" "C:/Program Files/Texas Instruments/pdk_C_0_9_beta2/packages/ti/drv/fftc/test/fftc_linker.cmd"
undefined & & & first referenced & & & & &
&symbol & & & & & & in file & & & & & & & &
--------- & & & ---------------- & & & & &
CSL_chipReadReg ./test_singlecore_shift.obj
在加入C:\Program Files\Texas Instruments\pdk_C_0_9_beta2\packages\ti\csl\lib\ti.csl.ae66之后,编译提示如下:
'Invoking: C6000 Linker'
"C:/Program Files/Texas Instruments/C6000 Code Generation Tools 7.2.2/bin/cl6x" -mv64+ -g --define=TEST_MULTIPLE_INSTANCES --diag_warning=225 --abi=eabi -z -m"FFTC_MultiInst_testProject.map" --warn_sections -i"C:/Program Files/Texas Instruments/C6000 Code Generation Tools 7.2.2/lib" -i"C:/Program Files/Texas Instruments/C6000 Code Generation Tools 7.2.2/include" --reread_libs --rom_model -o "FFTC_MultiInst_testProject.out" -l"./configPkg/linker.cmd" &"./test_singlecore_shift.obj" "./test_singlecore_queueshare.obj" "./test_singlecore_psinfo.obj" "./test_singlecore_poll.obj" "./test_singlecore_multipleinst.obj" "./test_singlecore_flowshare.obj" "./test_singlecore_dftlist.obj" "./test_singlecore.obj" "./test_osal.obj" "./test_multicore.obj" "./test_mono_singlecore_psinfo.obj" "./test_mono_singlecore.obj" "./test_main.obj" "./test_lld.obj" "./qmss_device.obj" "./listlib.obj" "./fftc_lld.obj" "./fftc.obj" "./cppi_device.obj" -l"libc.a" -l"C:\Program Files\Texas Instruments\pdk_C_0_9_beta2\packages\ti\csl\lib\ti.csl.ae66" "C:/Program Files/Texas Instruments/pdk_C_0_9_beta2/packages/ti/drv/fftc/test/fftc_linker.cmd"
'Finished building target: FFTC_MultiInst_testProject.out'
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
谢谢Andy Yin的耐心解答,问题已经解决了,深深佩服你们负责的工作态度!
You have posted to a forum that requires a moderator to approve posts before they are publicly available.论坛 - C6000(TM)多核 - C6000(TM)多核 - 德州仪器在线技术支持社区
发表于3年前
<input type="hidden" id="hGroupID" value="32"
我想知道怎么让dsp启动的时候多核启动,debug的时候可以选择下载到那个核,然后运行,选择的核就会开始运行。&/p>
&p>如果我把程序写到eeprom那么boot起来后就只有core0,运行,怎么让所有的核都运行呢?通过代码控制还是哪里配置呢?&/p>
&p>我想让每个core都动起来,让他们自己读写自己的内存就可以了。我只想让他们都运行起来。&/p>&div style=&clear:&>&/div>" />
C6678 多核启动的问题
此问题已被解答
All Replies
我想知道怎么让dsp启动的时候多核启动,debug的时候可以选择下载到那个核,然后运行,选择的核就会开始运行。
如果我把程序写到eeprom那么boot起来后就只有core0,运行,怎么让所有的核都运行呢?通过代码控制还是哪里配置呢?
我想让每个core都动起来,让他们自己读写自己的内存就可以了。我只想让他们都运行起来。
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
1. 关于DSP启动,请参考&KeyStone Architecture Bootloader User Guide&;
2. eeprom中烧写的是IBL二级启动程序,应用程序.out一般烧写在NAND flash、NOR flash,或者使用其他方式来加载;
3.关于多核启动的实现原理,我的理解如下:core0执行RBL(一级启动)、IBL(二级启动),其中IBL的最后一步是加载应用程序到内存(各个段加载的地址由CMD文件决定),然后跳转执行应用程序;此时的core1~7一直处于IDEL状态,等待被唤醒(从RBL到IBL等过程均是由core0执行的,core1~7一直处于休眠状态)。多核启动只需在应用程序中做些内容:具体是core0将程序入口跳转地址写入core1~7的magic_addr(0x87fffc),然后触发core1~7的IPC中断唤醒,使其跳转至指定地址执行应用程序。
总的来说,如果你要运行一个多核启动的程序,你需要做两件事:
1是编写一个用DNUM区分的程序,通过判断DNUM值做分支,运行每个core的执行函数(里面可以加入printf打印信息,用来判断执行成功)。最重要的是,当DNUM==0(即core0)时,它需要做以下工作:将程序入口地址(_c_int00)写入到其他core的MAGIC_ADDR(C6678上是LL2的最后32bit,局部地址为0x0087fffc)上,然后向该core发送IPC唤醒;
2是编写一个CMD文件,注意必须将text段、cinit段、switch段和const段放入SL2中。其他段可放入LL2。
这个程序写好后,你可以在CCS下,将程序下载到core0中。如果你的程序执行成功,应该可以看到所有core都执行了各自的函数。然后你可以将这个程序烧写到NAND flash中。
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
你好& 非常感谢你的回答,我现在才接触6678不久,项目很急时间很紧。
》》》将程序入口地址(_c_int00)写入到其他core的MAGIC_ADDR(C6678上是LL2的最后32bit,局部地址为0x0087fffc)上,然后向该core发送IPC唤醒;
》》》2是编写一个CMD文件,注意必须将text段、cinit段、switch段和const段放入SL2中。其他段可放入LL2。
这两个功能能否提供一个简单的sample。我对的DSP不熟悉,项目时间紧迫,拜托了!
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
-c-heap& 0x4000-stack 0x4000MEMORY{&&& SHRAM:&&&&&&&&&& o = 0x0C000000 l = 0x&& /* 4MB Multicore shared Memmory */& &&& CORE0_L2_SRAM:&& o = 0x l = 0x&& /* 512kB CORE0 L2/SRAM */&&& CORE0_L1P_SRAM:& o = 0x10E00000 l = 0x&& /* 32kB CORE0 L1P/SRAM */&&& CORE0_L1D_SRAM:& o = 0x10F00000 l = 0x&& /* 32kB CORE0 L1D/SRAM */& }&SECTIONS{&&& .text&&&&&&&&& && SHRAM&&& .stack&&&&&&&& && SHRAM&&& .bss&&&&&&&&&& && SHRAM&&& .cio&&&&&&&&&& && SHRAM&&& .const&&&&&&&& && SHRAM&&& .data&&&&&&&&& && SHRAM&&& .switch&&&&&&& && SHRAM&&& .sysmem&&&&&&& && SHRAM&&& .far&&&&&&&&&& && SHRAM&&& .args&&&&&&&&& && SHRAM&&& .ppinfo&&&&&&& && SHRAM&&& .ppdata&&&&&&& && SHRAM& &&& /* COFF sections */&&& .pinit&&&&&&&& && SHRAM&&& .cinit&&&&&&&& && SHRAM& &&& /* EABI sections */&&& .binit&&&&&&&& && CORE0_L2_SRAM&&& .init_array&&& && CORE0_L2_SRAM&&& .neardata&&&&& && CORE0_L2_SRAM&&& .fardata&&&&&& && CORE0_L2_SRAM&&& .rodata&&&&&&& && CORE0_L2_SRAM&&& .c6xabi.exidx& && CORE0_L2_SRAM&&& .c6xabi.extab& && CORE0_L2_SRAM}
我写的cmd文件,能帮我检查一下吗?看看有什么问题吗
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
1.除了上述建议的4个段外,不建议将其他段放入SL2中。SL2的资源是珍贵而有限的。所以应慎用。
2.你上述的CMD文件编译后,所有的core程序 的&EABI sections&都会被放入到core0的L2中。这是你想要的结果吗?
这是我写的比较通用的CMD文件,仅供参考:
-stack 0x2000-heap 0x8000
MEMORY{& LOCAL_L2_SRAM:& origin = 0x length = 0x&& /* 512kB LOCAL L2/SRAM */& LOCAL_L1P_SRAM: origin = 0x00E00000 length = 0x&& /* 32kB LOCAL L1P/SRAM */& LOCAL_L1D_SRAM: origin = 0x00F00000 length = 0x&& /* 32kB LOCAL L1D/SRAM */& SHRAM:&&&&&&&&& origin = 0x0C000000 length = 0x&& /* 4MB Multicore shared Memmory */& & EMIF16_CS2:&&&& origin = 0x length = 0x&& /* 64MB EMIF16 CS2 Data Memory */& EMIF16_CS3:&&&& origin = 0x length = 0x&& /* 64MB EMIF16 CS3 Data Memory */& EMIF16_CS4:&&&& origin = 0x length = 0x&& /* 64MB EMIF16 CS4 Data Memory */& EMIF16_CS5:&&&& origin = 0x7C000000 length = 0x&& /* 64MB EMIF16 CS5 Data Memory */
& DDR3:&&&&&&&&&& origin = 0x length = 0x&& /* 512MB DDR3 SDRAM */}&SECTIONS{&.text&&&&&&&&& && SHRAM&.const&&&&&&&& && SHRAM&.switch&&&&&&& && SHRAM&.cinit&&&&&&&& && SHRAM&&.stack&&&&&&&& && LOCAL_L2_SRAM&.bss&&&&&&&&&& && LOCAL_L2_SRAM&.data&&&&&&&&& && LOCAL_L2_SRAM&.neardata&&&&& && LOCAL_L2_SRAM&.fardata&&&&&& && LOCAL_L2_SRAM&.rodata&&&&&&& && LOCAL_L2_SRAM&&.far&&&&&&&&&& && LOCAL_L2_SRAM&.cio&&&& && LOCAL_L2_SRAM&.sysmem&&&&&&& && LOCAL_L2_SRAM&}
另外,CCS安装完后,你可以在目录中搜索一些自带的CMD文件。一般都是比较标准和通用的。
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
我这样写,总是报错
-c-heap& 0x2000-stack 0x8000MEMORY{
&&& LOCAL_L2_SRAM:&& o = 0x l = 0x&& /* 512kB CORE0 L2/SRAM */&&& LOCAL_L1P_SRAM:& o = 0x00E00000 l = 0x&& /* 32kB CORE0 L1P/SRAM */&&& LOCAL_L1D_SRAM:& o = 0x00F00000 l = 0x&& /* 32kB CORE0 L1D/SRAM */&&& SHRAM:&&&&&&&&&& o = 0x0C000000 l = 0x&& /* 4MB Multicore shared Memmory */
& &EMIF16_CS2:&&&& o = 0x l = 0x&& /* 64MB EMIF16 CS2 Data Memory */& &EMIF16_CS3:&&&& o = 0x l = 0x&& /* 64MB EMIF16 CS3 Data Memory */& &EMIF16_CS4:&&&& o = 0x l = 0x&& /* 64MB EMIF16 CS4 Data Memory */& &EMIF16_CS5:&&&& o = 0x7C000000 l = 0x&& /* 64MB EMIF16 CS5 Data Memory */
& &DDR3:&&&&&&&&&& o = 0x l = 0x&& /* 512MB DDR3 SDRAM */
}&SECTIONS{&&& .text&&&&&&&&& && SHRAM&&& .stack&&&&&&&& && LOCAL_L2_SRAM&&& .bss&&&&&&&&&& && LOCAL_L2_SRAM&&& .cio&&&&&&&&&& && LOCAL_L2_SRAM&&& .const&&&&&&&& && SHRAM&&& .data&&&&&&&&& && LOCAL_L2_SRAM&&& .switch&&&&&&& && SHRAM&&& .sysmem&&&&&&& && LOCAL_L2_SRAM&&& .far&&&&&&&&&& && LOCAL_L2_SRAM&&& .args&&&&&&&&& && LOCAL_L2_SRAM&&& .ppinfo&&&&&&& && LOCAL_L2_SRAM&&& .ppdata&&&&&&& && LOCAL_L2_SRAM& &&& /* COFF sections */&&& .pinit&&&&&&&& && LOCAL_L2_SRAM&&& .cinit&&&&&&&& && SHRAM& &&& /* EABI sections */&&& .binit&&&&&&&& && LOCAL_L2_SRAM&&& .init_array&&& && LOCAL_L2_SRAM&&& .neardata&&&&& && LOCAL_L2_SRAM&&& .fardata&&&&&& && LOCAL_L2_SRAM&&& .rodata&&&&&&& && LOCAL_L2_SRAM&&& .c6xabi.exidx& && LOCAL_L2_SRAM&&& .c6xabi.extab& && LOCAL_L2_SRAM}
错误信息:
&../MyC6678.cmd&, line 25: error #10264: LOCAL_L2_SRAM memory range overlaps
&& existing memory range L2SRAM&../MyC6678.cmd&, line 28: error #10264: SHRAM memory range overlaps existing&& memory range MSMCSRAM&../MyC6678.cmd&, line 31: error #10263: DDR3 memory range has already been&../MyC6678.cmd&, line 31: error #10264: DDR3 memory range overlaps existing&& memory range DDR3
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
&CCS安装完后,你可以在目录中搜索一些自带的CMD文件。&
您好,请问如何在ccs里搜索自带的CMD文件啊?
新手,求详细步骤!
You have posted to a forum that requires a moderator to approve posts before they are publicly available.1321人阅读
DSP(C6678)(17)
这里所说的CMD文件是指在CCS的Project中添加的CMD文件。
就我目前所理解的,大概就是链接装配到Target上用到的“指令”。
这里有一篇博文可以参考
首先来看看默认的CMD文件(安装MCSDK后)是什么样的
Linker command file
-stack 0xa000
/* Memory Map 1 - the default */
L1PSRAM (RWX)
: org = 0x0E00000, len = 0x7FFF
L1DSRAM (RWX)
: org = 0x0F00000, len = 0x7FFF
L2SRAM (RWX)
: org = 0x0800000, len = 0x080000
MSMCSRAM (RWX) : org = 0xc000000, len = 0x200000
DDR3 (RWX)
: org = 0x,len = 0x
GROUP (NEAR_DP)
} load & MSMCSRAM
platform_lib &
}一般简单的测试,添加默认的CMD文件就可以了,详细步骤参见
但是在一次测试(读取Bitmap图片)中发现了一些问题
为了更详细的追踪问题,我在子程序中添加了许多信息输出,以下是一个示例
在对小尺寸图片进行测试时发现没有问题,
当图片尺寸太大时就会出现“内存分配失败”的错误
我特意找来一张6k*4k的超大图片测试,的确有问题
内存分配出问题一般是因为没有足够的空闲
malloc函数在heap上分配连续的内存,参考
对于那些零散的小块如果不足所需,也只能寻找更大的空闲区域
如果找不到就会返回失败信息
既然是在heap上分配,那么我们就需要检查CMD文件中关于MEMORY分配的布局了
显然,默认的-heap=0x41000 显然不够用
于是修改-heap &0x &/* 512MB */ 够用了
关于一些段的含义,可以参考
.bss & & &存放全局和静态变量
.ebss & & 长调用的.bss(超过了64K地址限制)
.stack & &存放C语言的栈
.sysmem & 存放C语言的堆
.esysmem &長调用的.sysmem(超过了64K地址限制)
.text & & 可执行代码和常数(program)
.switch & switch语句产生的常数表&#26684;(program/低64K数据空间)
.pinit & &Tables for global constructors (C&#43;&#43;)(program)
.cinit & &用来存放封全局和静态变量的初始化常数&#20540;(program)
.const & &全局和静态的const变量初始化&#20540;和字符串常数,(data)
.econst & 长.const(可定位到任何地方)(data) 始化块
我们将内存映射的MEMORY中DDR3设置得更大一些,
然后让heap等sections装入到这一段,这样就可改写CMD文件如下
Linker command file
/* 512MB */
-stack 0x10000
/* Memory Map */
L1PSRAM (RWX)
: org = 0x0E00000, len = 0x7FFF
L1DSRAM (RWX)
: org = 0x0F00000, len = 0x7FFF
L2SRAM (RWX)
: org = 0x0800000, len = 0x080000
MSMCSRAM (RWX) : org = 0xc000000, len = 0x200000
DDR3 (RWX)
: org = 0x,len = 0x7FFFFFFF
/* length=2^32-1, 4GB */
GROUP (NEAR_DP)
} load & DDR3 /*MSMCSRAM*/
DDR3 /*MSMCSRAM*/
DDR3 /*MSMCSRAM*/
DDR3 /*MSMCSRAM*/
platform_lib &
修改之后,测试可行
但是这样做&#20284;乎效率很低,我在测试一张大小的RGB图片时,读取数据用了了3分多钟!
本文原创,博文地址
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:92408次
积分:1907
积分:1907
排名:第18501名
原创:102篇
评论:70条
(1)(1)(10)(8)(5)(14)(1)(5)(9)(9)(19)(4)(2)(8)(6)(1)(6)}

我要回帖

更多关于 暗夜精灵建造顺序 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信