欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種嵌入式定制化開發(fā)平臺(tái)自動(dòng)生成系統(tǒng)的實(shí)現(xiàn)方法與流程

文檔序號(hào):12664463閱讀:337來源:國知局
一種嵌入式定制化開發(fā)平臺(tái)自動(dòng)生成系統(tǒng)的實(shí)現(xiàn)方法與流程

本發(fā)明涉及嵌入式軟件自動(dòng)化設(shè)計(jì)領(lǐng)域,尤其涉及微控制器(MCU)軟件的自動(dòng)化設(shè)計(jì)和技術(shù)實(shí)現(xiàn)。



背景技術(shù):

隨著物聯(lián)網(wǎng)的興起,以及工業(yè)4.0時(shí)代的到來,嵌入式系統(tǒng)(尤其是MCU)的應(yīng)用出現(xiàn)了快速增長。但同時(shí)物聯(lián)網(wǎng)應(yīng)用的碎片化問題也顯得日益突出,其主要表現(xiàn)在:行業(yè)和領(lǐng)域多樣性、終端設(shè)備眾多、類型和功能千差萬別、性能差別非常大等等。這使得物聯(lián)網(wǎng)終端軟件開發(fā)異常困難。而且,由于缺少統(tǒng)一的開發(fā)系統(tǒng),設(shè)備終端不兼容問題突出,已經(jīng)成為制約物聯(lián)網(wǎng)技術(shù)大規(guī)模推廣的主要原因。

四十多年來,嵌入式產(chǎn)品一直沿用這樣的開發(fā)流程:首先設(shè)計(jì)產(chǎn)品硬件電路。其次在硬件電路基礎(chǔ)上開發(fā)軟件架構(gòu)程序,然后開發(fā)處理器的初始化程序與配置程序,以及開發(fā)驅(qū)動(dòng)程序、中間件程序以及特定功能程序等軟件,這些軟件構(gòu)成了該項(xiàng)目獨(dú)有的一個(gè)個(gè)性化基礎(chǔ)平臺(tái)。開發(fā)人員在此平臺(tái)之上做進(jìn)一步的應(yīng)用層軟件開發(fā),進(jìn)行軟硬件整合調(diào)試,直至完成產(chǎn)品設(shè)計(jì)。其中搭建基礎(chǔ)平臺(tái)的代碼量一般要占到整個(gè)項(xiàng)目全部代碼量的70%~90%,是整個(gè)開發(fā)流程的重點(diǎn),因此如果能提高這個(gè)平臺(tái)的開發(fā)速度,就可以提高產(chǎn)品的開發(fā)效率。

嵌入式處理器生產(chǎn)廠商通常會(huì)提供軟件輔助開發(fā)工具和固件庫,以更好地為使用者提供服務(wù)。通常他們會(huì)提供自行設(shè)計(jì)的可視化處理器功能配置界面,以幫助使用者快速完成編寫處理器的初始化程序與配置程序。這種方法通常需要用戶手工選擇配置,操作比較繁瑣,而且可視化配置界面的設(shè)計(jì)也較為復(fù)雜。如果能夠改進(jìn),提高使用者的開發(fā)體驗(yàn),有助于促進(jìn)處理器產(chǎn)品的銷售。

綜合以上幾種情況,開發(fā)一個(gè)通用、可視化、適用多種處理器及外圍設(shè)備的嵌入式軟件開發(fā)平臺(tái)的自動(dòng)生成系統(tǒng),顯得很有意義。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明的目的是提供一種便捷高效的、由計(jì)算機(jī)自動(dòng)編寫代碼的嵌入式定制化開發(fā)平臺(tái)自動(dòng)生成系統(tǒng)(以下簡(jiǎn)稱自動(dòng)生成系統(tǒng))的實(shí)現(xiàn)方法。

本發(fā)明的技術(shù)方案如下:

第一步,通過PCB設(shè)計(jì)軟件直接獲取嵌入式產(chǎn)品硬件電路圖特征文件或數(shù)據(jù),然后把電路圖特征文件或數(shù)據(jù)導(dǎo)入自動(dòng)生成系統(tǒng);

本發(fā)明所指的PCB設(shè)計(jì)軟件,是指對(duì)外公開發(fā)行的收費(fèi)或免費(fèi)的、具有設(shè)計(jì)電路原理圖以及PCB圖等功能的專業(yè)工具軟件。

本發(fā)明所指的電路圖特征文件或數(shù)據(jù),包含電路中用到的處理器芯片(比如MCU)、外圍芯片、功能器件及模塊等元器件型號(hào)以及反映電路連接關(guān)系的電路網(wǎng)絡(luò)名稱等信息。這些型號(hào)和名稱等信息需要事先進(jìn)行規(guī)范定義,不能互相沖突,使計(jì)算機(jī)能夠自動(dòng)識(shí)別。另外,一些諸如選擇處理器工作頻率、選擇軟件集成開發(fā)環(huán)境(IDE)等信息也可以預(yù)先進(jìn)行設(shè)置。

本發(fā)明所指的定制化開發(fā)平臺(tái),是指以特定的硬件電路為基礎(chǔ),生成與之匹配的特殊軟件開發(fā)平臺(tái),它包括軟件架構(gòu)程序、驅(qū)動(dòng)程序、中間件程序以及特定功能程序等。開發(fā)人員可以在這個(gè)平臺(tái)基礎(chǔ)上,編寫自己的應(yīng)用層程序,完成產(chǎn)品的設(shè)計(jì)。

本發(fā)明的技術(shù)稱之為定制化開發(fā)平臺(tái)自動(dòng)生成系統(tǒng), 是指由計(jì)算機(jī)按照應(yīng)用需求(例如按照硬件電路),輔助挑選所需的已有軟件代碼或軟件庫文件并自動(dòng)編寫程序,自動(dòng)生成定制化開發(fā)平臺(tái)。

本發(fā)明所指的自動(dòng)編寫程序,是指按照應(yīng)用需求(例如按照硬件電路),對(duì)已有的軟件代碼進(jìn)行移植、剪裁、特化與修改,或者添加新代碼等操作。已有的軟件代碼可以是包含在自動(dòng)生成系統(tǒng)軟件中的嵌入代碼,也可以是現(xiàn)成的軟件庫文件。剪裁是指去掉某些用不到的功能。特化與修改,是指按照應(yīng)用需求,確定軟件中的一些參數(shù)或配置(比如電路端口),以及修改部分代碼。

第二步,確定軟件架構(gòu)(例如實(shí)時(shí)內(nèi)核),軟件架構(gòu)是整個(gè)應(yīng)用系統(tǒng)的基礎(chǔ);

第三步,根據(jù)電路圖特征文件或數(shù)據(jù),在選定軟件架構(gòu)基礎(chǔ)上,由自動(dòng)生成系統(tǒng)自動(dòng)編寫軟件架構(gòu)程序;

第四步,根據(jù)電路圖特征文件或數(shù)據(jù),在選定軟件架構(gòu)基礎(chǔ)上,由“定制化開發(fā)平臺(tái)自動(dòng)生成系統(tǒng)”自動(dòng)編寫處理器芯片的初始化程序和功能配置程序;

第五步,根據(jù)電路圖特征文件或數(shù)據(jù),在選定軟件架構(gòu)基礎(chǔ)上,由自動(dòng)生成系統(tǒng)自動(dòng)編寫所用到的外圍芯片、功能器件及模塊等元器件的初始化程序以及驅(qū)動(dòng)程序;

第六步,根據(jù)電路圖特征文件或數(shù)據(jù),在選定軟件架構(gòu)基礎(chǔ)上,經(jīng)過計(jì)算機(jī)智能分析,由自動(dòng)生成系統(tǒng)自動(dòng)選用或編寫應(yīng)用系統(tǒng)所需的中間件程序以及特定功能程序;

第七步,根據(jù)電路圖特征文件或數(shù)據(jù),在選定軟件架構(gòu)基礎(chǔ)上,經(jīng)過計(jì)算機(jī)智能分析,由自動(dòng)生成系統(tǒng)自動(dòng)編寫應(yīng)用系統(tǒng)的主運(yùn)行程序;

第八步,自動(dòng)編寫以上所有自動(dòng)編寫程序及相關(guān)技術(shù)的說明文檔,供開發(fā)人員參考。

以上第三至第七步的編寫程序,并非每一步都是必須的,只要有一步即可。例如有些應(yīng)用系統(tǒng)無需中間件程序以及特定功能程序,則第六步就可以直接跳過。

由此,根據(jù)電路圖特征文件或數(shù)據(jù),在選定軟件架構(gòu)基礎(chǔ)上,自動(dòng)生成一個(gè)在指定的IDE使用的、適合特定的電路圖特征文件或數(shù)據(jù)的特定程序集合,這些程序構(gòu)成了一個(gè)定制化開發(fā)平臺(tái)。開發(fā)人員可以在這個(gè)平臺(tái)基礎(chǔ)上編寫自己的用戶程序、整合調(diào)試,最終完成產(chǎn)品設(shè)計(jì)。

本發(fā)明的有益效果:

1、本發(fā)明提供了一種便捷高效的嵌入式定制化開發(fā)平臺(tái)的自動(dòng)生成系統(tǒng)的實(shí)現(xiàn)方法,它具有通用、可視化、適用多種處理器及外圍設(shè)備等特點(diǎn),這有助于解決物聯(lián)網(wǎng)應(yīng)用的碎片化問題。而且,在同一個(gè)通用系統(tǒng)開發(fā)出來的不同產(chǎn)品,可以方便地達(dá)成共識(shí),遵守共同標(biāo)準(zhǔn)以使相互兼容,這一點(diǎn)有助于物聯(lián)網(wǎng)技術(shù)的推廣。

2、嵌入式產(chǎn)品開發(fā)通常需要構(gòu)建一個(gè)自有的基礎(chǔ)開發(fā)平臺(tái),這個(gè)平臺(tái)包括軟件架構(gòu)及各種軟件模塊,一般要占到整個(gè)項(xiàng)目軟件代碼量的70%以上。本發(fā)明提供了一種自動(dòng)快速生成定制化開發(fā)平臺(tái)的方法,由計(jì)算機(jī)代替人工工作,極大提高了軟件開發(fā)效率,降低開發(fā)成本,縮短開發(fā)周期,而且也克服了人工容易出錯(cuò)的缺陷,提高了產(chǎn)品的可靠性。

3、本發(fā)明借用了PCB設(shè)計(jì)軟件實(shí)現(xiàn)了編程可視化,電路圖設(shè)計(jì)直接替代軟件圖形可視化設(shè)計(jì),大大簡(jiǎn)化了自動(dòng)生成代碼系統(tǒng)的設(shè)計(jì)。而且,也省去了用戶進(jìn)行配置的中間步驟。這一點(diǎn)對(duì)于處理器廠商尤其有意義,使他們可以節(jié)省輔助軟件開發(fā)工具的開發(fā)成本,為用戶提供更簡(jiǎn)便、更直觀的輔助軟件開發(fā)工具,更好地為客戶服務(wù)。

附圖說明

圖1本發(fā)明的技術(shù)方案流程圖;

圖2本發(fā)明的舉例之電路原理圖;

圖3本發(fā)明的舉例之應(yīng)用實(shí)例工作流程圖。

具體實(shí)施方式

以下我們結(jié)合附圖和實(shí)例對(duì)本發(fā)明做進(jìn)一步闡述。

一、本發(fā)明涉及的技術(shù)用語及定義

1、PCB設(shè)計(jì)軟件

本發(fā)明所指的PCB設(shè)計(jì)軟件,是指對(duì)外公開發(fā)行的收費(fèi)或免費(fèi)的、具有設(shè)計(jì)電路原理圖以及PCB圖等功能的專業(yè)工具軟件。例如,常用的有Protel 99SE、Altium Designer系列、Cardence OrCAD/SPB/PSD、Mentor PADS/EN/WG、CadSoft EAGLE等。

2、電路圖特征文件或數(shù)據(jù)

本發(fā)明所指的電路圖特征文件或數(shù)據(jù),包含電路中用到的處理器芯片(比如MCU)、外圍芯片、功能器件及模塊等元器件型號(hào)以及反映電路連接關(guān)系的電路網(wǎng)絡(luò)名稱等信息。這些型號(hào)和名稱等信息需要事先進(jìn)行規(guī)范定義,不能互相沖突,使計(jì)算機(jī)能夠自動(dòng)識(shí)別。另外,一些諸如選擇處理器工作頻率、選擇軟件集成開發(fā)環(huán)境(IDE)等信息也可以預(yù)先進(jìn)行設(shè)置。

最典型的電路圖特征文件是PCB設(shè)計(jì)軟件Protel 99SE自動(dòng)生成的尾綴為.NET的網(wǎng)絡(luò)表(Netlist)文件,它包含了電路原理圖中各種元器件的型號(hào)、編號(hào)和封裝等信息,也包含了元器件之間的電路連接關(guān)系,即電路網(wǎng)絡(luò)。這種網(wǎng)絡(luò)表文件采用文本格式,是生成PCB圖的基礎(chǔ),可直接為本發(fā)明所用。

部分網(wǎng)絡(luò)表例如下:

[

U1

LQFP48

ATMEGA16L

]

[

U2

SO-8

PCF8563T

]

(

RXD

U1-9

)

(

SCL

U1-19

U2-6

)

(

SDA

U1-20

U2-5

)

(

TXD

U1-10

)

……

需要說明的是,出于計(jì)算機(jī)自動(dòng)識(shí)別的需要,在設(shè)計(jì)電路圖時(shí),必須采用一套事先規(guī)定好的電路圖符號(hào)集。這套符號(hào)集定義了各種元器件名稱和電路網(wǎng)絡(luò)名稱,以及其它信息。這些名稱和信息要求互不沖突,計(jì)算機(jī)可以準(zhǔn)確識(shí)別且不會(huì)產(chǎn)生歧義。芯片或設(shè)備等元器件名稱一般可以直接采用廠家的命名,而電路網(wǎng)絡(luò)命名則可以采用一些容易理解的符號(hào),例如,MCU的串口收發(fā)端連線的電路網(wǎng)絡(luò)可命名為RXD、TXD,I2C總線可用SDA、SCL表示。

另外,一些諸如選擇處理器工作頻率、軟件集成開發(fā)環(huán)境(IDE)的選用等信息也可以預(yù)先在電路圖中進(jìn)行設(shè)置。例如,可以在處理器名稱后面加上“_12MHz”,以表示系統(tǒng)時(shí)鐘是12MHz。

3、定制化開發(fā)平臺(tái)

本發(fā)明所指的定制化開發(fā)平臺(tái),是指以特定的硬件電路為基礎(chǔ),生成與之匹配的特殊軟件開發(fā)平臺(tái),它包括軟件架構(gòu)程序、驅(qū)動(dòng)程序、中間件程序以及特定功能程序等。開發(fā)人員可以在這個(gè)平臺(tái)基礎(chǔ)上,編寫自己的應(yīng)用層程序,完成產(chǎn)品的設(shè)計(jì)。

以一種稱為電子水平儀的項(xiàng)目為例(使用TreeOS構(gòu)件化操作系統(tǒng)),其定制化開發(fā)平臺(tái)包含了以下程序組件(注:這些組件包括.c程序文件和.h頭文件):

TreeOS_MCU (MCU配置程序)

TreeOS_HD61202 (圖形點(diǎn)陣LCD驅(qū)動(dòng)程序)

TreeOS_IRR (紅外遙控器驅(qū)動(dòng)程序)

TreeOS_AP890XX (語音存儲(chǔ)器驅(qū)動(dòng)程序)

TreeOS_MXD2020E (加速度測(cè)量器件驅(qū)動(dòng)程序)

TreeOS_EEPROM (EEPROM器件驅(qū)動(dòng)程序)

TreeOS_STDLIB (常用數(shù)字與字符轉(zhuǎn)換程序(中間件))

TreeOS_IO (IO口數(shù)字量輸入輸出驅(qū)動(dòng)程序)

TreeOS_Main (主程序)

4、定制化開發(fā)平臺(tái)自動(dòng)生成系統(tǒng)

本發(fā)明的技術(shù)稱之為定制化開發(fā)平臺(tái)自動(dòng)生成系統(tǒng), 是指由計(jì)算機(jī)按照應(yīng)用需求(例如按照硬件電路),輔助挑選所需的已有軟件代碼或軟件庫文件并自動(dòng)編寫程序,自動(dòng)生成定制化開發(fā)平臺(tái)。

本發(fā)明所指的自動(dòng)編寫程序,是指按照應(yīng)用需求(例如按照硬件電路),對(duì)已有的軟件代碼進(jìn)行移植、剪裁、特化與修改,或者添加新代碼等操作。已有的軟件代碼可以是包含在自動(dòng)生成系統(tǒng)軟件中的嵌入代碼,也可以是現(xiàn)成的軟件庫文件。剪裁是指去掉某些用不到的功能。特化與修改,是指按照應(yīng)用需求,確定軟件中的一些參數(shù)或配置(比如電路端口),以及修改部分代碼。

定制化開發(fā)平臺(tái)自動(dòng)生成系統(tǒng)實(shí)際上是已有軟件代碼或軟件庫文件的管理工具。這些已有的軟件代碼一般包括處理器芯片初始化及配置程序、周邊芯片和設(shè)備的驅(qū)動(dòng)程序、中間件程序以及特定功能程序等。這是一種軟件復(fù)用,避免了軟件開發(fā)過程中的重復(fù)勞動(dòng)。通過軟件復(fù)用,軟件開發(fā)不再采用一切從零開始的模式,而是在已有的工作的基礎(chǔ)上,充分利用過去積累的知識(shí)和經(jīng)驗(yàn)。

二、本發(fā)明的具體實(shí)施步驟

步驟一,把電路圖特征文件或數(shù)據(jù)導(dǎo)入自動(dòng)生成系統(tǒng)

在電路圖設(shè)計(jì)完成之后,本發(fā)明的第一步工作是通過PCB設(shè)計(jì)軟件直接獲取嵌入式產(chǎn)品硬件電路圖特征文件或數(shù)據(jù),然后把電路圖特征文件或數(shù)據(jù)導(dǎo)入自動(dòng)生成系統(tǒng)。

步驟二,確定軟件架構(gòu)

本發(fā)明的第二步工作是確定軟件架構(gòu)(例如實(shí)時(shí)內(nèi)核),軟件架構(gòu)是整個(gè)應(yīng)用系統(tǒng)的基礎(chǔ)。

軟件架構(gòu)可以是像FreeRTOS這樣的實(shí)時(shí)內(nèi)核操作系統(tǒng),也可以是像TreeOS這樣的無核構(gòu)件化操作系統(tǒng),也可以是其它類型的操作系統(tǒng),當(dāng)然也可以是開發(fā)人員自己定義的軟件架構(gòu),等等。

步驟三,編寫軟件架構(gòu)程序

本發(fā)明的第三步工作是根據(jù)電路圖特征文件或數(shù)據(jù),在選定軟件架構(gòu)基礎(chǔ)上,由自動(dòng)生成系統(tǒng)自動(dòng)編寫軟件架構(gòu)程序;

例如,對(duì)于FreeRTOS這樣的實(shí)時(shí)內(nèi)核,有一套內(nèi)核程序,可以直接移植過來;而對(duì)于TreeOS這樣的無核構(gòu)件化操作系統(tǒng),沒有專門的內(nèi)核程序,則無需編寫。

步驟四,編寫處理器芯片的初始化程序和功能配置程序

如果需要,本發(fā)明的第三步工作是根據(jù)電路圖特征文件或數(shù)據(jù),在選定軟件架構(gòu)基礎(chǔ)上,由自動(dòng)生成系統(tǒng)自動(dòng)編寫處理器芯片的初始化程序和功能配置程序。

處理器芯片通常都有豐富的功能,比如信號(hào)輸入輸出、定時(shí)器/計(jì)數(shù)器、中斷、串口、PWM等等,這些功能有的要用到,就要進(jìn)行初始化和配置,而用不到的功能就把它關(guān)閉。

步驟五,編寫外圍器件的初始化程序以及驅(qū)動(dòng)程序

如果需要,本發(fā)明的第四步工作是根據(jù)電路圖特征文件或數(shù)據(jù),在選定軟件架構(gòu)基礎(chǔ)上,由自動(dòng)生成系統(tǒng)自動(dòng)編寫所用到的外圍芯片、功能器件及模塊等元器件的初始化程序以及驅(qū)動(dòng)程序。

外圍芯片、功能器件及模塊等元器件,如數(shù)據(jù)存儲(chǔ)器、實(shí)時(shí)鐘、數(shù)據(jù)轉(zhuǎn)換、通訊、控制等功能芯片或模塊,這些元器件一般都需有初始化程序以及驅(qū)動(dòng)程序,自動(dòng)生成系統(tǒng)將自動(dòng)編寫這些程序。

步驟六,編寫中間件程序以及特定功能程序

如果需要,本發(fā)明的第五步工作是根據(jù)電路圖特征文件或數(shù)據(jù),在選定軟件架構(gòu)基礎(chǔ)上,經(jīng)過計(jì)算機(jī)智能分析,由自動(dòng)生成系統(tǒng)自動(dòng)選用或編寫應(yīng)用系統(tǒng)所需的中間件程序以及特定功能程序。

這些中間件程序以及特定功能程序包括文件系統(tǒng)、通信棧、用戶圖形界面、本地功能計(jì)算、邊緣計(jì)算、接口協(xié)議等等。

步驟七,編寫應(yīng)用系統(tǒng)的主程序

如果需要,本發(fā)明的第六步工作是根據(jù)電路圖特征文件或數(shù)據(jù),在選定軟件架構(gòu)基礎(chǔ)上,經(jīng)過計(jì)算機(jī)智能分析,由自動(dòng)生成系統(tǒng)自動(dòng)編寫應(yīng)用系統(tǒng)的主運(yùn)行程序。

本發(fā)明自動(dòng)完成的一般是初始化工作,包括調(diào)用處理器芯片配置及初始化、外圍器件初始化等工作。開發(fā)人員可以在此基礎(chǔ)上進(jìn)行進(jìn)一步完善,比如完成應(yīng)用系統(tǒng)的自檢、調(diào)用工作任務(wù)等。

步驟八,編寫技術(shù)說明文檔

本發(fā)明的第六步工作是自動(dòng)編寫以上所有自動(dòng)編寫程序及相關(guān)技術(shù)的說明文檔,供開發(fā)人員參考。

以上第三至第七步的編寫程序,并非每一步都是必須的,只要有一步即可。例如有些應(yīng)用系統(tǒng)無需中間件程序以及特定功能程序,則第六步就可以直接跳過。

由此,根據(jù)電路圖特征文件或數(shù)據(jù),在選定軟件架構(gòu)基礎(chǔ)上,自動(dòng)生成一個(gè)在指定的IDE使用的、適合特定的電路圖特征文件或數(shù)據(jù)的特定程序集合,這些程序構(gòu)成了一個(gè)定制化開發(fā)平臺(tái)。開發(fā)人員可以在這個(gè)特定平臺(tái)基礎(chǔ)上編寫自己的用戶程序以及整合調(diào)試,最終完成產(chǎn)品設(shè)計(jì)。

三、應(yīng)用實(shí)例

本發(fā)明所述的嵌入式軟件定制化開發(fā)平臺(tái)自動(dòng)生成系統(tǒng),可大大提高開發(fā)效率,并使嵌入式編程更加智能化。該技術(shù)已應(yīng)用于AlphaMcu自動(dòng)寫代碼系統(tǒng)(參見圖3),并成功應(yīng)用于多個(gè)MCU應(yīng)用項(xiàng)目上,取得了顯著效果。實(shí)踐表明,本發(fā)明所述的編程技術(shù)可使絕大多數(shù)MCU應(yīng)用項(xiàng)目實(shí)現(xiàn)70%以上代碼的自動(dòng)化編程。

四、適應(yīng)性

本發(fā)明所述的所有編程技術(shù),為了便于描述,雖然只涉及到嵌入式系統(tǒng),但實(shí)際上其適用范圍可以更加廣泛。因此本發(fā)明所述的所有編程技術(shù)可適用于符合本發(fā)明所述要求的任何其它計(jì)算機(jī)系統(tǒng)。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
宜城市| 东乡县| 元江| 宾川县| 凤山县| 郎溪县| 大洼县| 晋城| 肇源县| 邹城市| 叶城县| 虹口区| 达孜县| 谢通门县| 莎车县| 商丘市| 大同县| 淄博市| 鄯善县| 安龙县| 公主岭市| 永登县| 竹北市| 平潭县| 黄浦区| 将乐县| 平陆县| 收藏| 永靖县| 平武县| 西乌珠穆沁旗| 大悟县| 莫力| 肥西县| 晋中市| 新竹市| 五台县| 涿州市| 乃东县| 牡丹江市| 延吉市|