1.flash分配

:Boot一般在7K到10K,EE可以视情况分配,假如flash足够大,可以采用先写到APP之外的地址,然后将数据搬移到APP起始地址。

EE页大小设置,
Flash页大小设置#define FMC_PAGE_SIZE 0x800
一般F0为1k,F1为2K(必须参考手册,设置为最小可擦除页的倍数)

2.中断的处理,找出对应芯片的中断数量

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);

for(i=0;i<60;i++)
{
NVIC_InitStructure.NVIC_IRQChannel = i; //¸üÐÂʼþ
//NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; //ÇÀÕ¼ÓÅÏȼ¶0
//NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; //ÏìÓ¦ÓÅÏȼ¶1
NVIC_InitStructure.NVIC_IRQChannelCmd = DISABLE; //ÔÊÐíÖжÏ
NVIC_Init(&NVIC_InitStructure);
}
采用上面的方式,关掉全部中断,
__disable_irq();可以视具体情况使用,关掉后记得打开__enable_irq();

3.Boot与App初始化设置

,可以定义不同的arch_stm32.c 或者arch_sys.c和arch_sys.h,用于存放arch_init函数,void GoApp(void)、arch_gpio_init();、LED_Init();

4.采用CAN的方式升级

,Boot中CAN的接收ID,发送ID修改,另外CAN不采用中断接收的方式,而是采用查询的方式

5.针对不同的BOOT和APP 要修改的地方


BOOT:OPTION中的IROM地址
GoApp()中APP_START_ADDRESS的地址
程序写入的地址SECTOR_ADDR_5和SECTOR_ADDR_0
EE中的页大小和地址:PAGE_SIZE(芯片页地址的倍数)、EEPROM_START_ADDRESS
APP:OPTION中的IROM地址
修改中断向量表的映射地址
:F0
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);
memcpy((void*)0x20000000, (void*)APP_START_ADDRESS, VECTOR_SIZE);
// for(i = 0; i < 48; i++)
// {
// VectorTable[i] = (__IO uint32_t)(APPLICATION_ADDRESS + (i<<2));
// }
SYSCFG_MemoryRemapConfig(SYSCFG_MemoryRemap_SRAM);
:F1,F2
NVIC_SetVectorTable(NVIC_VectTab_FLASH,0x10000); 0x10000是APP偏移地址
EE中的页大小和地址:PAGE_SIZE(芯片页地址的倍数)、EEPROM_START_ADDRESS

6.文件存放

:Boot中的自己的文件有upgrade.c boot.c
Boot与APP相关的几个有:
初始化:IO初始化、延时初始化、CAN初始化、灯初始化、串口初始化、EE初始化
在往上是CAN发送接收、串口发送
因此,Boot中的文件有upgrade.c boot.c arch_boot_can.c(自己的CAN初始化,去掉中断) arch_gpio.c arch_eeprom.c arch_stm32.c 或者arch_sys.c arch_usart.c hal_can.c
Stm32f10x_it.c

Boot与App程序设计相关推荐

  1. okta-spring_通过Okta的单点登录保护Spring Boot Web App的安全

    okta-spring "我喜欢编写身份验证和授权代码." 〜从来没有Java开发人员. 厌倦了一次又一次地建立相同的登录屏幕? 尝试使用Okta API进行托管身份验证,授权和多 ...

  2. 通过Okta的单点登录保护Spring Boot Web App的安全

    "我喜欢编写身份验证和授权代码." 〜从来没有Java开发人员. 厌倦了一次又一次地建立相同的登录屏幕? 尝试使用Okta API进行托管身份验证,授权和多因素身份验证. 您可以使 ...

  3. 嵌入式编程中boot和app的s19简易合并方法(使用mfc编程)

    嵌入式中boot和app为两个项目,使用手动合并方式较慢,如何使用mfc编写程序实现自动合并 1.实现逻辑,首先将boot.s19和app.s19拷贝一份 CommonCopyFile((CStrin ...

  4. 系统开机进入boot menu app menu解决办法

    三星笔记本,开机进入boot menu & app menu,无法开机. 插入win7安装光盘显示boot security:  acess deny. 解决 1.开机点击F1进入到bios界 ...

  5. android起源说法错误的是,知到APP19秋冬—《移动APP程序设计》见面课答案

    知到APP19秋冬-<移动APP程序设计>见面课答案 打开右边网址即可查题www.xuanxiu365.com [网址速记:选修365] 查题解析答案参考,同时提供大学网课,选修课 公务员 ...

  6. 部署Spring Boot Angular App(Maven和Tomcat)的4种方法

    在上一篇有关Spring Boot angular 5的文章中 ,我们使用Spring Boot angular 5实现了一个完整的堆栈端到端Web应用程序.在本文中,我们将讨论在tomcat上部署S ...

  7. SWPU第一届APP程序设计大赛筹备工作

    1 竞赛网址 http://main.corntree.net/champion/index 2. 选题讨论 关于竞赛的题目,目前几个想法: 1.私密相册 2.打印机 3.贴图(制作表情包) 4.聊天 ...

  8. N76E003合并boot和app

    N76E003的FLASH容量为18KB,这18KB可分为LDROM(Load ROM)和APROM(Application ROM).LDROM和APROM共用这18KB的FLASH,可以通过配置C ...

  9. 瑞萨单片机iap串口升级boot程序与app程序合并的工程构建-学习记录

    MCU型号: R7F0C004 编辑软件:CS+ for CC boot区程序地址分配:0x0000-0x1ffff app区程序地址分配: 0x2000-0xfffff 复制一份常规的app程序,然 ...

最新文章

  1. 如何用php实现分页效果
  2. 数字信号处理中的自相关和互相关计算和物理意义(二)
  3. 1036 跟奥巴马一起编程 (15分)——16行代码AC
  4. vue 父组件与子组件之间的传值(普通传值)
  5. 操作多台_一支热电偶能否连接多台显示仪表
  6. 计算机课本ppt,计算机基础知识培训教材(ppt44页) .pptx
  7. iOS开发中的单元测试(三)——URLManager中的测试用例解析
  8. 新西兰储备银行数据遭泄露
  9. sqoop简单的demo 先跑起来再说
  10. 中国期货交易技术的逆袭之路
  11. Mac使用JMeter录制脚本
  12. 《人工智能导论》自然演绎推理
  13. linux离线安装nettools,CentOS最小安装之安装net-tools并配置网络
  14. 二十世纪初的心理学时间轴制作
  15. python表白女神
  16. 如何查看python有哪些内置函数_如何查看 Python 全部内置变量和内置函数?
  17. aspose-words,pdf
  18. html5 评测 小米6,小米6X和小米6哪个好?小米6与6X区别对比全面评测
  19. 《菅销在移动互联网时代》智慧树知到章节测试答案
  20. pdf怎么合并?合并有技巧

热门文章

  1. 11.STC15W408AS单片机CCP/PCA/PWM应用
  2. python批量改名
  3. SpringBoot普通参数与基本注解(@PathVariable、@RequestHeader、@RequestParam、@RequestBody)
  4. insert table mysql_MYSQL insert data(如何插入数据到table)
  5. [ZCMU OJ]1633: 酷酷的单词(遍历)
  6. C语言求一元二次方程根
  7. SAP FI02和FI12银行主数据的维护
  8. 详解:S锁(读锁)和X锁(写锁)
  9. 程序员,你还没有软技能吗?难怪你不幸福
  10. linux的网络管理,Linux之网络管理