樓主: Chocore
打印 上一主題 下一主題

【共享】25,000次下載!免費和開(kāi)源的ARM Cortex CM3&CM0開(kāi)發(fā)工具

[復制鏈接]
21
 樓主| 發(fā)表于 2011-8-12 18:36:29 | 只看該作者

【牛刀小試】CooCox CoFlash支持ST-Link,Nu-Link-pro,OpenJTAG啦~

與之前約每周一次的更新頻率相比,此次CooCox的更新步伐明顯放慢了。

實(shí)際上CoIDE V1.2.6的發(fā)布籌備已久,之所以仍未更新,一是我們想將最完善的成果呈現給大家,這就需要全面的測試;二是中途根據用戶(hù)的反饋和需求又添加了部分功能,修正了一些BUG,使得新版本更加實(shí)用、穩定。好湯還需文火熬,好軟件當然亦需時(shí)間的雕琢。讓我們拭目以待吧~

之前曾說(shuō)過(guò)CoIDE V1.2.6已支持ST-Link,這一功能留待新版CoIDE發(fā)布才能體驗未免遺憾,便先由CoFlash小試牛刀了。
今天,CooCox發(fā)布了CoFlash V1.3.6,新增支持ST-Link,Nu-Link-pro,OpenJTAG三大調試器。此外,之前的算法不支持部分版本的STM32F1xx系列芯片,新版CoFlash修復了這一問(wèn)題。
CooCox CoFlash是專(zhuān)門(mén)用于ARM Cortex-M0&Cortex-M3的獨立編程軟件,用戶(hù)可方便的自定義算法以支持暫不支持的芯片。詳情請見(jiàn)http://www.coocox.org/CN/CoFlash_Programmer.htm

這篇對CooCox工具系列介紹得比較全面,節選3張圖片如下:
  
22
 樓主| 發(fā)表于 2011-8-23 14:38:18 | 只看該作者

【聚沙成塔】CooCox已更新STM32F10x及LPC12xx的組件&例程

CooCox日前更新了STM32F10xLPC12xx的組件和例程,其中STM32F10x組件為3.5.0版本,LPC12xxCoIDE新增支持芯片。用戶(hù)可以使用CoIDE進(jìn)行更新,也可訪(fǎng)問(wèn)http://www.coocox.org/Vendors.php直接下載。

組件更新方法:點(diǎn)擊CoIDE組件視圖右上角的刷新按鈕,CoIDE會(huì )鏈接CooCox服務(wù)器刷新組件頁(yè)面。刷新完成后,用戶(hù)可以在每個(gè)有更新的組件后面看到updatedownload的鏈接,點(diǎn)擊該鏈接即可把更新后的組件下載到本地使用。

例子刷新方法:勾選組件后,在左上角的組件視圖點(diǎn)擊組件名稱(chēng),CoIDE會(huì )后臺刷新和下載例子,等刷新和下載完成后,再次點(diǎn)擊這個(gè)組件名稱(chēng)可以看到有例子被刷新。

CoIDE在編輯模式和調試模式時(shí)的視圖如下所示:



CooCox Tools是一套完整的免費開(kāi)發(fā)工具。它由組態(tài)式集成開(kāi)發(fā)環(huán)境CoIDE,嵌入式實(shí)時(shí)多任務(wù)操作系統CoOS,調試探測器Colink / CoLinkEx,Flash編程軟件CoFlash,智能管腳配置及代碼自動(dòng)生成工具CoSmart,以及寄存器助手CoAssistant(在線(xiàn)版/CoIDE集成版)組成。



欲了解CooCox更多信息,請訪(fǎng)問(wèn)CooCox官網(wǎng)http://www.coocox.org/CN/
23
 樓主| 發(fā)表于 2011-9-2 19:18:41 | 只看該作者

『貨真價(jià)實(shí)』的免費和開(kāi)源-CooCox工具使用版權問(wèn)題(轉載)


真的免費,真的開(kāi)源,真的隨意用!無(wú)論商用或教學(xué),均無(wú)任何限制!這就是
CooCox工具。

詢(xún)問(wèn)CooCox工具是否可以商用的郵件一直存在,也許是大家沒(méi)有找到網(wǎng)站中的“使用條款”,也許是“使用條款”說(shuō)的不夠清晰明確,也可能是用戶(hù)還是不放心是不是真的可以不負任何責任地用于商業(yè)用途。CooCox使用條款中關(guān)于軟件使用是這樣約定的:

軟件的使用

CooCox CoOS是免費和開(kāi)源的, 它遵從BSDBerkly Software Distribution)許可,并且在這種許可下,它可以用于商業(yè)應用。
CooCox Colink插件,CoSmart,CoIDE,CoBuilder,CoDebuggerCoFlash都是免費不開(kāi)源的,它們均可以免費下載,安裝和使用于非商業(yè)應用或商業(yè)應用。


這里需要補充說(shuō)明的是,所有CooCox軟件均可免費使用,但開(kāi)源的只包括CoOSColink以及CoLinkEx硬件電路。此處免費使用包括商用或教學(xué)用,均無(wú)需承擔任何責任。也無(wú)需向CooCox組織申請。我們歡迎您的使用,歡迎您幫我們一起推廣免費的工具。

另外,CooCox可以向廣大用戶(hù)承諾,我們絕對不會(huì )“先養羊后宰羊”,我們已申明的免費工具將永久免費,絕對不會(huì )等聚集了成熟用戶(hù)后轉為收費。因為CooCox是希望聚集越累越多的工程師到這個(gè)平臺,大家一同貢獻,分享和交流。等到匯聚的資源不計其數后,嵌入式開(kāi)發(fā)可以變得信手拈來(lái)——這就是我們的愿景!

文章來(lái)源:CooCox新浪官博



【最新資訊】CoIDE V1.2.6發(fā)布進(jìn)入倒計時(shí)啦~

新版CoIDE已進(jìn)入后期測試階段,將于下周與用戶(hù)見(jiàn)面。
經(jīng)測試用戶(hù)反饋的調試相關(guān)問(wèn)題已全部解決,包括J-Link,Colink,CoLinkEx在內的各種調試器均可穩定工作,更新增支持ST-Link。
敬請關(guān)注http://www.coocox.org/CN/
24
 樓主| 發(fā)表于 2011-9-13 09:06:13 | 只看該作者

【千呼萬(wàn)喚始出來(lái)】CooCox CoIDE進(jìn)入1.3.0時(shí)代

由于架構調整,新版CoIDE不再以V1.2系列命名,正式步入V1.3.0時(shí)代。

CoIDE V1.3.0增強
-------------

增加:支持芯片LPC1200系列,TI部分芯片,NUC130140部分芯片
增加:LPC1200組件庫及例程
更新:STM32組件和例程
增加:支持新加調試器: Nu-Link-pro,ST-Link,OpenJTAG
增加:支持打開(kāi)MDK工程
修復:修改Nuvoton芯片名稱(chēng)
增加:登錄和注銷(xiāo)的功能
增加:顯示當前所選芯片的功能
增加:beforebuild afterbuild功能
增加:Flash調試和Ram調試選項
修復:進(jìn)入調試彈出program is not being run的錯誤
修復:Jlink用不起來(lái)的bug
修復:修改SAM3U系列芯片的memory.ld生成有錯誤的bug

詳情請見(jiàn)http://www.coocox.org/CN/CooCox_CoIDE.html

用戶(hù)手冊即將同步更新,敬請關(guān)注!
25
發(fā)表于 2011-9-17 10:00:33 | 只看該作者
回復1樓Chocore 感謝分享
26
 樓主| 發(fā)表于 2011-9-19 09:43:05 | 只看該作者

【重要說(shuō)明】CoIDE 1.3.0的J-link使用方法,包含路徑,MDK工程移植,及RAM調試

1. 關(guān)于J-link調試
CoIDE 1.2.5支持J-link后,很多用戶(hù)因為J-linklicensejflash腳本的限制,用不起來(lái),所以CoIDE 1.3.0修改了J-link調試的部分,直接用GDB命令下載代碼到芯片中,而不用JFlash的下載方式,程序在進(jìn)入調試后自動(dòng)下載。

也是考慮到license的問(wèn)題,目前的版本移除了J-link直接下載和擦除的功能,下一版本會(huì )考慮重新加上這兩個(gè)功能并避開(kāi)license的限制。
點(diǎn)此了解如何在CoIDE 1.3.0中使用J-link 。

2. 關(guān)于Include Paths
CoIDE 1.3.0增加了這個(gè)功能:
CoIDE編譯時(shí),會(huì )自動(dòng)搜尋工程下面的文件夾,包括Linked Folder文件夾。如果該文件夾下有.h文件,就自動(dòng)添加到工程的Include Paths里。
所以之前的工程在CoIDE 1.3.0 中編譯可能出現找不到頭文件的情況。

此時(shí)你可以手動(dòng)添加頭文件路徑到build.xml中的Include Paths,或修改Linked Folder的名字,或修改頭文件包含語(yǔ)句(如將#include “grib/grlib.h”改為#include “grlib.h”)。

由于架構調整,可能需要用戶(hù)新建工程,或者重復打開(kāi)才能使用以前的工程。

3. 關(guān)于打開(kāi)MDK工程
通過(guò)Open Project,選擇以.uvproj為后綴的文件,打開(kāi),即可轉換MDK工程為CoIDE工程。
現在這個(gè)功能還有一些限制,比如只支持一種配置模式,只能打開(kāi)在MDK下打開(kāi)過(guò)的工程(編譯需要.dep文件),涉及到編譯器的文件需要用戶(hù)手動(dòng)修改(MDKCoIDE的編譯器不同,與編譯器相關(guān)的文件在轉換時(shí)沒(méi)有被拷貝)等。
但這只是一個(gè)嘗試和開(kāi)始,我們可以期待這個(gè)功能將來(lái)越做越好。如果用戶(hù)在使用中有任何問(wèn)題和建議,歡迎聯(lián)系CooCox!
4. 關(guān)于RAM調試
CoIDE 1.3.0build.xml文件中增加了Flash調試和RAM調試的選項。
Flash調試是默認的,RAM調試則還需一些額外的設置。不同芯片設置方法也可能不同。

例如:
1)STM32F10X系列芯片
cmsis_boot文件夾,system_stm32f10x.c文件,SystemInit()函數中,有這樣的語(yǔ)句
#ifdef VECT_TAB_SRAM
SCB->VTOR = SRAM_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM. */
#else
SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH. */
#endif
所以只需打開(kāi)build.xml文件,選擇Debug in RAM,并在Defined Symbols中添加VECT_TAB_SRAM宏即可。

2)LPC17xx系列芯片
cmsis_boot文件夾,system_LPC17xx.c文件,SystemInit()函數中,有這樣的語(yǔ)句
#if (__RAM_MODE__==1)
SCB->VTOR= 0x10000000 & 0x3FFFFF80;
#else
SCB->VTOR= 0x00000000 & 0x3FFFFF80;
#endif
所以只需選擇Debug in RAM,并在system_LPC17xx.c文件中加入語(yǔ)句#define
__RAM_MODE__ 1
即可。

3)找不到如12)中語(yǔ)句的芯片如LM3S系列
選擇Debug in RAM后,在cmsis_boot文件夾,system_lm3s.c文件,SystemInit()函數中,添加語(yǔ)句
SCB->VTOR = 0x20000000 | 0x0; /* Vector Table Relocation in Internal SRAM. */
由于VTOR定義在core_cm3.h文件中,還需添加頭文件包含語(yǔ)句#include "core_cm3.h"。

CoIDE 1.3.0在線(xiàn)用戶(hù)手冊英文版已更新,點(diǎn)此查看。
中文版用戶(hù)手冊及PDF版用戶(hù)手冊也即將更新,敬請關(guān)注。

27
 樓主| 發(fā)表于 2011-9-21 16:52:28 | 只看該作者

【重要說(shuō)明之二】CoIDE 1.3.0的J-link Edit Scripts,Other-adapter,及Include Paths

1.關(guān)于J-link Edit Scripts & Other-adapter
CoIDE 1.3.0中,J-link的調試啟動(dòng)腳本(包括復位方式,是否運行到main)已經(jīng)固化到代碼里了,所以腳本編輯框是空的,用戶(hù)編輯腳本時(shí)只需填充GDB設置腳本。

CoIDE 1.3.0移除了調試配置中的Other-adapter項。該項是參照J-link的配置設置的,如果有需要,用戶(hù)可以將J-link項當做Other-adpter項使用。
例如有用戶(hù)用Other-adpter實(shí)現了在CoIDE中使用LPC-linkLPCXpresso),詳情見(jiàn)http://www.coocox.org/Forum/topic.php?id=741


2. 關(guān)于Include Paths
有用戶(hù)反饋如果Include Paths中的文件不在工程目錄下,則手動(dòng)添加的包含路徑就不能保存。這是一個(gè)BUG。
避免這一BUG的方法是使用Add Linked File / Add Linked Folder功能(工程名處點(diǎn)擊右鍵,或點(diǎn)擊菜單欄的File),把想參與編譯的文件或文件夾鏈接進(jìn)來(lái)就行。

還有用戶(hù)反饋,Build工程時(shí),工程文件夾中的源文件會(huì )全部自動(dòng)編譯鏈接,從而出錯。

下一版本的CoIDE會(huì )修復這兩個(gè)BUG,并添加從工程中移除文件但不刪除文件的功能。

有用戶(hù)對CooCox提出了Wishlist,你是不是也和他有類(lèi)似的想法呢?歡迎提出你的問(wèn)題或建議!
你還可以加入CooCox工具群167693982 / CoOS77814606參與交流討論。


PS:最新消息,CoIDE用戶(hù)手冊在線(xiàn)版已全部更新~
28
發(fā)表于 2011-9-24 23:41:08 | 只看該作者
沒(méi)用過(guò),嘗試一下
29
 樓主| 發(fā)表于 2011-9-28 18:54:12 | 只看該作者

【總要有個(gè)規范才放心】開(kāi)源許可證GPL、BSD、MIT、Mozilla、Apache和LGPL的區別

如先前所說(shuō),CooCox工具均是免費的,其中開(kāi)源的有CoOSColink / CoLinkEx硬件電路。
“免費”和“開(kāi)源”這樣的詞,總會(huì )讓人既躍躍欲試,又有所顧慮:真的可以隨意用?后續會(huì )不會(huì )有什么麻煩?商用也行嗎?
為了讓用戶(hù)完全放心,CooCox將規范用戶(hù)協(xié)議。新的協(xié)議即將發(fā)布,原始協(xié)議見(jiàn)http://www.coocox.com/CN/policy.htm
下面這篇文章轉載自CooCox新浪官博。


CooCox用戶(hù)數及影響力越來(lái)越大,CooCox團隊也逐漸提高了對軟件及代碼協(xié)議的重視。在收集整理的過(guò)程中,一些歸納好的信息和大家分享一下。
首先借用有心人士的一張相當直觀(guān)清晰的圖來(lái)劃分各種協(xié)議:


以下是上述協(xié)議的簡(jiǎn)單介紹。

BSD開(kāi)源協(xié)議
BSD開(kāi)源協(xié)議是一個(gè)給予使用者很大自由的協(xié)議;旧鲜褂谜呖梢浴盀樗麨椤,可以自由的使用、修改源代碼,也可以將修改后的代碼作為開(kāi)源或者專(zhuān)有軟件再發(fā)布。
但“為所欲為”的前提當你發(fā)布使用了BSD協(xié)議的代碼,或則以BSD協(xié)議代碼為基礎做二次開(kāi)發(fā)自己的產(chǎn)品時(shí),需要滿(mǎn)足三個(gè)條件:
1. 如果再發(fā)布的產(chǎn)品中包含源代碼,則在源代碼中必須帶有原來(lái)代碼中的BSD協(xié)議。
2. 如果再發(fā)布的只是二進(jìn)制類(lèi)庫/軟件,則需要在類(lèi)庫/軟件的文檔和版權聲明中包含原來(lái)代碼中的BSD協(xié)議。
3. 不可以用開(kāi)源代碼的作者/機構名字和原來(lái)產(chǎn)品的名字做市場(chǎng)推廣。
BSD協(xié)議鼓勵代碼共享,但需要尊重代碼作者的著(zhù)作權。BSD由于允許使用者修改和重新發(fā)布代碼,也允許使用或在BSD代碼上開(kāi)發(fā)商業(yè)軟件發(fā)布和銷(xiāo)售,因此是對商業(yè)集成很友好的協(xié)議。而很多的公司企業(yè)在選用開(kāi)源產(chǎn)品的時(shí)候都首選BSD協(xié)議,因為可以完全控制這些第三方的代碼,在必要的時(shí)候可以修改或者二次開(kāi)發(fā)。

Apache License 2.0
Apache License是著(zhù)名的非盈利開(kāi)源組織Apache采用的協(xié)議。該協(xié)議和BSD類(lèi)似,同樣鼓勵代碼共享和尊重原作者的著(zhù)作權,同樣允許代碼修改,再發(fā)布(作為開(kāi)源或商業(yè)軟件)。需要滿(mǎn)足的條件也和BSD類(lèi)似:
1. 需要給代碼的用戶(hù)一份Apache License。
2. 如果你修改了代碼,需要再被修改的文件中說(shuō)明。
3. 在延伸的代碼中(修改和有源代碼衍生的代碼中)需要帶有原來(lái)代碼中的協(xié)議,商標,專(zhuān)利聲明和其他原來(lái)作者規定需要包含的說(shuō)明。
4. 如果再發(fā)布的產(chǎn)品中包含一個(gè)Notice文件,則在Notice文件中需要帶有Apache License。你可以在Notice中增加自己的許可,但不可以表現為對Apache License構成更改。
Apache License也是對商業(yè)應用友好的許可。使用者也可以在需要的時(shí)候修改代碼來(lái)滿(mǎn)足需要并作為開(kāi)源或商業(yè)產(chǎn)品發(fā)布/銷(xiāo)售。

GPL
我們很熟悉的Linux就是采用了GPL、GPL協(xié)議和BSD, Apache License等鼓勵代碼重用的許可很不一樣。GPL的出發(fā)點(diǎn)是代碼的開(kāi)源/免費使用和引用/修改/衍生代碼的開(kāi)源/免費使用,但不允許修改后和衍生的代碼做為閉源的商業(yè)軟件發(fā)布和銷(xiāo)售。這也就是為什么我們能用免費的各種linux,包括商業(yè)公司的linuxlinux上各種各樣的由個(gè)人,組織,以及商業(yè)軟件公司開(kāi)發(fā)的免費軟件了。
GPL協(xié)議的主要內容是只要在一個(gè)軟件中使用(“使用”指類(lèi)庫引用,修改后的代碼或者衍生代碼)GPL 協(xié)議的產(chǎn)品,則該軟件產(chǎn)品必須也采用GPL協(xié)議,既必須也是開(kāi)源和免費。這就是所謂的“傳染性”。GPL協(xié)議的產(chǎn)品作為一個(gè)單獨的產(chǎn)品使用沒(méi)有任何問(wèn)題,還可以享受免費的優(yōu)勢。
由于GPL嚴格要求使用了GPL類(lèi)庫的軟件產(chǎn)品必須使用GPL協(xié)議,對于使用GPL協(xié)議的開(kāi)源代碼,商業(yè)軟件或者對代碼有保密要求的部門(mén)就不適合集成/采用作為類(lèi)庫和二次開(kāi)發(fā)的基礎。
其它細節如再發(fā)布的時(shí)候需要伴隨GPL協(xié)議等和BSD/Apache等類(lèi)似。

LGPL
LGPLGPL的一個(gè)為主要為類(lèi)庫使用設計的開(kāi)源協(xié)議。和GPL要求任何使用/修改/衍生之GPL類(lèi)庫的軟件必須采用GPL協(xié)議不同。LGPL 允許商業(yè)軟件通過(guò)類(lèi)庫引用(link)方式使用LGPL類(lèi)庫而不需要開(kāi)源商業(yè)軟件的代碼。這使得采用LGPL協(xié)議的開(kāi)源代碼可以被商業(yè)軟件作為類(lèi)庫引用并發(fā)布和銷(xiāo)售。
但是如果修改LGPL協(xié)議的代碼或者衍生,則所有修改的代碼,涉及修改部分的額外代碼和衍生的代碼都必須采用LGPL協(xié)議。因此LGPL協(xié)議的開(kāi)源代碼很適合作為第三方類(lèi)庫被商業(yè)軟件引用,但不適合希望以LGPL協(xié)議代碼為基礎,通過(guò)修改和衍生的方式做二次開(kāi)發(fā)的商業(yè)軟件采用。
GPL/LGPL都保障原作者的知識產(chǎn)權,避免有人利用開(kāi)源代碼復制并開(kāi)發(fā)類(lèi)似的產(chǎn)品。

MIT
MIT是和BSD一樣寬泛的許可協(xié)議,作者只想保留版權,而無(wú)任何其他了限制。也就是說(shuō),你必須在你的發(fā)行版里包含原許可協(xié)議的聲明,無(wú)論你是以二進(jìn)制發(fā)布的還是以源代碼發(fā)布的。

MPL
MPLThe Mozilla Public License的簡(jiǎn)寫(xiě),是1998年初Netscape Mozilla小組為其開(kāi)源軟件項目設計的軟件許可證。MPL許可證出現的最重要原因就是,Netscape公司認為GPL許可證沒(méi)有很好地平衡開(kāi)發(fā)者對源代碼的需求和他們利用源代碼獲得的利益。同著(zhù)名的GPL許可證和BSD許可證相比,MPL在許多權利與義務(wù)的約定方面與它們相同(因為都是符合OSIA 認定的開(kāi)源軟件許可證)。但是,相比而言MPL還有以下幾個(gè)顯著(zhù)的不同之處:

MPL雖然要求對于經(jīng)MPL許可證發(fā)布的源代碼的修改也要以MPL許可證的方式再許可出來(lái),以保證其他人可以在MPL的條款下共享源代碼。但是,在MPL 許可證中對“發(fā)布”的定義是“以源代碼方式發(fā)布的文件”,這就意味著(zhù)MPL允許一個(gè)企業(yè)在自己已有的源代碼庫上加一個(gè)接口,除了接口程序的源代碼以MPL 許可證的形式對外許可外,源代碼庫中的源代碼就可以不用MPL許可證的方式強制對外許可。這些,就為借鑒別人的源代碼用做自己商業(yè)軟件開(kāi)發(fā)的行為留了一個(gè)豁口。
MPL許可證第三條第7款中允許被許可人將經(jīng)過(guò)MPL許可證獲得的源代碼同自己其他類(lèi)型的代碼混合得到自己的軟件程序。
對軟件專(zhuān)利的態(tài)度,MPL許可證不像GPL許可證那樣明確表示反對軟件專(zhuān)利,但是卻明確要求源代碼的提供者不能提供已經(jīng)受專(zhuān)利保護的源代碼(除非他本人是專(zhuān)利權人,并書(shū)面向公眾免費許可這些源代碼),也不能在將這些源代碼以開(kāi)放源代碼許可證形式許可后再去申請與這些源代碼有關(guān)的專(zhuān)利。
對源代碼的定義
而在MPL1.1版本)許可證中,對源代碼的定義是:“源代碼指的是對作品進(jìn)行修改最優(yōu)先擇取的形式,它包括:所有模塊的所有源程序,加上有關(guān)的接口的定義,加上控制可執行作品的安裝和編譯的‘原本’(原文為‘Script’),或者不是與初始源代碼顯著(zhù)不同的源代碼就是被源代碼貢獻者選擇的從公共領(lǐng)域可以得到的程序代碼!
MPL許可證第3條有專(zhuān)門(mén)的一款是關(guān)于對源代碼修改進(jìn)行描述的規定,就是要求所有再發(fā)布者都得有一個(gè)專(zhuān)門(mén)的文件就對源代碼程序修改的時(shí)間和修改的方式有描述。
英文原文:http://www.mozilla.org/MPL/MPL-1.1.html
30
 樓主| 發(fā)表于 2011-10-13 15:59:49 | 只看該作者

【學(xué)習筆記之Semihosting】CoIDE 1.3.1即將發(fā)布,新增支持Semihosting功能

CooCox將于下周發(fā)布CoIDE 1.3.1,除修復之前提過(guò)的部分BUG外,還將增加Semihosting等功能。

PsCoIDE中新唐庫已升級到最新版,新唐組件也已更新。點(diǎn)擊組件頁(yè)右上角刷新按鈕,有更新的組件右側會(huì )顯示Update,點(diǎn)擊即可更新。



下面是Semihosting學(xué)習筆記。


****************Quoted from http://forum.eepw.com.cn/thread/90669/1****************


1、ARM公司對Semihosting的中文解釋是半主機機制。為什么叫半主機呢?主要是指應用程序的代碼運行在目標系統上,當需要類(lèi)似PC平臺下的控制臺輸入輸出時(shí),會(huì )調用Semihosting去利用PC上的控制臺輸入輸出設備:如打開(kāi)關(guān)閉文件,PC顯示器輸出,鍵盤(pán)輸入等等。

2、SemihostingADS1.2的開(kāi)發(fā)環(huán)境下,只能在以下調試代理上運行,ARMulator, RealMonitor, Multi-ICE以及Angle。這就是為什么周工的EasyJTAG不支持Semihosting的原理,因為它不屬于上述四種調試代理中的任何一種。

3、Semihosting是一段功能代碼,這段功能代碼主要運行在PC上,并由調試工具上的固件來(lái)激活調用。而周工的EasyJTAG沒(méi)有實(shí)現這個(gè)激活調用功能。

4、對于開(kāi)發(fā)用戶(hù)來(lái)說(shuō),Semihosting是目標系統通過(guò)調用SWI
0x123456
SWI 0xAB來(lái)調用的。前者ARM狀態(tài)下的專(zhuān)用操作號,后者是THUMB狀態(tài)的專(zhuān)用操作號。當開(kāi)發(fā)者的軟硬件調試工具配置正確時(shí),可以正確執行Semihosting功能。打個(gè)比方說(shuō),你在ARMulator下仿真指令
MOV
R1
, 0x18
SWI
0x123456

ARMulator會(huì )正確終止你的程序執行。
而在EasyJTAG下仿真時(shí),卻會(huì )跳入0x08的異常向量入口處。



Semihosting主要是針對I/O操作的,在嵌入式開(kāi)發(fā)過(guò)程當中,通過(guò)Semihosting,可以把輸入輸出定向到HOST上,利用HOST的輸入和輸出。

從用戶(hù)的角度來(lái)看,printf好像和普通的一樣,關(guān)鍵的區別在于printf的實(shí)現。一般的調試器都提供兩個(gè)版本的IO庫,一個(gè)式標準的庫,另外一個(gè)是支持Semihosting的庫。其實(shí)現有區別。下面以printf舉例說(shuō)明其原理:

支持Semihostingprintf的實(shí)現和標準的printf不同,支持SemihostingprintfSWI指令來(lái)通知仿真器。仿真器在地址0x8處設置斷點(diǎn),但SWI指令執行后,仿真器可以捕獲到該SWI指令。根據SWInumber來(lái)判斷這個(gè)SWI是不是Semihosting請求,如果是,再根據具體的Semihosting number響應用戶(hù)的Semihosting請求,完成用戶(hù)的Semihosting請求后,返回到SWI的后面一條指令,繼續執行。所以,對用戶(hù)來(lái)說(shuō),這是透明的。

/**********
文檔:《基于ARMSemihosting的分析與實(shí)現
31
 樓主| 發(fā)表于 2011-10-14 17:54:02 | 只看該作者

【再上層樓】CooCox優(yōu)化了CoX——基于A(yíng)RM Cortex-M處理器的設備驅動(dòng)統一接口

9月底,CooCox發(fā)布了CoX 2.0.0。

什么是CoX呢?CoX是基于ARM Cortex-M處理器的設備驅動(dòng)統一接口。從下面這張圖可以直觀(guān)地看出使用CoX的好處——方便移植。


另外,要使用CooCox提供的外圍驅動(dòng),即Repository頁(yè)DRIVER.COX標簽下的組件,也需使用CoX。

CoX 1.0.020109月發(fā)布的,CooCox將它成功地移植到了多種MCU上,如LPC11xx, NUC1xx等等。

雖然CoX 1.0.0實(shí)現了外設的通用功能,但它還存在如下缺點(diǎn):

w 不支持中斷
w API功能不全面。只實(shí)現了一些通用功能,沒(méi)有充分實(shí)現特殊專(zhuān)用芯片的功能。
w 未囊括所有外設。使用某些外設時(shí),用戶(hù)需要借助其他廠(chǎng)商庫,從而增大代碼量,甚至出現代碼邏輯沖突。

鑒于此,我們重寫(xiě)了CoX。我們準備了將近一年的時(shí)間,每定義一個(gè)接口前都閱讀并比較了數份芯片制造商手冊。新版本的CoX不僅解決了上面提到的問(wèn)題,并且添加了一些新功能。

CoX 2.0.0特征:

w 基于BSD協(xié)議,免費&開(kāi)源
w 統一標準的外設接口(功能,中斷……),包含強制和非強制接口,適用范圍更廣
w 滿(mǎn)足不同MCU私有特性,實(shí)現各類(lèi)外設全功能API
w 輕量級接口,無(wú)損CodeSizeSpeed
w 豐富的Doxygen規范幫助文檔,包含電路圖

詳情參見(jiàn)http://www.coocox.org/Cox.html

32
發(fā)表于 2011-10-18 22:53:07 | 只看該作者
看看這個(gè)是什么好東東!
33
 樓主| 發(fā)表于 2011-10-29 16:32:56 | 只看該作者

【CoIDE換血升級】支持Semihosting,改版GCC/CoX,支持NUC122&更新芯唐組件及例程

日前,CooCox發(fā)布了CoIDE V1.3.1。與1.3.0相比,1.3.1又有哪些進(jìn)步呢?

1. 支持Semihosting功能
經(jīng)過(guò)簡(jiǎn)單三步配置,調試時(shí)函數printf()可輸出到Semihosting窗口,直觀(guān)方便~

     1)在組件頁(yè)勾選Semihosting,在調試配置窗口勾選Enable Semihosting
     2)printf.cPrintchar函數中加入SH_SendChar(c);,包含頭文件"semihosting.h”
     3)在需要的地方添加printf("Hello world!\n\r");,包含頭文件

Ps: 大部分芯片配置如上所述,少數芯片如AtmelSAM3U系列配置略有不同,可View Semihosting組件的例程查看說(shuō)明。

2. 支持NUC122系列芯片,更新了Nuvoton NUC1xx,M051系列的廠(chǎng)商庫組件和例子
CoIDE對芯唐的支持進(jìn)一步加強。

3. CoX升級為新版本
CooCox發(fā)布CoX 2.0版本后,基于CoX的組件也將逐步更新?梢钥次仪耙黄訉CoX的介紹。

4. GCC編譯器替換為CooCox重編譯版本
如果說(shuō)編譯器是IDE的血液,那本次CoIDE可謂換血升級了。
隨著(zhù)CodeSourcery被收購,為避免版權糾紛,GCC版本的替換勢在必行。CooCox重編譯的GCC編譯器經(jīng)過(guò)測試,工作穩定可靠,用戶(hù)可放心使用。

除此之外,新版CoIDE還修正了之前提到的Include PathsBUG。下個(gè)月計劃發(fā)布的版本將添加選擇工程內參與編譯文件的功能,敬請期待~

欲下載CoIDE或了解更多信息,請訪(fǎng)問(wèn)http://www.coocox.org/cn/CooCox_CoIDE.html
34
 樓主| 發(fā)表于 2011-11-13 20:44:40 | 只看該作者

【管腳配置與代碼自動(dòng)生成工具】CoSmart升級到1.2.0啦~新唐用戶(hù)不可錯過(guò)

管腳配置與代碼自動(dòng)生成工具CooCox CoSmart目前已升級到V1.2.0。

CoSmart V1.2.0增強
-----------------------------
增加:對一些沒(méi)有引腳的外設如DMA,RCC等也支持配置功能
增加:支持NUC100,NUC120,NUC130,NUC140M051系列的芯片
改善:支持保存引腳選擇,模塊配置為cos文件
改善:對耗時(shí)較長(cháng)的操作,顯示進(jìn)度條
改善:切換芯片或者配置文件后,清空source窗口中顯示的代碼
改善:勾選外設過(guò)多時(shí)界面較卡的問(wèn)題
更新:更新NUC1xx系列代碼模板,與Nuvoton1.05.002 版本的廠(chǎng)商庫同步

CoSmart功能
--------------------
配置管腳復用設置
分析管腳配置沖突
指明I/O引腳特征
生成可用的C代碼

未來(lái)CoSmart會(huì )逐步添加對ST、NXP等廠(chǎng)商芯片的支持,敬請關(guān)注~!
CoSmart更多信息見(jiàn)http://www.coocox.org/CN/CoSmart.html
35
 樓主| 發(fā)表于 2011-11-21 11:04:13 | 只看該作者

【開(kāi)發(fā)者總動(dòng)員】CoX在Github上落戶(hù)啦~快加入CoX開(kāi)源項目,暢享資源&助力開(kāi)發(fā)

之前給大家介紹了CooCox歷時(shí)一年的嘔心瀝血之作CoX。


今天要帶來(lái)的好消息是CooCoxGithub上創(chuàng )建了CoX倉庫,您可以通過(guò)Git系統方便地得到CoX相關(guān)資源CoX的發(fā)展出力。CoXGithub主頁(yè):https://github.com/coocox/cox

什么是GithubGit?
Github為使用Git版本控制系統的軟件開(kāi)發(fā)項目提供基于互聯(lián)網(wǎng)的主機托管業(yè)務(wù)。
Git是由Github提供的快速、高效、分布式的版本控制系統,適用于軟件協(xié)作開(kāi)發(fā)。

與其他版本控制系統相比,Git的優(yōu)勢:
1.  直接記錄快照,而非差異比較,十分方便分支及合并
2.  近乎所有操作都是本地執行,無(wú)網(wǎng)絡(luò )也能提交更新,處理速度飛快
3.  時(shí)刻保持數據完整性
4.  多數操作僅添加數據,一旦提交快照后就不用擔心數據丟失

如何貢獻?

CooCox使用集成管理員工具流模式進(jìn)行開(kāi)發(fā)。
由于 Git 允許使用多個(gè)遠程倉庫,開(kāi)發(fā)者便可以建立自己的公共倉庫,往里面寫(xiě)數據并共享給他人,而同時(shí)又可以從別人的倉庫中提取他們的更新過(guò)來(lái)。這種情形通常都會(huì )有個(gè)代表著(zhù)官方發(fā)布的項目倉庫(blessed repository),開(kāi)發(fā)者們由此倉庫克隆出一個(gè)自己的公共倉庫(developer public),然后將自己的提交推送上去,請求官方倉庫的維護者拉取更新合并到主項目。維護者在自己的本地也有個(gè)克隆倉庫(integration manager),他可以將你的公共倉庫作為遠程倉庫添加進(jìn)來(lái),經(jīng)過(guò)測試無(wú)誤后合并到主干分支,然后再推送到官方倉庫。工作流程如下圖:


  • 項目維護者可以推送數據到公共倉庫 blessed repository。 2. 貢獻者克隆此倉庫,修訂或編寫(xiě)新代碼。
  • 貢獻者推送數據到自己的公共倉庫 developer public。 4. 貢獻者給維護者發(fā)送郵件,請求拉取自己的最新修訂。
  • 維護者在自己本地的 integration manger 倉庫中,將貢獻者的倉庫加為遠程倉庫,合并更新并做測試。
  • 維護者將合并后的更新推送到主倉庫 blessed repository。


補充:《Git中文幫助文檔
36
 樓主| 發(fā)表于 2011-11-24 18:01:36 | 只看該作者

【感恩Day,減負Day】CooCox CoAssistant,讓寄存器信息一目了然~

編程時(shí)還在隨時(shí)隨地開(kāi)著(zhù)User Manual文檔嗎?你out啦!
查個(gè)寄存器,還得在一份幾百頁(yè)的手冊中前找后找,累不累?難得今天感恩節,從現在開(kāi)始,給自己辛苦操勞的眼睛也減減負吧~

CooCox CoAssistant是一款簡(jiǎn)單實(shí)用的寄存器助手,專(zhuān)為進(jìn)行ARM Cortex M3M0開(kāi)發(fā)的嵌入式軟硬件工程師設計。

推薦理由:
1. 免費輔助工具
CooCox家的系列工具都是免費的(部分工具開(kāi)源),這個(gè)就不多說(shuō)了。初次聽(tīng)說(shuō)的筒子可以查看我以前的帖子或訪(fǎng)問(wèn)CooCox官網(wǎng)自行了解。

2. CoIDE集成版和在線(xiàn)版,雙重選擇
CoIDE中選擇View > Peripherals 即可打開(kāi)寄存器助手。
助手詳細介紹及在線(xiàn)版入口,見(jiàn)http://www.coocox.org/CN/CoAssistant.htm

3. 直觀(guān)的呈現寄存器細節信息
通過(guò)助手,你可以方便地獲取這些信息:
芯片所有寄存器組,寄存器組基地址及描述,寄存器組所有寄存器,單個(gè)寄存器的描述信息、訪(fǎng)問(wèn)類(lèi)型、偏移值、復位值,及各位域的詳細信息。

單步調試時(shí),值有變化的寄存器還會(huì )以醒目的紅色顯示。


4. 支持多種方式修改寄存器值,且修改的值在硬件上實(shí)時(shí)反應
1)修改寄存器的二進(jìn)制或十六進(jìn)制值,各位域值也將快速對應轉換。
例如在調試暫停時(shí),我修改GPIOC_ODR的值0x000002400x00000200,反應到硬件上PC6LED燈熄滅,PC9LED燈仍亮。


2)對有枚舉類(lèi)型的位域,可以通過(guò)單擊位域or通過(guò)位域選項的下拉框,選擇該位域的值




CoAssistant目前支持Nuvoton,Energy Micro,和NXP的大部分芯片,下一版本的CoIDE還將添加對STM32F100系列LPC11C1x系列芯片的支持,敬請關(guān)注~

觀(guān)望百次不如動(dòng)手一試,你還在猶豫什么呢?
37
發(fā)表于 2011-11-24 20:59:39 | 只看該作者
好東西就要支持下哈。
38
 樓主| 發(fā)表于 2011-12-5 16:41:44 | 只看該作者

【開(kāi)發(fā)必備】寄存器助手CoAssistant新增支持STM32F10x系列

感恩節給大家介紹了寄存器助手CooCox CoAssistant。


今天要帶來(lái)的好消息是——CoAssitant日前更新了NuvotonNUC1xx系列寄存器數據,并添加了對STM32F10x系列芯片的支持。

查看CoAssistant目前支持的芯片 使用在線(xiàn)版CoAssitant
請訪(fǎng)問(wèn):http://www.coocox.org/CN/CoAssistant.htm
39
發(fā)表于 2011-12-7 10:53:37 | 只看該作者
謝謝樓主分享。
40
 樓主| 發(fā)表于 2011-12-10 16:50:19 | 只看該作者

【永不止步】CoFlash支持Mini51及NUC122系列啦~新唐巡回研討會(huì )你報名了沒(méi)?

CooCox于本周發(fā)布了CoFlash V1.4.0。

新版CoFlash添加了對新唐Mini51系列及NUC122系列芯片的支持,具體有:
Mini51LAN, Mini51ZAN, Mini52LAN, Mini52ZAN, Mini54LAN, Mini54ZAN
NUC122LC1AN, NUC122LD2AN, NUC122SC1AN, NUC122SD2AN, NUC122ZC1AN, NUC122ZD2AN

此外,本次發(fā)布的CoFlash還進(jìn)一步改善了Flash燒寫(xiě)速度,添加了復位模式選擇功能,歡迎體驗~

從雙十二開(kāi)始,新唐 NuMicro Mini51 技術(shù)巡回研討會(huì )將陸續于全國十個(gè)城市舉辦。會(huì )上將贈送CooCox工具組特別制作的光盤(pán)和彩頁(yè),CoFans&新唐用戶(hù)都不可錯過(guò)哦~活動(dòng)介紹見(jiàn)http://www.nuvoton.com/nuvotonMOSS/event/Mini51/Microsite.aspx。

欲了解CooCox更多信息及動(dòng)態(tài),請訪(fǎng)問(wèn)http://www.coocox.org/CN/。
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页