STM8L IAP 应用程序中编程指导

Similar documents
STM32Cube_FW_F4?RTC??????BUG

ST template WORD

STM32F3??ADC??????????ADC

HCS08微控制器上有关内存分配的几个问题.doc

EK-STM32F

ST template WORD

生命科学学院 学年度学风建设实施方案

1.加入党组织主要经过哪些程序?

C语言的应用.PDF

SST SPAC SST SoftICE SST89C5x/SST89x554RC /564RD /SST89x516/5xRD / SoftICE SoftICE MCU SoftICE SS

bingdian001.com

(Load Project) (Save Project) (OffLine Mode) (Help) Intel Hex Motor

ICD ICD ICD ICD ICD

Microsoft Word - MSP430 Launchpad 指导书.docx

Windows RTEMS 1 Danilliu MMI TCP/IP QEMU i386 QEMU ARM POWERPC i386 IPC PC104 uc/os-ii uc/os MMI TCP/IP i386 PORT Linux ecos Linux ecos ecos eco

Microsoft Word - 11.doc

目录

Bus Hound 5

Abstract arm linux tool-chain root NET-Start! 2

Andes Technology PPT Temp

C/C++ - 文件IO

材 料 目 录 1. 党 员 发 展 及 转 正 流 程 图 2. 申 请 入 党 人 员 基 本 信 息 及 培 养 记 录 表 3. 思 想 汇 报 传 阅 及 意 见 反 馈 表 4. 入 党 积 极 分 子 培 养 考 察 表 5. 政 治 审 查 函 调 信 模 板 6. 政 治 审 查

CC213

Simulator By SunLingxi 2003

Using STM32 Software Library

学习MSP430单片机推荐参考书

PROFIBUS3.doc

51 C 51 isp 10 C PCB C C C C KEIL


C PICC C++ C++ C C #include<pic.h> C static volatile unsigned char 0x01; static volatile unsigned char 0x02; static volatile unsigned cha

土 木 与 交 通 学 院 发 展 学 生 党 员 的 选 拨 条 件 与 推 荐 细 则 为 进 一 步 规 范 我 院 学 生 党 建 工 作, 加 强 和 完 善 我 院 对 学 生 党 员 各 个 阶 段 人 员 的 选 拔 和 培 养 工 作, 提 高 我 院 发 展 学 生 党 员 质

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1

Table of Contents Design Concept 03 Copyrights & TradeMark 04 Special Notice 05 Notice to concerned 05 Installation and Registration Introduction 07 s

提纲. 1 实验准备. 2 从实模式进入保护模式. 3 小结 陈香兰 ( 中国科学技术大学计算机学院 ) 软件综合实验之操作系统 July 1, / 11

DR2010.doc

河 南 蓝 皮 书 文 化 (2008) 网 络 文 学 主 要 是 指 在 网 上 原 创 的 文 学 作 品 作 为 网 络 文 化 的 主 力 部 分, 网 络 文 学 的 发 展 在 近 年 来 势 不 可 挡 作 为 凭 借 新 兴 媒 介 兴 起 的 文 学, 网 络 文 学 与 传 统

《將進酒》

21 flash

2.5 idlocs PIC idloc idloc 0x1234 ; 0x config idloc HEX errorlevel errorlevel Error (Warning) Message HEX 3-14 errorlevel

untitled

C35_RG_E.book

(02) (02) (02) (02) (02

ST template WORD

目 录

PTS7_Manual.PDF

ebook50-15

第一章.FIT)

大 綱 最 有 利 標 目 的 及 類 型 最 有 利 標 之 辦 理 方 式 準 用 最 有 利 標 取 最 有 利 標 精 神 最 有 利 標 之 類 型 及 其 相 關 規 定 適 用 最 有 利 標 準 用 最 有 利 標 及 取 最 有 利 標 精 神 作 業 程 序 及 實 務 分 析

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File

新建 Microsoft Word 文档.doc

安徽电子工程学校

WebSphere Studio Application Developer IBM Portal Toolkit... 2/21 1. WebSphere Portal Portal WebSphere Application Server stopserver.bat -configfile..

SDP

int *p int a 0x00C7 0x00C7 0x00C int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++;

User ID 150 Password - User ID 150 Password Mon- Cam-- Invalid Terminal Mode No User Terminal Mode No User Mon- Cam-- 2

Computer Architecture

FM1935X智能非接触读写器芯片

ARM Cortex-M3 (STM32F) STMicroelectronics ( ST) STM32F103 Core: ARM 32-bit Cortex -M3 CPU 72 MHz, 90 DMIPS with 1.25 DMIPS/MHz Single-cycle multiplica

bingdian001.com

untitled

穨邱秀玲綜合展望報告.PDF

表 决, 审 议 程 序 符 合 有 关 法 律 法 规 和 本 公 司 章 程 的 规 定 3 本 议 案 尚 需 提 交 股 东 大 会 审 议, 与 该 等 交 易 有 利 害 关 系 的 关 联 股 东 将 放 弃 在 股 东 大 会 上 对 相 关 议 案 的 投 票 权 ( 二 ) 公

<4D F736F F D20B9F0D5FEB0ECB7A2A3A A3A93532BAC52E646F63>

103_02.xls

<313032A655A874B2D5B3CCA743BFFDA8FABCD0B7C7AAED2E786C73>

柳州历史上的今天内文改版式.FIT)

生 產 準 備 您 接 近 生 產 之 注 意 事 項 : 備 妥 住 院 用 物, 勿 遠 行 ( 生 產 用 物 包 ) 最 好 有 人 在 家 陪 伴, 或 和 陪 產 者 保 持 連 繫, 有 任 何 狀 況 可 立 即 趕 到 可 做 家 事 散 步 蹲 下 等 運 動, 以 不 太 累

省十二届人大常委会

Q8. 公 營 事 業 機 構 之 公 務 員 兼 具 勞 工 身 分 者, 於 97 年 3 月 19 日 以 前, 原 選 擇 參 加 勞 保, 調 任 其 他 公 營 事 業 機 構 時, 應 改 參 加 公 保 所 謂 調 任 其 他 公 營 事 業 機 構 之 判 別 依 據 ( 或 標

学生工作部处2010年工作总结

決議、附帶決議及注意事項

天人炁功行入與感應經驗分享

YYW1.nps

目 录 专 稿 季 烨 文 革 之 初 北 京 师 大 二 附 中 的 红 色 暴 力 姜 培 良 之 死 与 仇 恨 教 育 评 论 唐 燕 关 于 北 京 女 十 中 教 师 孙 迪 之 死 给 王 友 琴 纠 错 校 史 王 逸 伦 编 辑 合 肥 市 第 六 中 学 校 史 关 于 文 革

浙江师范大学2014年度毕业生就业质量报告

目 录 监 管 资 讯 2016 年 全 国 保 险 监 管 工 作 会 议 召 开...3 协 会 动 态 赤 峰 保 险 行 业 协 会 召 开 数 据 统 计 和 信 息 宣 传 总 结 表 彰 会 议...5 赤 峰 市 保 险 行 业 协 会 秘 书 处 召 开 2015 年 度 述 职

同 时, 采 取 提 供 新 闻 线 索 和 素 材 安 排 专 访 等 方 式 主 动 为 新 闻 媒 体 服 务, 为 采 访 报 道 活 动 创 造 便 利 条 件 建 设 网 络 信 息 发 布 平 台 2013 年 9 月 开 通 中 央 纪 委 监 察 部 网 站,2015 年 1 月

大陸教育部等6個部門公佈「現代職業教育體系建設規劃 ( 年)」規劃到2015年初步形成現代職業教育體系框架,到2020年基本建成「中國」特色現代職業教育體系

资 讯 速 递 台 基 于 大 数 据 的 学 校 督 导 评 估 系 统 建 设 上 海 市 闵 行 区 人 民 政 府 教 育 督 导 室 ( 摘 要 ) 闵 行 教 育 在 深 化 教 育 改 革 探 索 管 办 评 分 离 的 背 景 下, 把 教 育 督 导 评 估 系 统 建 设 作 为

B1

時間軸上的竹蓮記憶 學務主任 黃雅彙 我不是竹蓮國小的畢業校友 但對於身為新竹人的我來 說 仔細回想起來 似乎和竹蓮有著一種特別的緣分 對竹蓮國小最初的印象是在小學的時候 猶記得年幼的 我經過一段時日的啦啦隊舞蹈訓練後 老師便帶著我們從學 校步行到竹蓮國小來參加比賽 一踏入竹蓮校門 映入眼簾 的是黑

B1

Microsoft Word - 临政办发6.doc

公務員服務法第13條相關解釋彙整表

邻居啊 第二天 对门却悄无声息了 莫非昨夜的吵闹 仅是个幻觉 夜幕拉下时 寒风又吱溜溜地叫个不停 老婆 睡下后 我这只夜猫子 继续兴致勃勃地跟着福尔 摩斯去探案 白天的喧嚣退去了 周围格外安静 正 是读书的好时候 突然 响起了钟摆声 哒 哒 哒 节奏匀称 不疾不徐 声响却愈来愈大 格外突兀 了 原来

<4D F736F F D BAC520CAD7B6BCCAA6B7B6B4F3D1A C4EAD7A8D2B5BCBCCAF5D6B0CEF1C6C0C6B8B9A4D7F7D2E2BCFB2E646F63>

其 他 方 面 也 可 以 采 用 同 样 的 方 式, 这 样 又 可 以 锻 炼 除 语 文 方 面 的 其 他 能 力 了 而 英 语 方 面, 我 认 为 配 合 英 语 专 业 举 办 英 语 演 讲 比 赛 就 很 不 错 这 样 开 展 一 系 列 的 创 新 活 动, 锻 炼 多 方

第 六 条 办 法 第 五 条 ( 三 ) 协 会 考 评, 考 评 指 考 核 评 价 第 七 条 办 法 第 六 条 职 业 操 守 包 括 的 内 容 : 个 人 诚 信 不 做 假 账 不 偷 漏 税 不 贪 污 盗 窃 等 第 八 条 企 业 财 务 管 理 人 才 评 价 实 行 五 星

<4D F736F F D A67EABD7A4BAB3A1B1B1A8EEA8EEABD7A6DBA6E6B5FBA6F4AD70B5652E646F63>

统计工作情况汇报

他 随 身 带 有 二 三 十 张 古 方, 白 天 卖 药, 夜 晚 将 药 材 精 细 研 末, 按 方 配 制 对 于 病 人 服 药 后 反 应, 特 别 留 心 发 现 问 题, 就 近 向 老 医 生 老 药 贩 虚 心 求 教, 千 方 百 提 高 药 效 同 时 对 于 春 夏 秋

目 录 第 一 章 地 方 陪 同 导 游 人 员 服 务 程 序...1 第 一 节 地 方 陪 同 导 游 人 员 的 概 念 与 职 责...1 第 二 节 服 务 准 备...2 一 熟 悉 接 待 计 划...2 二 落 实 接 待 事 宜...5 三 物 质 和 知 识 的 准 备...

走 吧, 到 三 峡 去 : 那 里 是 我 们 先 人 用 生 命 之 血 打 造 的 家 园 走 吧, 到 三 峡 去 : 那 里 的 浪 涛 承 载 过 千 百 万 只 我 们 先 人 驶 向 今 天 的 航 船 走 吧, 到 三 峡 去 : 那 里 的 每 一 座 青 山 都 刻 满 了 我

6寸PDF生成工具

Microsoft Word - N011 斷翅天使

中 国 科 学 院 国 家 科 学 图 书 馆

申论写作套路万能模板

( 地 ( ) 组 织 机 构 代 码 企 业 详 细 名 称 哈 密 地 伊 吾 新 疆 广 汇 新 能 源 有 限 公 司 玛 纳 斯 玛 纳 斯 祥 云 化 纤 有 限 公 司 玛 纳 斯 玛 纳 斯 澳 洋 科 技 有 限 责

图 文 聚 焦 国 培 计 划 (2013) 甘 肃 省 农 村 小 学 音 乐 骨 干 教 师 短 期 集 中 培 训 9 月 4 日 开 班 了, 学 员 老 师 们 从 甘 肃 省 各 个 县 市 州 汇 聚 湖 南 一 师, 开 始 了 为 期 14 天 的 培 训 学 习 : 鲜 明 的

申請機構基本資料

Transcription:

STM8L IAP 使用说明 前言 本篇主要介绍 STM8Lxxxx 如何实现在应用程序中编程 (In-application programming) 1. IAP user Flash 分配框图及中断向量表重定向 0x8000 0x8080 0x9000 中断向量表重定向 0x9080 图 1:IAP 代码在 User Flash 中的空间分配 注意 : 1 和 2 为 IAP 代码空间 为客户自己的 bootloader 代码, 应用程序中更新 Flash 的代码 3 和 4 为客户应用程序代码, 实现产品具体操作功能 中断向量表 1 中除了 Reset, 其他存放的是指向中断向量表 2 的地址 ; 中断向量表 2 中放的是具体的 APP 中断处理程序入口地址 发生中断后 PC 指针先指向中断向量表 1, 然后再指向中断向量表 2, 最后到具体的中断处理函数处 客户应用程序起始位置 ( 上图是 0x9000) 可以根据客户需要设置, 比如可以改 0x9000 为 0xA000( 如果客户的 bootloader 程序超过 0x9000 但没有超过 0xA000 可以这样设置 )

Step1 发生中断 Step2 跳转到向量表 2 Step4 APP 软件发生中断 Step3 跳转到具体的处理函数 图 2:IAP 代码的中断处理流程 2. IAP 对中断向量表重定向的说明 STM8 的中断向量位置是固定的, 大部分是 0x8000 开始处 IAP 程序中需要手工处理中断向量表 并且 boot 程序不能使用任何中断 (IAP 程序中的中断跳转 ( 中断向量表 1) 会使 PC 指到 0x900x 处, 如果此时 APP 没有程序, 程序就会出错 ), 程序中的所有中断 ( 向量表 1) 的处理最终都要跳转到用户程序的中断向量表 2 处 IAP bootloader 参考程序为 STSW-STM8006 可以在 www.st.com 或是 www.stmcu.com.cn 上下载 下面以 STVD 工程 Cosmic 为例进行说明 \STSW-STM8006\AN2659-IAP_using_user-bootloader\Project\STM8L_User-Bootloader_example\STVD\Cosmic Stm8_interrupt_vector.c: 下面的中断向量表 1 位于 0x8000 到 0x8080 地址空间 假设发生了 0x8001 中断, 指针经硬件定向到了 0x8001, 在 0x8001 里存储的是跳转到 0x9001 代码, 然后程序跳转到 0x9001 位置去执行, 而 0x9001 中的代码是跳转到具体的中断函数处 ( 具体代码中使用函数指针来实现 ) 0x82 为操作码, 意思是跳转到后面的地址去执行 如下例 : 0x82 INT1_E (8bits)(PCE) INT1_H (8bits)(PCH) INT1_L (8bits)(PCL) //*********IAP bootloader 程序中的中断向量表 1 ************************** extern void _stext(); /* startup routine */ struct interrupt_vector const UserISR_IRQ[32] @ MAIN_USER_RESET_ADDR; //redirected interrupt table struct interrupt_vector const _vectab[] = 0x82, (interrupt_handler_t)_stext, /* reset */ //note: 向量表代码开始位置为 0x8000,0x82 后面的 24bits 存放 0x9000 0x82, (interrupt_handler_t)(userisr_irq+ 1), /* trap */ //note: 代码位于 0x8001,0x82 后面的 24bits 存放 0x9001 0x82, (interrupt_handler_t)(userisr_irq+ 2), /* irq0 */ 0x82, (interrupt_handler_t)(userisr_irq+ 3), /* irq1 */ 0x82, (interrupt_handler_t)(userisr_irq+ 4), /* irq2 */ 0x82, (interrupt_handler_t)(userisr_irq+ 5), /* irq3 */

0x82, (interrupt_handler_t)(userisr_irq+ 6), /* irq4 */ 0x82, (interrupt_handler_t)(userisr_irq+ 7), /* irq5 */ 0x82, (interrupt_handler_t)(userisr_irq+ 8), /* irq6 */ 0x82, (interrupt_handler_t)(userisr_irq+ 9), /* irq7 */ 0x82, (interrupt_handler_t)(userisr_irq+10), /* irq8 */ 0x82, (interrupt_handler_t)(userisr_irq+11), /* irq9 */ 0x82, (interrupt_handler_t)(userisr_irq+12), /* irq10 */ 0x82, (interrupt_handler_t)(userisr_irq+13), /* irq11 */ 0x82, (interrupt_handler_t)(userisr_irq+14), /* irq12 */ 0x82, (interrupt_handler_t)(userisr_irq+15), /* irq13 */ 0x82, (interrupt_handler_t)(userisr_irq+16), /* irq14 */ 0x82, (interrupt_handler_t)(userisr_irq+17), /* irq15 */ 0x82, (interrupt_handler_t)(userisr_irq+18), /* irq16 */ 0x82, (interrupt_handler_t)(userisr_irq+19), /* irq17 */ 0x82, (interrupt_handler_t)(userisr_irq+20), /* irq18 */ 0x82, (interrupt_handler_t)(userisr_irq+21), /* irq19 */ 0x82, (interrupt_handler_t)(userisr_irq+22), /* irq20 */ 0x82, (interrupt_handler_t)(userisr_irq+23), /* irq21 */ 0x82, (interrupt_handler_t)(userisr_irq+24), /* irq22 */ 0x82, (interrupt_handler_t)(userisr_irq+25), /* irq23 */ 0x82, (interrupt_handler_t)(userisr_irq+26), /* irq24 */ 0x82, (interrupt_handler_t)(userisr_irq+27), /* irq25 */ 0x82, (interrupt_handler_t)(userisr_irq+28), /* irq26 */ 0x82, (interrupt_handler_t)(userisr_irq+29), /* irq27 */ 0x82, (interrupt_handler_t)(userisr_irq+30), /* irq28 */ 0x82, (interrupt_handler_t)(userisr_irq+31), /* irq29 */ ; //********************************************************************************* 对 0x82 的描述在文件 PM0044 有如下描述 : 0x82 为内部指令 :

在 main.h 里有下面的代码 : MAIN_USER_RESET_ADDR 的地址为 0x9000 所以 APP 代码开始的位置在 0x9000, 开始存 放第二个中断向量表 ( 中断向量表 2), 此处为中断处理函数入口地址的重定向表 //********************************************************************************* //user application start (user interrupt table address) #define MAIN_USER_RESET_ADDR 0x9000ul //********************************************************************************* 3. STVD 软件中, 下图 Project/Settings 中对中断向量表位置的处理可以看到 中断向量表 1 是从 0x8000 开始存放 (Vector file name and Vector addr.) 图 3:STVD 软件 Project/Settings 对 Vector file name 的定义为 stm8_interrupt_vector.c ; Vector address 定义为 0x8000 地址 如下图

图 4:IAP 程序工程的配置,STVD 软件 Project/Settings/Linker \STSW-STM8006\AN2659-IAP_using_user-bootloader\Project\STM8L_User-Bootloader_example\STVD\Cosmic\Debug 有文件 userbootloader.lkf, 有代码如下 :( 当这个文件中的设置同 STVD Project/Settings/Linker 对画框中的设置不一样时, 优先使用对话框中的设置 ) //********************************************************************************** # Segment configuration - section reserved for STVD #<BEGIN SEGMENT_CONF> # Segment Code,Constants: +seg.const -b 0x8080 -m 0x7f80 -n.const -it +seg.text -a.const -n.text # Segment Eeprom: +seg.eeprom -b 0x1000 -m 0x400 -n.eeprom # Segment Zero Page: +seg.bsct -b 0x0 -m 0x100 -n.bsct +seg.ubsct -a.bsct -n.ubsct +seg.bit -a.ubsct -n.bit -id +seg.share -a.bit -n.share -is # Segment Ram: +seg.data -b 0x100 -m 0x4ff -n.data +seg.bss -a.data -n.bss +seg.flash_code -a.bss -n.flash_code -ic #<END SEGMENT_CONF

# Interrupt vectors file - section reserved for STVD #<BEGIN VECTOR_FILE> +seg.const -b 0x8000 -k Debug\stm8_interrupt_vector.o #<END VECTOR_FILE> //******************************************************************************* 4. User Flash 空间烧写方式 Bootloader 程序可以烧写内部 Flash EEPROM RAM 适用于产品软件的更新 客户程序空间烧写 User Flash programming Byte/Work 编程 (1~4bytes) 优点 : 小区域编程,code 可以在 Flash 里执行 适合几个 bytes 的编程, 或是可以接受很慢的编程速度缺点 : 烧写 Flash 时,code 的执行停止 ( 几个 ms); 速度慢 块编程 ( 由具体 STM8 IC 确定 优点 : 大块区域编程, 速度快 缺点 :code 必须在 RAM 里执行, 需要拷贝代码到 RAM 里 拷贝可执行代码到 RAM 里 / 保存 RAM 代码 / 允许代码在 RAM 空间 / 编译代码使其能在 RAM 里运行 5. 对 _fctcpy 的说明, 对 Flash 的大块区域编程的代码在 RAM 中运行的问题解 决 对 Flash 进行大块区域的编程的代码需要在 RAM 中运行, 为了实现这个, 需要一个自定义代码段, 并将这个代码段放在 RAM 中 在例程中定义了一个.FLASH_CODE 段 请查看下面代码红色区域 //*********************IAP 的 bootloader 程序 ********************************* #ifdef _COSMIC_ #pragma section (FLASH_CODE) // 定义 FLASH_CODE 代码段 #endif /* _COSMIC */ #ifdef _IAR_ #pragma location = "FLASH_CODE" #endif /* _IAR_ */ #ifdef _RAISONANCE_ void Mem_ProgramBlock(u16 BlockNum, FLASH_MemType_TypeDef MemType, u8 *Buffer) inram #else void Mem_ProgramBlock(u16 BlockNum, FLASH_MemType_TypeDef MemType, u8 *Buffer) #endif /*_RAISONANCE_*/

u16 Count = 0; u32 StartAddress = 0; u16 timeout = (u16)0x6000; /* Set Start address wich refers to mem_type */ if (MemType == FLASH_MEMTYPE_PROG) StartAddress = FLASH_START; else StartAddress = EEPROM_START; /* Point to the first block address */ StartAddress = StartAddress + ((u32)blocknum * BLOCK_SIZE); /* Standard programming mode */ FLASH->CR2 = (u8)0x01; /* Copy data bytes from RAM to FLASH memory */ for (Count = 0; Count < BLOCK_SIZE; Count++) *((PointerAttr u8*)startaddress + Count) = ((u8)(buffer[count])); #if defined (STM8S208) defined(stm8s207) defined(stm8s105) if (MemType == FLASH_MEMTYPE_DATA) /* Waiting until High voltage flag is cleared*/ while ((FLASH->IAPSR & 0x40)!= 0x00 (timeout == 0x00)) timeout--; #endif /* STM8S208, STM8S207, STM8S105 */ #ifdef _COSMIC_ #pragma section () // 普通默认代码段 #endif /* COSMIC */ //******************************************************************************* _fctcpy 功能 : COSMIC 中的函数 _fctcpy 是将 Flash 中的代码拷贝到 RAM 中并运行 _fctcpy 寻找 linker 定义的描述符 ( 此描述符是在 RAM 中定义段的第一个字符 ), 在 STSW-STM8006 中定义了一个段 FLASH_CODE (#pragma section (FLASH_CODE)) 因此第一个字符是 F. 在 mian 函数中调用 _fctcpy('f') 的作用是把 FLASH_CODE 段拷贝到 RAM 中并运行

FLASH_CODE 是一个可以移动的段, 需要在 IAP boot 程序链接配置 的 RAM 区添加 在 RAM 中创建一个.FLASH_CODE 段, 并在 Option 中输入 -ic ;.FLASH_CODE 表示在 RAM 中定义一个 FLASH_CODE 的段, 程序可以从此地址运行 -ic 表示标记这个段为可移动的段, 可将 Flash 中的代码移植到此 void main(void) _fctcpy('f'); // 把 FLASH_CODE 代码拷贝到 RAM 中并运行 图 5.xxx IAP 工程中,RAM 区域.FLASH_CODE 段的定义 可以在生成的 *.map 文件中检查生成的段是否正确, 示例代码中有如下的 map 文件 //******************************************************************************* -------- Segments -------- start 00008080 end 000080a2 length 34 segment.const start 00008104 end 00008be0 length 2780 segment.text start 00001000 end 00001000 length 0 segment.eeprom start 00000000 end 00000001 length 1 segment.bsct, initialized start 000080af end 000080b0 length 1 segment.bsct, from start 00000001 end 00000091 length 144 segment.ubsct start 00000091 end 00000091 length 0 segment.bit start 00000091 end 00000091 length 0 segment.share

start 00000100 end 00000100 length 0 segment.data start 00000100 end 00000100 length 0 segment.bss start 00000100 end 00000154 length 84 segment.flash_code, initialized start 000080b0 end 00008104 length 84 segment.flash_code, from start 00000000 end 000004de length 1246 segment.info. start 00000000 end 00000e70 length 3696 segment.debug start 00008000 end 00008080 length 128 segment.const start 000080a2 end 000080af length 13 segment.init //******************************************************************************* from 为存放代码的部分 initialized 为执行代码的部分 IAP 的 bootloader 和 APP 分开为两个独立的工程文件 上面的内容是针对 IAP 的 bootloader 的程序工程的处理说明 ( 属于 图 1 中的 1. 中断变量表 1, 复位后硬件 PC 指针从这里开始 和 2. 客户程序中的 bootloader 代码 段 ), 下面来说说 APP 工程段 ( 图 1 中的 3 和 4 代码段 ) 6. APP 工程说明 在 APP 工程里, 设置中断向量地址为 0x9000( 上面以 0x9000 为例 如果从 0xA000 开始, 就设置为 0xA000) 代码段的 起始地址为 0x9080. 编译后生成的二进制文件就是需要通过 bootloader 烧写到 Flash 0x9000 之后地址的 APP 程序

重要通知 - 请仔细阅读 意法半导体公司及其子公司 ( ST ) 保留随时对 ST 产品和 / 或本文档进行变更 更正 增强 修改和改进的权利, 恕不另行通知 买方在订货之前应获取关于 ST 产品的最新信息 ST 产品的销售依照订单确认时的相关 ST 销售条款 买方自行负责对 ST 产品的选择和使用, ST 概不承担与应用协助或买方产品设计相关的任何责任 ST 不对任何知识产权进行任何明示或默示的授权或许可 转售的 ST 产品如有不同于此处提供的信息的规定, 将导致 ST 针对该产品授予的任何保证失效 ST 和 ST 徽标是 ST 的商标 所有其他产品或服务名称均为其各自所有者的财产 本文档中的信息取代本文档所有早期版本中提供的信息 2015 STMicroelectronics - 保留所有权利