SEGGER Embedded Studio入門教程


大多數單片機程序員,使用MDK或IAR比較多,共同點是小公司或個人用是倒版的;無意中發現有個正版的Embedded Studio可以用,

使用感覺性能已超過了IAR !寫個隨記,讓有需要的人快速入門。

 

下載軟件

首先進入  https://www.segger.com/downloads/embedded-studio/  下載Embedded Studio,注意下載與pc系統對應版本。

 

 

 下載好后,下一步,下一步就安裝完了。這里個人建議,同時安裝Visual Studio 2019開發工具,可以寫C/C++等等應用的,也會給PC裝一些必要的依賴DLL文件,真香定律!!

 

 

安裝支持包

先准備好STM32的官方固件庫,可以通過各種方法下載到,我當前用的是:

 

 

 

打開embedded-studio;在Tools下安裝支持包:

 

 

 

只要安裝如下支持包就可以:

 

 

 

我手上有一塊STM32F103VET6的核心板,所以找到ST的CPU接口文件包:

  好了,支持包安裝完成。

 

創建STM32工程項目

打開Embedded Studio,左上角File-->New Project...后出現下圖對話框:

 

 

 

點擊Next,選擇芯片型號或者相似型號(國產芯片很多是兼容芯片):如下圖:

 

 

 點擊Next,出現如下對話框:(如果要用printf調試窗口,下圖設為Library I/O:    RTT)

 

 

  點擊Next, 再點擊Next,直到完成。

 

 

直接按F7,如上圖所示發現是編譯成功的!!這是最原始的建工程方法,只有一些關鍵的文件

 

 

增加STM32固件庫信息

 

 

 

在工程中增加Libraries文件夾,並貼加Libraries內的相應文件:

 

 

 

下面來配置參數和路經:

 

 

 

繼續,找到Preprocessor並點擊它,在右邊出現我們要設置的參數:

 

 

 

 

宏定義內容如下: 

 

 

 

 

用戶路經如下,主要是固件庫的Libraries內容:

 實際可以使用IDE自帶的CMSIS包,只要使用固件庫src和inc即可

 

 

然后在原官方固件庫中,查找到stm32f10x_conf.h,復制作到我們工程中:

 這個xxxx_conf.h文件,可以按照個人習慣放置就好。

 

 

把main.c改成如下內容:

#include "stm32f10x.h"

//---------------------------------------------------------------------------
int main(void)
{  

  //SystemInit();

  /* GPIOD Periph clock enable */
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);

  /* Configure PC6 in output pushpull mode */
  GPIO_InitTypeDef GPIO_InitStructure;
  GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_6;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  GPIO_Init(GPIOC, &GPIO_InitStructure);

// ESE test!
long aa;
while(1){
          /* Set PC6 */
          GPIOC->BSRR = 0x00000040;
          aa=0X1FFFFF;
          while(aa--);

          /* Reset PC6 */
          GPIOC->BRR  = 0x00000040; 
          aa=0X1FFFFF;
          while(aa--);
        }//while

        return 0;
}//main

 

 

最后進行Build編譯,發現編譯成功了。

 

 

 

在線仿真,點Debug --->go,也能正常進入仿真了,開發板上的LED燈閃亮起來,一閃一閃亮晶晶,你是我的小眼睛。

 到此為止,算是完成STM32的工程建立和測試了。

 

其它設置項目

 

 下圖中Compiler的gcc,我覺得都改成clang,好像是比GCC強一點

 

 

 

 

 

 

 

 

關鍵文件的認知

SEGGER_THUMB_Startup.s     這個是IDE必備文件,但我發現同一內核的這文件,是一樣一樣的,所以什么M0  M4芯片的,只要能運行正常的。

就可以直接放在同核國產芯片使用。

 

Cortex_M_Startup.s    這個是通用的M啟動文件, 包含了0-15號中斷的標准內核中斷信息;不包含外設的中斷號,要用戶跟據芯片自己在這個S文件寫入;

 

STM32F1xx_Startup.s   這是專用XX芯片的啟動文件,里面有個代碼,調用了另一個S文件,這個文件包含了所有芯片的中斷號;它的代碼是:

 

STM32F103xx_Vectors.s 就是芯片廠家寫好中斷向量表,這是回應上面的代碼的: 

STM32F1xx_Flash.icf  這個與IAR的ICF用的指令完全一模一樣,所以呢?哈哈 

雖然不精通這些匯編,但我能感覺到,它的使用原理和方法。 

 

所以,有了上述信息后,只要是M0  ,M3 ,M4這些芯片,我們可以自己重寫這些文件,來支持任何國產芯片了!!

 

Embedded Studio啟動原理:在IDE中配置參數,會直接被ICF所使用,再執行通用CMx_startup啟動文件,

最后執行SEGGER_THUMB_Startup.s文件,來到main()世界!!

 

 

時間:2022-01-22

最近發現,我們一般新建的工程都是C的;  如果想設計C++工程,怎么辦泥??試了很久,感覺找到了

一些信息。

1 -- 》 先安裝C++ STL 功能如下圖:

  

2 -- 》 Embedded Studio包含了C++部份文件,有限的文件適合嵌入式的,位於\SEGGER Embedded Studio for ARM 5.68\include文件夾內:

  

3 -- 》然后新建工程把main.c改成main.cpp ,編譯器把.c按C來處理;把.cpp按C++來處理.這好像是費話了---:如下圖:

  

這時候沒有硬件,可以進行在線軟件仿真,調試一些算法或籮輯代碼;

  

 4 -- 》補一下 Embedded Studio設置內容

  

C和C++版本,選高一點為好,至少要C++11以上:

 

 一些Embedded Studio的宏定義和用戶的文件路經,前面已經提到過了,避免來回翻閱,再貼一次圖片:

 

=== END ===


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM