rtthread STM32オンラインアップグレード

チップ型:STM32F103VET6(100本のピン)、72MHzでクロック、512キロバイトFLASH、64キロバイトのRAM

シミュレーションデバッグ:J-LINK

rtthread公式文書:https://www.rt-thread.org/document/site/application-note/system/rtboot/an0028-rtboot/#ota

ブートローダ

生産ブートローダ

オンラインSTM32ユニバーサルブートローダのrtthreadは、URLを生成します。http://iot.rt-thread.com/

パーティションサイズの64キロバイトブートローダ書籍、アプリは192キロバイト、128キロバイトとしてダウンロード、彼は残りの部分を行うために使用される他の128キロバイトです

チップシリーズ ROM
stm32f1 512キロバイト 64キロバイト
シリアル出力端子 サポートSPIフラッシュ 工場ボタンピンを復元
PC12(UART5) サポートしていません。 ノー
アプリのパーティション ダウンロードパーティション 工場出荷時のパーティション
0x08010000,192kb 0x08040000,128k ノー
暗号化キー 暗号化IV 圧縮
ノー ノー fastlz

カスタムURLを生成するログ:http://www.network-science.de/ascii/https://www.jianshu.com/p/fca56d635091)

使用ブートローダ

ソフトウェア:J-フラッシュ

ダウンロード:https://www.segger.com/downloads/jlink/

ソフトウェア操作:

  • 新STM32F103VEエンジニアリング、コンフィギュレーション・エミュレーション・モード(JTAG / SWD)、チップモデルを設定し、コンフィギュレーション・チップアドレス
  • ダウンロードするファイルを開いて、ダウンロードを選択
  • ターゲットコネクトは、回路基板を接続して、プログラミングのプロセスを消去します
  • 再起動回路基板は、ブートローダをプリントアウトした情報を見ることができます

添付:あなたが提供する偉大な神のブートローダの使用を参照することができ、いくつかのカスタム機能を追加する必要がある場合は、ブートローダrtthreadの公式は、オープンソースではありません

https://www.rt-thread.org/qa/thread-422812-1-1.html

APP

ymodem_otaとAPPの生産関数

YmodemによるOTA機能を有効にする(RT-スレッドオンラインパッケージ→のIoT - 物事のインターネット→ota_downloader)

(以下を追加するためにkconfigをコンフィギュレーションファイル、およびmenuconfigのを可能にする)BSP_Flashドライバを追加します。

    config BSP_USING_ON_CHIP_FLASH
        bool "Enable on-chip FLASH"
        default n

FALの構成パーティション

  • 有効YmodemによるOTA機能は、コンポーネントを自動的に選択し、FAL
  • すでにこのディレクトリに存在し、ファイルが無視されているような/パッケージ/ FAL-最新/サンプル/に/ボードディレクトリを移植/ポートディレクトリ、追加/ boart / SConscriptファイル/ボード/ポートディレクトリの下にコピーしますfal_cfg.h
  • 変更/ボード/ポート/ fal_cfg.hファイル、以下のように変更
#ifndef _FAL_CFG_H_
#define _FAL_CFG_H_

#include <rtthread.h>
#include <board.h>

#define RT_APP_PART_ADDR 0x08010000		//程序启动运行地址

extern const struct fal_flash_dev stm32_onchip_flash;

/* flash device table */
#define FAL_FLASH_DEV_TABLE                                          \
{                                                                    \
    &stm32_onchip_flash,                                             \
}
/* ====================== Partition Configuration ========================== */
#ifdef FAL_PART_HAS_TABLE_CFG

/* partition table */
#define FAL_PART_TABLE                                                                      \
{                                                                                           \
    {FAL_PART_MAGIC_WROD,        "bl",   "onchip_flash",   				0, 64 * 1024, 0}, \
    {FAL_PART_MAGIC_WROD,        "app",   "onchip_flash",   64*1024, 192 * 1024, 0}, \
    {FAL_PART_MAGIC_WORD,   "download",   "onchip_flash",  256*1024, 128 * 1024, 0}, \
    {FAL_PART_MAGIC_WROD,      "param",   "onchip_flash",  496*1024,  16 * 1024, 0},  \
}
#endif /* FAL_PART_HAS_TABLE_CFG */
#endif /* _FAL_CFG_H_ */

APPは、リンカスクリプトと割り込みベクタジャンプアドレスを(ここでは、直接に公式ドキュメントの手順を参照してください)変更します

APPのプログラムをダウンロードしてください

APPと行いOTAファームウェアパッケージ

のみダウンロードせずにコンパイルし、プログラムのバージョン番号を変更します。

オープンパッケージ/ ota_downloader-最新/ツール/ ota_packager / rt_ota_packaging_tool.exeソフトウェア、プログラムがコンパイルされたファイルは、rtthread.rblアップグレード、注意圧縮と暗号化アルゴリズムにパッケージ化することが可能であれば必要とブートローダでブートローダー操作同じ構成で

MSHコマンドラインymodem_ota命令を入力し、rtthread.rblファイルYmodemのを送って、ここでは自動的に再起動しますXShellソフトウェアのアップグレードを使用することが推奨され、転送が完了すると、あなたが見ることができる後にバージョン番号が変更されました

PS:あなたはymodem_otaオフィス缶を次のように変更ファイルがあり、ファイルの転送にシリアルポートを変更する必要がある場合は、ここで私はUART2を使用し、それはSERIAL2機器(SERIAL2のUARTデバイスが時に初期設定になっている)の中に()関数をrt_console_get_deviceます。

    if (!rym_recv_on_device(&rctx, serial2, RT_DEVICE_OFLAG_RDWR | RT_DEVICE_FLAG_INT_RX,
                            ymodem_on_begin, ymodem_on_data, NULL, RT_TICK_PER_SECOND))

参考リンク:https://blog.csdn.net/ylzmm/article/details/104234099

おすすめ

転載: www.cnblogs.com/princepeng/p/12606961.html