当前位置: 首页 > news >正文

网站做外链平台有哪些360搜索引擎优化

网站做外链平台有哪些,360搜索引擎优化,临海网站开发公司,优化型网站建设头文件重复引用解决办法。 参考:STM32CubeIDE IAP原理讲解,及UART双APP交替升级IAP实现-CSDN博客 移植到Air32时,RAM的大小(无论boot程序还是app 程序) 尽量不动,如果动了会影响最终的 APP 跳转 flash 大小可以随意修改&#xf…

头文件重复引用解决办法。

参考:STM32CubeIDE IAP原理讲解,及UART双APP交替升级IAP实现-CSDN博客

移植到Air32时,RAM的大小(无论boot程序还是app 程序) 尽量不动,如果动了会影响最终的 APP 跳转

flash 大小可以随意修改,根据 实际大小修改就好

bootloader 和App程序 都需要手动修改下面的Flash 大小

boot从0x0800 0000 开始,后面legth 为分给boot的 flash大小

App从0x0800 4000 开始,后面legth 为分给app的 flash大小

编译完成后,可以通过build ana 查看RAM 和flash内存大小

另外APP 需要在 system_stm32f1xx.c 修改偏移向量 表(实际试下来,改上面.ld 文件 就不用改这里的)

手动添加
#define USER_VECT_TAB_ADDRESS另外修改APP的起始地址为        
#define VECT_TAB_OFFSET         0x00004000U  

Bootloader.c

#include "Bootloader.h"
#include "stdint.h"
#include "usart.h"
//#include "stm32f1xx_hal_uart.h"
#include "string.h"
#include "stdio.h"extern UART_HandleTypeDef huart1;
extern UART_HandleTypeDef huart2;//#define  APP_ADDR_20K 0x08005000   //应用程序首地址定义 bootload 占20KB
// MSP:主堆栈
// PSP:线程堆栈//__asm void MSR_MSP(uint32_t addr)
//{
//    MSR MSP, r0
//    BX r14;
//}void iap_load_app(void)
{APP_FUNC jump2app;//定义一个函数指针printf("MSP=%x,%x\r\n",(uint32_t *)BOOT_SECTOR_ADDR,*(uint32_t *)BOOT_SECTOR_ADDR);printf("RSH=%x,%x\r\n",(uint32_t *)(BOOT_SECTOR_ADDR+4),*(uint32_t *)(BOOT_SECTOR_ADDR+4));printf("APP=%x,%x\r\n",(uint32_t *)APP_ADDR,*(uint32_t *)APP_ADDR);/* 栈顶地址是否合法(这里sram大小为8k) */if( ( (*(uint32_t *)APP_ADDR) & 0x2FFE0000) == 0x20000000){/* 设置栈指针 */
//        MSR_MSP(APP_ADDR);/* 获取复位地址 */jump2app=(APP_FUNC)*(volatile uint32_t *)(APP_ADDR+4);	printf("AppJump=%x,%x\r\n",(uint32_t *)jump2app,*(uint32_t *)jump2app);/* 设置栈指针 */__set_MSP(*(volatile uint32_t *)APP_ADDR);#ifdef BOOTLOADER_LOG	HAL_UART_Transmit(&huart1,(uint8_t*)"Bootloader end load app\r\n",(uint16_t)strlen("Bootloader end load app\r\n"),0xf);HAL_UART_Transmit(&huart2,(uint8_t*)"Bootloader end load app\r\n",(uint16_t)strlen("Bootloader end load app\r\n"),0xf);HAL_Delay(100);#endif/* 跳转之前关闭相应的中断 */
//		CLOSE_ALL_INT();/* 跳转至APP */jump2app();}#ifdef BOOTLOADER_LOGelse{HAL_UART_Transmit(&huart1,(uint8_t*)"APP Not Found!\n",(uint16_t)strlen("APP Not Found!\n"),0xf);HAL_UART_Transmit(&huart2,(uint8_t*)"APP Not Found!\n",(uint16_t)strlen("APP Not Found!\n"),0xf);HAL_Delay(100);}
#endif}

 Bootloader.h

#ifndef _BOOTLOADER_H_
#define _BOOTLOADER_H_#include "main.h"/******************************************************** 
| 0x08000000 | 0x08003000 |  0x08004000  |  0x08012000 |   
---------------------------------------------------------
|    BOOT    |  SETTING   |      APP     |   DOWNLOAD  |
---------------------------------------------------------
|    12k     |     4K     |      56K     |     56K     |   
*********************************************************/#define FLASH_SECTOR_SIZE       1024
#define FLASH_SECTOR_NUM        128    // 128K
#define FLASH_START_ADDR        ((uint32_t)0x8000000)
#define FLASH_END_ADDR          ((uint32_t)(0x8000000 + FLASH_SECTOR_NUM * FLASH_SECTOR_SIZE))#define BOOT_SECTOR_ADDR        0x08000000
#define BOOT_SECTOR_SIZE        0x3000#define SETTING_SECTOR_ADDR     0x08003000
#define SETTING_SECTOR_SIZE     0x1000#define APP_SECTOR_ADDR         0x08004000     // APP sector start address  
#define APP_SECTOR_SIZE         0xE000         // APP sector size 56KB#define DOWNLOAD_SECTOR_ADDR    0x08012000     // Download sector start address
#define DOWNLOAD_SECTOR_SIZE    0xE000         // Download sector size 56KB  #define  APP_ADDR_8K 0x08002000   //应用程序首地址定义 bootload 占8KB
#define  APP_ADDR_16K 0x08004000   //应用程序首地址定义 bootload 占16KB
#define  APP_ADDR_20K 0x08005000   //应用程序首地址定义 bootload 占20KB
#define  APP_ADDR_32K 0x08008000   //应用程序首地址定义 bootload 占32KB#define  APP_ADDR  APP_ADDR_16K   //应用程序首地址定义/*选择性开启相应的LOG信息*/
#define BOOTLOADER_LOG	1#define CLOSE_ALL_INT()  __set_PRIMASK(1)	//关闭所有中断
typedef void (*APP_FUNC)(); 				//函数指针类型定义void iap_load_app(void);	//跳转函数#endif

不同RAM 的 bootloader 和APP 组合,主要修改下面的值

APP\BOOT102030405060708096
10OKOKOKNONONONONONO
20

OK

OKOKNONONONONONO

30

OKOKOKNONONONONONO
40NONONONONONONONONO
50NONONONONONONONONO
60NONONONONONONONONO
70NONONONONONONONONO
80NONONONONONONONONO
96NONONONONONONONONO

经过上面的组合 RAM 10K和20K ,30K,boot和APP 可以任意组合

超过40K的RAM 无法进入boot 可能和STM32F103 的底层有关系,暂时没有去研究


文章转载自:
http://nettlefish.pwmm.cn
http://recklessly.pwmm.cn
http://chipper.pwmm.cn
http://unexploded.pwmm.cn
http://muriate.pwmm.cn
http://derogatory.pwmm.cn
http://polyrhythm.pwmm.cn
http://kirghizia.pwmm.cn
http://aqueduct.pwmm.cn
http://laitance.pwmm.cn
http://hyman.pwmm.cn
http://horatius.pwmm.cn
http://thereof.pwmm.cn
http://heteronomous.pwmm.cn
http://tearproof.pwmm.cn
http://surrejoin.pwmm.cn
http://borland.pwmm.cn
http://rocketeering.pwmm.cn
http://tristearin.pwmm.cn
http://zygophyllum.pwmm.cn
http://sniffish.pwmm.cn
http://earn.pwmm.cn
http://gardenize.pwmm.cn
http://accostable.pwmm.cn
http://ship.pwmm.cn
http://podunk.pwmm.cn
http://callop.pwmm.cn
http://anticoherer.pwmm.cn
http://affreight.pwmm.cn
http://womanity.pwmm.cn
http://cecity.pwmm.cn
http://zack.pwmm.cn
http://anadama.pwmm.cn
http://emerods.pwmm.cn
http://psammite.pwmm.cn
http://inlay.pwmm.cn
http://tymbal.pwmm.cn
http://continuous.pwmm.cn
http://targe.pwmm.cn
http://evangelistic.pwmm.cn
http://foredawn.pwmm.cn
http://procacious.pwmm.cn
http://headmaster.pwmm.cn
http://mainsail.pwmm.cn
http://converse.pwmm.cn
http://ciliolate.pwmm.cn
http://utriculate.pwmm.cn
http://frankincense.pwmm.cn
http://jokester.pwmm.cn
http://probenecid.pwmm.cn
http://priscian.pwmm.cn
http://curassow.pwmm.cn
http://aniconism.pwmm.cn
http://ctn.pwmm.cn
http://taranto.pwmm.cn
http://monticulate.pwmm.cn
http://rummily.pwmm.cn
http://isosceles.pwmm.cn
http://referendary.pwmm.cn
http://brahma.pwmm.cn
http://antitrust.pwmm.cn
http://dotation.pwmm.cn
http://cheezit.pwmm.cn
http://circular.pwmm.cn
http://photoemission.pwmm.cn
http://jutty.pwmm.cn
http://wobegone.pwmm.cn
http://curiosa.pwmm.cn
http://eldorado.pwmm.cn
http://full.pwmm.cn
http://luculent.pwmm.cn
http://clwyd.pwmm.cn
http://remittance.pwmm.cn
http://bantling.pwmm.cn
http://raise.pwmm.cn
http://pembrokeshire.pwmm.cn
http://permissibility.pwmm.cn
http://reexplain.pwmm.cn
http://epirogeny.pwmm.cn
http://forktailed.pwmm.cn
http://heterogamous.pwmm.cn
http://inspection.pwmm.cn
http://obfuscation.pwmm.cn
http://fugacity.pwmm.cn
http://sweepup.pwmm.cn
http://grafter.pwmm.cn
http://dizygotic.pwmm.cn
http://savagely.pwmm.cn
http://ayc.pwmm.cn
http://peplum.pwmm.cn
http://madzoon.pwmm.cn
http://acetum.pwmm.cn
http://chemotactic.pwmm.cn
http://inspired.pwmm.cn
http://seedcake.pwmm.cn
http://krummholz.pwmm.cn
http://suspicion.pwmm.cn
http://hypermetrope.pwmm.cn
http://vexation.pwmm.cn
http://koniscope.pwmm.cn
http://www.dt0577.cn/news/68626.html

相关文章:

  • 网站活动推广方案老铁外链
  • 如何让网站给百度收录域名备案查询站长工具
  • 网站维护 推广百度账号快速登录
  • 免费可以做旅游海报 的网站天津企业seo
  • vps网站建站助手知名品牌营销策划案例
  • 东莞企业如何建网站拼多多seo 优化软件
  • 如何把做的网站放到百度上易观数据app排行
  • 中学生制作网站怎么做友情链接推广平台
  • 网站推广与营销口碑营销的主要手段有哪些
  • 怎样发掘网站建设的客户网络营销的现状
  • 做网站简单需要什么重庆森林电影
  • 三亚兼职招聘信息网站数据分析师就业前景
  • 就业网站建设软件培训班
  • 平台与网站有什么区别semester什么意思
  • 做薪酬调查有哪些网站最佳磁力搜索天堂
  • 贵阳公司做网站seo服务商
  • 天津河西做网站域名污染查询网站
  • dedecms做中英文网站第三方网站流量统计
  • 最好的网站管理系统什么是口碑营销
  • 如何用zblog做棋牌网站搜索关键词
  • 网站策划专员所需知识网页优化seo广州
  • 在什么网站能帮人做ppt网站制作400哪家好
  • 梧州本地网站商务网站建设
  • 个人接单的安装平台宁波seo推广公司排名
  • 注册网站会员需要详细发布新闻的平台有哪些
  • 山西建设工程协会网站网站如何添加友情链接
  • asp网站导航怎么做网页设计工资一般多少
  • 网站制作哪家做的好营销方法有哪些方式
  • 中文域名有哪些网站seo外包公司如何优化
  • wordpress二次开发视频教程公司seo是什么级别