精华内容
下载资源
问答
  • 怎么使用stm32写IAP的bootloader和APP

    千次阅读 2017-11-13 08:49:20
    Stm32的bootloader和App的编写注意事项 1、 怎么分配bootloader和app的空间 ...4、 怎么设置App的中断向量 5、 App中怎么生成bin文件 6、程序执行的流程   1、怎么分配bootloader和app的空间

    Stm32的bootloader和App的编写注意事项

    1、 怎么分配bootloader和app的空间

    2、 怎么得到数据和写入flash

    3、 怎么从bootloader跳转到app

    4、 怎么设置App的中断向量

    5、 App中怎么生成bin文件

    6、程序执行的流程

     

    1、怎么分配bootloader和app的空间


    因为我用的是stm32f103c8t6,它的flash的大小是64k,所以把它分成如上所示

    0x08000000 ---0x0800 33FF分配给bootloader使用,大小是13k

    0x0800 3400----0x080097FF分配给第一个APP的使用,大小是25k

    0x08009800----0x0800 FBFF分配给第二个APP的使用,大小是25k

    0x0800FC00----0x0800 FFFF 分配给user_flag和其它标志使用,大小是1k

     

    在keil中设置rom的大小

    A、bootloader中rom大小的设置


    B、APP1中rom大小的设置


    C、APP2中rom大小的设置

     

     

     

    Rom设置好了就可以在map中看见地址的改变,这里拿bootloader和app1来说。

    Bootloader的map

     

    App1的map


    这里就可以看到RESET的地址改变了

    但是要想我们改变的rom在map中也改变keil里面必须要设置如下图,


    这里必须要打勾,默认新建的工程是没有选择的

     

    2、怎么得到数据和写入flash

    在我的程序是通过串口接收数据,然后调用app_bin_handler(&timer);函数来在里面完成写flash(函数iap_write_appbin(Flash_Current_Write_addr(),g_RxBuf1,length))、和校验写入的数据是否正确(函数flag =read_flash_ECC(Flash_Current_Write_addr(),length);)、校验通过就可以跳转到app中(函数JumpToApp(Flash_Current_Write_addr(),1);)

     

     

    3、怎么从bootloader跳转到app

    voidJumpToApp(u32 ApplicationAddress,u8 flag)

    {

             u32 temp;

             if (((*(vu32*)ApplicationAddress) &0x2FFE0000 ) == 0x20000000)

             {

                       if(flag == 1)

                       {

                                User_write_Flash_falg();

                       }

                       temp = (*(vu32*)(ApplicationAddress + 4));

                       JumpToApplication =(FunVoidType)temp;

                       MSR_MSP(*(vu32*)ApplicationAddress);

                       JumpToApplication();

             }

    }

    程序中就是利用上面的函数实现跳转,中间有个User_write_Flash_falg()函数是用来设置app的标志的,如果当前正在使用的是app1,那么就设置标志位为2,好在下次启动的时候跳转到app2,如果当前正在使用的是app2,那么就设置标志位为1,好在下次启动的时候跳转到app1

    至于上面函数的详解可以百度。

     

    4怎么设置App的中断向量

    Stm32的中断重定向比较简单,因为它有一个专用的寄存器

             NVIC_SetVectorTable(NVIC_VectTab_FLASH,0x9800);

    这个函数就是重定向了app2的中断向量,实现起来简单

     

    6、             App中怎么生成bin文件

    因为我的程序是通过串口下载app的所以必须要生成bin文件,才方便下载,

    在工程里面进行如下设置就可以生成bin文件

    其中主要是路径要对,不然找不到.axf文件,也就生成不了bin文件

     

     


    总结:

    Bootloader里面主要是

    1、设置bootloader和app的空间

    2、接收编译好的app的bin文件,写入flash

    3、实现跳转

    App里面主要修改的地方是

    1、         ROM起始地址和分配的空间大小

    2、         重定向中断向量

    3、         生成bin文件

    这里就是整个程序执行的流程

    展开全文
  • 原标题:电视怎么设置投屏?不用数据线即可投屏的技巧很简单现在,大家什么都追求易操作、高效率,就连电视投屏也一样。在日常的学习、工作生活中,职场人还是要经常进行电视投屏操作的(例如远程会议的时候,使用...

    原标题:电视怎么设置投屏?不用数据线即可投屏的技巧很简单

    现在,大家什么都追求易操作、高效率,就连电视投屏也一样。在日常的学习、工作生活中,职场人还是要经常进行电视投屏操作的(例如远程会议的时候,使用大屏更方便),我有一个不用数据线即可投屏的技巧分享给大家。

    5935ab3d79d2d5198583d72c25ef3c56.png

    平时,我习惯使用快投屏进行电视投屏,不同usb数据线就能把手机、电脑投屏到电视大屏设备上。这款软件有3个不同的版本:app、pc以及tv,在选择上很灵活,帮助大家实现多端投屏。下面给大家带来不用数据线即可电视投屏的技巧,不要错过了哈。

    不用数据线即可电视投屏的技巧

    大家可能对这款软件还有所不知,之所以不用数据线就能电视投屏,那是因为它有“无线投屏”功能。此外,这款软件还可以进行多屏互动,想投哪里就投哪里去。把3个版本的软件下载、安装到相应的设备以后,启动它们,进入到下一步。

    f7966b5f064a163d6ace42be9a7fb350.png

    首先,我们先来到pc版软件的【电脑投电视(手机)】页面,看看电脑是怎么无线投屏电视的。在页面左边窗口里,点击发现的电视设备id即可投屏,没有显示id的话刷新一下即可;在页面的右边,往方框里输入电视投屏码后,点击【开始投屏】按钮就好啦。

    b86e7946c4628b1ed281f501338d6c5d.png

    接着,我们进入到app版软件的【无线投】页面,这里有3个手机无线投屏电视的通道:1.点击【搜索大屏设备】分区中的电视设备id,即可成功投屏;2.在【扫码】页面中,把电视二维码放入方框,扫描后即可投屏;3.在【投屏码投屏】页面中,往小方框里输入电视投屏码就好啦。

    405f2079fabc5b148b645589adab292f.png

    现在,即使没有数据线的帮助,大家也可以把手机、电脑轻松地投屏到电视上啦。其实,电视投屏很简单,大家多练习就能学会、掌握到其中的技巧了哦。返回搜狐,查看更多

    责任编辑:

    展开全文
  • Stm32的bootloader和App的编写注意事项1、 怎么分配bootloader和app的空间2、 怎么得到数据和写入flash3、 怎么从bootloader跳转到app4、 怎么设置App的中断向量5、 App中怎么生成bin文件6、程序执行的流程1、怎么...

    Stm32的bootloader和App的编写注意事项

    1、 怎么分配bootloader和app的空间

    2、 怎么得到数据和写入flash

    3、 怎么从bootloader跳转到app

    4、 怎么设置App的中断向量

    5、 App中怎么生成bin文件

    6、程序执行的流程

    1、怎么分配bootloader和app的空间

    因为我用的是stm32f103c8t6,它的flash的大小是64k,所以把它分成如上所示

    0x08000000 —0x0800 33FF分配给bootloader使用,大小是13k

    0x0800 3400----0x080097FF分配给第一个APP的使用,大小是25k

    0x08009800----0x0800 FBFF分配给第二个APP的使用,大小是25k

    0x0800FC00----0x0800 FFFF 分配给user_flag和其它标志使用,大小是1k

    在keil中设置rom的大小

    A、bootloader中rom大小的设置

    B、APP1中rom大小的设置

    C、APP2中rom大小的设置

    Rom设置好了就可以在map中看见地址的改变,这里拿bootloader和app1来说。

    Bootloader的map

    App1的map

    这里就可以看到RESET的地址改变了

    但是要想我们改变的rom在map中也改变keil里面必须要设置如下图,

    这里必须要打勾,默认新建的工程是没有选择的

    2、怎么得到数据和写入flash

    在我的程序是通过串口接收数据,然后调用app_bin_handler(&timer);函数来在里面完成写flash(函数iap_write_appbin(Flash_Current_Write_addr(),g_RxBuf1,length))、和校验写入的数据是否正确(函数flag =read_flash_ECC(Flash_Current_Write_addr(),length);)、校验通过就可以跳转到app中(函数JumpToApp(Flash_Current_Write_addr(),1);)

    3、怎么从bootloader跳转到app

    voidJumpToApp(u32 ApplicationAddress,u8 flag)

    {u32 temp;

    if (((*(vu32*)ApplicationAddress) &0x2FFE0000 ) == 0x20000000)

    {

    if(flag == 1)

    {

    User_write_Flash_falg();

    }

    temp = (*(vu32*)(ApplicationAddress + 4));

    JumpToApplication =(FunVoidType)temp;

    MSR_MSP(*(vu32*)ApplicationAddress);

    JumpToApplication();

    }1234567891011121314151617181920212223

    }

    程序中就是利用上面的函数实现跳转,中间有个User_write_Flash_falg()函数是用来设置app的标志的,如果当前正在使用的是app1,那么就设置标志位为2,好在下次启动的时候跳转到app2,如果当前正在使用的是app2,那么就设置标志位为1,好在下次启动的时候跳转到app1

    至于上面函数的详解可以百度。

    4、怎么设置App的中断向量

    Stm32的中断重定向比较简单,因为它有一个专用的寄存器NVIC_SetVectorTable(NVIC_VectTab_FLASH,0x9800);1

    这个函数就是重定向了app2的中断向量,实现起来简单

    6、App中怎么生成bin文件

    因为我的程序是通过串口下载app的所以必须要生成bin文件,才方便下载,

    在工程里面进行如下设置就可以生成bin文件

    其中主要是路径要对,不然找不到.axf文件,也就生成不了bin文件

    总结:

    Bootloader里面主要是

    1、设置bootloader和app的空间

    2、接收编译好的app的bin文件,写入flash

    3、实现跳转

    App里面主要修改的地方是

    1、 ROM起始地址和分配的空间大小

    2、 重定向中断向量

    3、 生成bin文件

    这里就是整个程序执行的流程

    展开全文
  • 1连上Fiddler,设置好后可以进行抓包,具体操作看怎么使用Fiddler抓包篇。 2手机操作app找到自己想要串改的接口。 3点击AutoReponder,选中上面的接口,点击AddRule,目标接口显示再右下方的框里 4勾选上...

    本篇详细介绍怎么使用Fiddler篡改前端的返回数据。(本方法可以灵活使用在前端测试的情况下,比如需要一些特殊的数据返回来查看前端逻辑)

    1连上Fiddler,设置好后可以进行抓包,具体操作看怎么使用Fiddler抓包篇。

    2手机操作app找到自己想要串改的接口。

    3点击AutoReponder,选中上面的接口,点击AddRule,目标接口显示再右下方的框里

    4勾选上Enable rules和unmatched requestspassthrough,作用就如字面意思一样,启用自己设置的规则并且让其他接口正常的通过请求,只篡改自己设定的接口。

    5左边选中目标接口右击,save=》open as local file

    6 保存成text文件。

    7文件内容显示不太容易修改,可以去bejson进行格式化后修改。

    8 对返回数据进行修改后再点压缩后存进txt文件,保存文件。

    9点下拉框选择Find a file

    10 选择刚才保存的文件

    11 手机操作软件,查看前端显示。

    修改前:

    修改后:

     

     

     

    展开全文
  • 本篇文章主要从什么是URL Scheme、有什么作用、怎么使用三个方面来讲一下。第一:什么是URL Scheme 与Android的URL Scheme类似,是为方便app之间互相调用而设计的。你可以通过一个类似URL的链接,通过系统的...
  • 本篇文章主要从什么是URL Scheme、有什么作用、怎么使用三个方面来讲一下。 第一:什么是URL Scheme  与Android的URL Scheme类似,是为方便app之间互相调用而设计的。你可以通过一个类似URL的链接,...
  • 分析统计数据,发现APP经常由于空指针错误发生崩溃,主要使用场景是因为APP切换到后台,内存被回收。 有两个问题: 1、Android APP在模拟器开发中怎么模拟内存不足? 2、继承自MyApplication的类的成员变量会被释放...
  • 话不多说,进入正题,我就不说怎么安装selenium、怎么用webdriver了,有人要是不会可以私信我哈。不过我想,这里混的都是大佬,不会比我这种小白程序员差,我也就做个分享而已。 目录 一、导入需求的模块 二、...
  • 之前爬取都是网页上的数据,今天要来说一下怎么借助Fidder来爬取手机APP上的数据。 一、环境配置 1、Fidder的安装和配置 没有安装Fidder软件的可以进入 这个网址 下载,然后就是傻瓜式的安装,安装步骤很简单。在...
  • 所有功能不需要任何配置,一键直接即可使用、操作就是这么简单!支持备份并恢复模拟的相关系统信息数据,并且可在恢复前/后卸载或安装指定的场景!感兴趣的朋友快来网下载!抹机王 软件功能一键新机:自定义新机设备...
  • 之前爬取都是网页上的数据,今天要来说一下怎么借助Fidder来爬取手机APP上的数据。一、环境配置1、Fidder的安装和配置没有安装Fidder软件的可以进入 这个网址 下载,然后就是傻瓜式的安装,安装步骤很简单。在安装...
  • 经常使用苹果手机的用户都知道,每次我们下载200m以上的APP应用时,都无法下载,需要连接无线局域网也就是WiFi才可以下载,那苹果下载超过200兆怎么设置,苹果怎么取消200m限制,下面就和小编一起来看看吧!...
  • 之前爬取都是网页上的数据,今天要来说一下怎么借助Fidder来爬取手机APP上的数据。   一、环境配置 1、Fidder的安装和配置 没有安装Fidder软件的可以进入这个网址下载,然后就是傻瓜式的安装,安装步骤很简单。在...
  • iOS 13 内置了快捷指令 App,也完全重构了快捷指令 App,其中最大的变化是编辑器的 UI 和操作方式与旧版完全不一样,这导致很多作者一时无法适应。同时,也难于避免的引入了一些 bug。今天,我们就和大家聊聊...
  • 最近很多平安用户在使用平安各种App时,App里面的运动步数记步活动就算参加了,步数要么不显示、要么显示为零、要么跟手机自带运动记步器显示有不一样的差别,这些都是跟手机本身设置有关系,接下来淘小爱就讲下如何...
  • 本人菜鸟 先用Ontouch方法 + while循环 + thread休眠写了一个每隔100ms 按钮连续发送数据的蓝牙APP 但是在使用过程中 配对 以及连接蓝牙之后 可以发送大概5分钟 APP就崩溃了 崩溃是指:蓝牙还和我的手机连着 但是...
  • 其实主要还是因为手机缓存数据没有清理干净,所以这几个清理手机缓存的方式和设置你一定要知道。首先我们要知道,手机缓存主要分为3大类:APP缓存数据、应用运行数据、手机缓存数据APP缓存数据主要指的是很多手机...
  • theApp.GetContextMenuManager()->ShowPopupMenu(IDR_POPUP_EDIT, point.x, point.y, this, TRUE); #endif } // CMapView 诊断 #ifdef _DEBUG void CMapView::AssertValid() const { CView::...
  • 苹果手机设置里是没有开发者模式的。我们需要借助苹果助手来实现 步骤1:下载iTools苹果助手 打开iTools,电脑连接手机 长这样! 步骤2:点击工具箱->实时桌面 提示:文章写完后,目录可以自动生成,如何...
  • 相信苹果的用户都知道,在手机使用很长一段时间时候,进入iPhone储存空间一看,会发现有一项“其他”的占用内存十分的大,而且不知道怎么清理,如果是128G以上用户还好,但是如果是64G的用户真的是脑瓜子嗡嗡响了。...
  • 工厂后台设置 appid、secret、微信支付商户号和秘钥时候的 token 怎么填? 不要填! 不要填! 不要填! 重要的事情说三遍,这个小程序用不到,是给服务号使用的,所以大家空着不要填 微信支付时候,提示 50000 ...
  • 我从json中获取5条数据,想要存储到数组中以供使用,可是怎么不好用啊,是我哪里错了,大神帮忙看看 package textview.exam; import android.os.Bundle; import android.support.annotation.Nullable; import ...
  • 在matlab中数字滤波器的简单使用方法打开APP-->Filter Designer,根据需要设置参数,点击 Design Filter,完成计算。2. 将生成的滤波器系数导出到文件,File-->Export,打开导出数据对话框,我这里选择导出到...
  • 官方提供了一个工具,可以用来管理配置数据库,或者设置一些用户的权限,现在咱用不到咱现在用咱设置的test账户登录现在咱用手机调试助手访问一下数据库(注意要和电脑处于同一个网络哈)启动MySQL服务主要有以下两种方法...
  • 服务端使用的是firebase,接口数据也都有, 前端代理也设置了, 由于访问的是https 在package.json的start处也设置了set HTTPS=true 但还是报错 ``` Error occurred while trying to proxy request / from ...
  • 在编辑app.config文件配置好连接串看webcast里介绍的connectionString还有很多属性可以设置,可是我怎么也找不到,不知是不是版本的原因,只好自己手写了2.查询 publicDataSetGetProductsTypes(){Da...

空空如也

空空如也

1 2 3 4 5 ... 10
收藏数 181
精华内容 72
关键字:

怎么设置app使用数据