<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

記錄Red Lite Env項目的基礎搭建過程及碰到的問題

冬至子 ? 來源:兆易創新GD32 MCU ? 作者:Red ? 2022-09-30 14:52 ? 次閱讀

Linux 下如何使用對 GD32F310G START 進行在線調試以及程序下載

需要使用的關鍵工具是,開源的調試器 openocd, 涉及到有兩個配置文件,分別是 target 的配置文件 gd32f3x.cfg:

# script for stm32f3x family

#
# stm32 devices support both JTAG and SWD transports.
#
source [find target/swj-dp.tcl]
source [find mem_helper.tcl]

if { [info exists CHIPNAME] } {
   set _CHIPNAME $CHIPNAME
} else {
   set _CHIPNAME stm32f3x
}

set _ENDIAN little

# Work-area is a space in RAM used for flash programming
# By default use 16kB
if { [info exists WORKAREASIZE] } {
   set _WORKAREASIZE $WORKAREASIZE
} else {
   set _WORKAREASIZE 0x4000
}

# JTAG speed should be <= F_CPU/6. F_CPU after reset is 8MHz, so use F_JTAG = 1MHz
#
# Since we may be running of an RC oscilator, we crank down the speed a
# bit more to be on the safe side. Perhaps superstition, but if are
# running off a crystal, we can run closer to the limit. Note
# that there can be a pretty wide band where things are more or less stable.
adapter speed 1000

adapter srst delay 100
if {[using_jtag]} {
 jtag_ntrst_delay 100
}

#jtag scan chain
if { [info exists CPUTAPID] } {
   set _CPUTAPID $CPUTAPID
} else {
   if { [using_jtag] } {
      # See STM Document RM0316
      # Section 29.6.3 - corresponds to Cortex-M4 r0p1
      set _CPUTAPID 0x4ba00477
   } {
      set _CPUTAPID 0x2ba01477
   }
}

swj_newdap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id $_CPUTAPID
dap create $_CHIPNAME.dap -chain-position $_CHIPNAME.cpu

if {[using_jtag]} {
   jtag newtap $_CHIPNAME bs -irlen 5
}

set _TARGETNAME $_CHIPNAME.cpu
target create $_TARGETNAME cortex_m -endian $_ENDIAN -dap $_CHIPNAME.dap

$_TARGETNAME configure -work-area-phys 0x20000000 -work-area-size $_WORKAREASIZE -work-area-backup 0

set _FLASHNAME $_CHIPNAME.flash
flash bank $_FLASHNAME stm32f1x 0 0 0 0 $_TARGETNAME

reset_config srst_nogate

if {![using_hla]} {
   # if srst is not fitted use SYSRESETREQ to
   # perform a soft reset
   cortex_m reset_config sysresetreq
}

proc stm32f3x_default_reset_start {} {
    # Reset clock is HSI (8 MHz)
    adapter speed 1000
}

proc stm32f3x_default_examine_end {} {
    # Enable debug during low power modes (uses more power)
    mmw 0xe0042004 0x00000007 0 ;# DBGMCU_CR |= DBG_STANDBY | DBG_STOP | DBG_SLEEP

    # Stop watchdog counters during halt
    mmw 0xe0042008 0x00001800 0 ;# DBGMCU_APB1_FZ |= DBG_IWDG_STOP | DBG_WWDG_STOP
}

proc stm32f3x_default_reset_init {} {
    # Configure PLL to boost clock to HSI x 8 (64 MHz)
    mww 0x40021004 0x00380400   ;# RCC_CFGR = PLLMUL[3:1] | PPRE1[2]
    mmw 0x40021000 0x01000000 0 ;# RCC_CR |= PLLON
    mww 0x40022000 0x00000012   ;# FLASH_ACR = PRFTBE | LATENCY[1]
    sleep 10                    ;# Wait for PLL to lock
    mmw 0x40021004 0x00000002 0 ;# RCC_CFGR |= SW[1]

    # Boost JTAG frequency
    adapter speed 8000
}

# Default hooks
$_TARGETNAME configure -event examine-end { stm32f3x_default_examine_end }
$_TARGETNAME configure -event reset-start { stm32f3x_default_reset_start }
$_TARGETNAME configure -event reset-init { stm32f3x_default_reset_init }

$_TARGETNAME configure -event trace-config {
    # Set TRACE_IOEN; TRACE_MODE is set to async; when using sync
    # change this value accordingly to configure trace pins
    # assignment
    mmw 0xe0042004 0x00000020 0
}

board 的配置文件 gd32f3start.cfg

# sudo openocd -f interface/cmsis-dap.cfg -c "transport select swd" -c "set CPUTAPID 0" -f target/gd32f3x.cfg
#
source [find interface/cmsis-dap.cfg]
transport select swd

set CPUTAPID 0
set WORKAREASIZE 0x2000
source [find target/gd32f3x.cfg]

proc gdd { pos } {
    if { $pos == 0 } {
        reset;
        halt;
        flash write_image erase TencentOS_tiny.bin 0x8000000;
        reset;
        echo "stm down firm 2 internal flash success"
    } else {
        echo "invalid gdd down to others"
    }
}

分別將上述配置文件放到 openocd 的安裝目錄,大概是這樣的:

? tree -L  1 /usr/share/openocd/scripts/
/usr/share/openocd/scripts/
├── bitsbytes.tcl
├── board  ==> 放 gd32f3start.cfg 配置文件
├── chip
├── cpld
├── cpu
├── fpga
├── interface
├── mem_helper.tcl
├── memory.tcl
├── mmr_helpers.tcl
├── target  ==> 放 gd32f3x.cfg 配置文件
├── test
└── tools

9 directories, 4 files

連接開發板的命令是 openocd -f board/gd32f3start.cfg, 如果一切順利你會看到這樣的信息

poYBAGM2kcqAEdC3AAFizhsdUCU126.png

接下去可以:

使用 arm-none-eabi-gdb 連接本機的 3333 端口遠程調試開發板

使用 telnet 鏈接本機的 4444 端口進行程序下載調試

效果大概是這樣的:

poYBAGM2kd-ADKuWAALBWkcGRto979.png

環境搭建好了之后,就可以開發愉快的開發了。

移植 Tencent OS 到 GD32F310G START

移植系統比較快的方法是:

參考一個架構類似的處理器的工程,然后復制修改替換,保證編譯通過

閱讀整個系統的代碼走向,點燈調試

逐步優化代碼,最后可以提交 療 到上游

此處具體的移植步驟我就不詳細記錄了,因為網上有豐富的系統移植的教程,都是大同小異的。我在此僅僅展示下我移植過程中的一些提交記錄:

poYBAGM2kfKAY90hAADaNUhMX4Y832.png

特別地,我將 TencentOS Tiny 的 shell 組件添加進來了,所以效果是這樣的:

pYYBAGM2kgSAVct9AAEVqXipy-w744.png




審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • ARM
    ARM
    +關注

    關注

    134

    文章

    8720

    瀏覽量

    362847
  • Linux
    +關注

    關注

    87

    文章

    11022

    瀏覽量

    207054
  • JTAG
    +關注

    關注

    6

    文章

    385

    瀏覽量

    71222
  • 調試器
    +關注

    關注

    1

    文章

    293

    瀏覽量

    23450
收藏 人收藏

    評論

    相關推薦

    Node-RED實現電表數據采集并上云

    容器實現邊緣采集”。前文指引:《【教程】圖文詳解!Docker容器實現邊緣采集》首先需要搭建Node-RED運行環境,可以參考以往案例,也可以直接百度搜索,接下來
    的頭像 發表于 06-07 08:21 ?939次閱讀
    Node-<b class='flag-5'>RED</b>實現電表數據采集并上云

    分享 | PTP、NTP時間同步服務器的部署與搭建過程

    分享 | PTP、NTP時間同步服務器的部署與搭建過程
    的頭像 發表于 05-15 10:01 ?192次閱讀
    分享 | PTP、NTP時間同步服務器的部署與<b class='flag-5'>搭建</b><b class='flag-5'>過程</b>

    硬件測試服務項目的重要性和作用

    服務項目的定義與重要性 硬件測試服務項目是對硬件設備(如結構、PCBA、關鍵部件等)進行差錯檢查的過程,旨在保證產品的質量和性能。在硬件產品開發過程中,測試是不可或缺的一環,它能夠幫助
    的頭像 發表于 03-28 09:54 ?259次閱讀
    硬件測試服務<b class='flag-5'>項目的</b>重要性和作用

    OpenHarmony 移植:build lite 編譯構建過程

    的?解決了這些疑惑,會對 build lite 編譯構建過程有個更深入的理解。 1、產品解決方案代碼是如何被調用編譯的 在文件 buildliteBUILD.gn 配置文件中的構建目標 //build/lite
    的頭像 發表于 02-19 16:19 ?613次閱讀

    焊接過程監控記錄

    、智能診斷、智能排產以及質量控制過程的自動記錄。 目前,部分企業焊接人員的能力參差不齊,導致焊工對工藝執行存在偏差,從而嚴重影響焊接質量。德州迪格特電子科技有限公司開發的焊接過程監測系統,基于焊機設備的智能
    的頭像 發表于 02-02 16:25 ?265次閱讀
    焊接<b class='flag-5'>過程</b>監控<b class='flag-5'>記錄</b>

    MES系統項目的正確實施

    電子發燒友網站提供《MES系統項目的正確實施.docx》資料免費下載
    發表于 01-31 09:24 ?0次下載

    記錄RocketMQ在centos7上的安裝過程

    本文記錄RocketMQ在centos7上的安裝過程,沒有技術的探討,僅僅是安裝記錄,以作備忘。
    的頭像 發表于 01-02 11:41 ?321次閱讀
    <b class='flag-5'>記錄</b>RocketMQ在centos7上的安裝<b class='flag-5'>過程</b>

    springcloud項目搭建及部署

    如何搭建并部署Spring Cloud項目。 一、環境準備 在開始之前,我們需要準備以下環境: Java開發環境:確保已經安裝了Java SE Development Kit(JDK)。 Maven
    的頭像 發表于 12-03 15:52 ?667次閱讀

    Cadence本地庫搭建從0到1的過程

    本文將主要介紹Cadence本地庫搭建從0到1的過程,并提供搭建過程中所需要的安裝軟件。搭建Cadence本地庫的
    的頭像 發表于 11-20 17:21 ?1691次閱讀
    Cadence本地庫<b class='flag-5'>搭建</b>從0到1的<b class='flag-5'>過程</b>

    【涂鴉T2-U開發板試用體驗】記錄搭建開發平臺過程

    忙了一天終于搭建環境成功了,安裝了虛擬機和vscode,按照教程一步一步,其中也碰到了很多問題,通過不斷嘗試和探索,總算是編譯成功了。 首先需要安裝虛擬機環境,我的電腦一開始并沒有,下載vmware
    發表于 11-19 17:30

    在Linux中使用RT-Thread Env工具的簡明指南

    Env 是 RT-Thread 對源碼進行配置和裁剪、生成工程的工具,然而文檔中的配置過程主要針對 Windows 系統,并沒有對 Linux 系統的配置進行詳細的介紹,這里簡要介紹其在 Linux 下的配置與使用方法。
    的頭像 發表于 09-26 14:26 ?807次閱讀
    在Linux中使用RT-Thread <b class='flag-5'>Env</b>工具的簡明指南

    9億元!豪恩汽電行車記錄系統獲項目定點

    豪恩汽電在電動汽車公司深入汽車智能駕駛感知系統領域數年,本次來信指出,客戶對運行記錄系統產品的指定,標志是客戶公司項目的研發,生產,制造;充分體現質量管理等方面的認可,豪恩在汽車電動汽車智能駕駛感知系統領域的綜合實力有利于提供混合汽車電器的市場占有率和知名度
    的頭像 發表于 09-21 14:38 ?433次閱讀

    HarmonyOS/OpenHarmony應用開發-DevEco Studio新建項目的整體說明

    與開發路徑等的認知。 2區是代碼開發與修改區,是開發者主要的工作區域。 3.是效果展示區,包括遠程模擬器、遠程真機、本地模擬器等方式。 4.是項目運行區域,查看項目運行的過程。 5.是IDE菜單欄區
    發表于 09-15 16:51

    從零使用env工具生成gd32f450工程

    下載rtthread源碼,進入文件夾bsp/gd32/arm/gd32450z-eval下,使用env工具,將程序打包。
    的頭像 發表于 08-15 15:20 ?781次閱讀
    從零使用<b class='flag-5'>env</b>工具生成gd32f450工程

    Node RED互聯網RGB LED開源項目

    電子發燒友網站提供《Node RED互聯網RGB LED開源項目.zip》資料免費下載
    發表于 07-12 11:05 ?0次下載
    Node <b class='flag-5'>RED</b>互聯網RGB LED開源<b class='flag-5'>項目</b>
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>