女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

    文章

    9361

    瀏覽量

    378101
  • Linux
    +關注

    關注

    87

    文章

    11519

    瀏覽量

    214015
  • JTAG
    +關注

    關注

    6

    文章

    404

    瀏覽量

    73402
  • 調試器
    +關注

    關注

    1

    文章

    313

    瀏覽量

    24350
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    投影儀RED認證——出口歐洲市場必備

    投影儀出口歐洲市場,必須辦理CE認證,其中核心部分之一就是RED認證(Radio Equipment Directive,無線電設備指令)。如果投影儀帶有無線功能(如Wi-Fi、藍牙、無線投屏),就屬于RED指令管控范圍,必須符合其技術要求才能合法進入歐洲市場。
    的頭像 發表于 07-14 17:04 ?218次閱讀
    投影儀<b class='flag-5'>RED</b>認證——出口歐洲市場必備

    樹莓派項目實戰:車牌識別系統開發全記錄

    介紹本項目的目標是設計一個基于樹莓派微電腦的自動車牌識別系統,用于控制停車場的道閘。為什么?我有一臺閑置的樹莓派,沒有參與任何項目,還有一臺攝像頭,以及一個潛在的問題點——辦公室停車場沒有自動化的道
    的頭像 發表于 06-11 17:22 ?329次閱讀
    樹莓派<b class='flag-5'>項目</b>實戰:車牌識別系統開發全<b class='flag-5'>記錄</b>!

    HarmonyOS實戰:組件化項目搭建

    ?本文將詳細講解HarmonyOs組件化項目搭建的全過程,帶領大家實現一個組件化項目項目創建 首先創建一個
    的頭像 發表于 06-09 14:58 ?242次閱讀
    HarmonyOS實戰:組件化<b class='flag-5'>項目</b><b class='flag-5'>搭建</b>

    【干貨】什么是Node-RED?一文帶你了解!

    一什么是Node-RED?首先我們來認識一下什么是Node-RED。Node-RED是一個基于Node.js的開源可視化編程工具,于2013年由IBM公司推出。它可以通過瀏覽器的圖形化界面進行編程
    的頭像 發表于 03-13 19:32 ?871次閱讀
    【干貨】什么是Node-<b class='flag-5'>RED</b>?一文帶你了解!

    基于HPM_SDK_ENV開發應用程序的升級處理

    基于HPM_SDK_ENV開發應用程序的方式HPM_SDK_ENV是先楫半導體MCU的Windows集成開發環境,其包含HPM_SDK,工具鏈,依賴工具(cmake,ninja,openocd等
    的頭像 發表于 02-08 13:38 ?1044次閱讀
    基于HPM_SDK_<b class='flag-5'>ENV</b>開發應用程序的升級處理

    焊接過程自動記錄儀的應用與優勢分析

    科技的發展,焊接過程自動記錄儀應運而生,它不僅能夠提高焊接作業的效率和質量,還能為焊接工藝的研究提供寶貴的數據支持。本文將從焊接過程自動記錄儀的應用場景出發,探討
    的頭像 發表于 01-16 14:14 ?417次閱讀

    使用myCobot 280機械臂結合ROS2系統搭建機械分揀站

    這篇文章是來自Automatic Addison的開源項目,已獲作者授權轉載自github。本項目的主要內容是使用myCobot 280機械臂結合ROS2系統搭建機械分揀站。
    的頭像 發表于 01-15 09:22 ?845次閱讀
    使用myCobot 280機械臂結合ROS2系統<b class='flag-5'>搭建</b>機械分揀站

    EasyExcel碰到問題記錄

    = workbook.createFont(); redFont.setColor(IndexedColors.RED.getIndex()); if (richStringCellValue instanceof
    的頭像 發表于 01-13 13:34 ?341次閱讀

    離子注入的目的及退火過程

    離子注入后退火是半導體器件制造中的一個關鍵步驟,它影響著器件的性能和可靠性。 離子注入是將摻雜劑離子加速并注入到硅晶圓中,以改變其電學性質的過程。而退火是一個熱處理過程,通過加熱晶圓來修復注入過程
    的頭像 發表于 01-02 10:22 ?1464次閱讀

    SSM開發環境的搭建教程 SSM與Spring Boot的區別

    SSM開發環境的搭建教程 SSM(Spring+SpringMVC+MyBatis)開發環境的搭建涉及多個步驟,以下是詳細的教程: 創建Maven項目 : 使用Maven工具創建一個新的Maven
    的頭像 發表于 12-16 18:13 ?1416次閱讀

    企業云服務器平臺設計與搭建

    企業云服務器平臺的設計與搭建是一個復雜但系統的過程,涉及多個環節和因素。主機推薦小編為您整理發布企業云服務器平臺設計與搭建這一過程的詳細闡述。
    的頭像 發表于 12-04 09:51 ?553次閱讀

    宏集ASPION數據記錄器:分析運輸過程中的碰撞、沖擊和振動

    數據記錄儀會記錄貨物運輸過程中諸如溫濕度、沖擊振動等的各種環境狀況。沖擊或振動有時會對貨物產生破壞性的后果。本文我們以宏集ASPION沖擊傳感器為例,詳細地解釋如何分析和評估貨物運輸途中受到的沖擊振動。
    的頭像 發表于 10-24 15:06 ?622次閱讀
    宏集ASPION數據<b class='flag-5'>記錄</b>器:分析運輸<b class='flag-5'>過程</b>中的碰撞、沖擊和振動

    智能記錄隱蔽工程管理系統

    和優勢,幫助讀者了解如何利用該系統提升工程管理水平,增加項目的成功率。 ?????? 一、隱蔽工程APP ???????隱蔽工程APP作為智能記錄隱蔽工程管理系統的核心組成部分,具有以下特點: ?????? 1、實時記錄工程進展
    的頭像 發表于 10-18 10:18 ?544次閱讀
    智能<b class='flag-5'>記錄</b>隱蔽工程管理系統

    ARM控制器與Node-Red:獲取氣象網站數據

    在當今工業物聯網(IoT)蓬勃發展的背景下,企業和開發者們不斷尋求更智能的方式來管理和控制工業設備。Node-Red作為一種強大的可視化編程工具,簡化了物聯網應用程序的開發過程,使得即使是編程新手也能快速搭建起復雜的數據流網絡。
    的頭像 發表于 09-21 10:40 ?596次閱讀
    ARM控制器與Node-<b class='flag-5'>Red</b>:獲取氣象網站數據

    利用ARMxy邊緣計算機BL340與Node-Red實現LED設備的開閉控制

    搭建了一個高效的原型開發與測試平臺。本文將帶您走進BL340系列與Node-Red的結合應用,探索如何通過這一組合控制設備執行Linux指令,進而控制設備上的LED狀態。 一、Node-Red Node-
    的頭像 發表于 08-15 14:12 ?631次閱讀
    利用ARMxy邊緣計算機BL340與Node-<b class='flag-5'>Red</b>實現LED設備的開閉控制