STM32启动地址设置及从非0x800000 开始调试程序

首先设置程序的启动地址,STM32默认的启动地址是从0x8000000开始的,现在我要设置程序向后偏移10K地址,也就是从0x8002800启动。

需要分两步完成上面操作:

一.Keil MDK设置;

设置keil MDK的target

设置flash download。

二.设置程序偏移量

程序偏移量在system_stm32f10x.c代码中。

这里大小和前面keil相对应。

至此STM32启动地址设置完成。但是这个重新只能通过boot loader跳转执行这段程序,无法在线调试。

/*******************************************************************************************************************************************

前部分介绍到此。现在介绍非0x800000 开始调试程序

******************************************************************************************************************************************/

为此我们需要设置下mdk的flash算法即可实现在线调试

修改方法:打开keil安装目录E:\Keil_v5\ARM\Flash(软件路径不一定相同)。

然后打开启动工程:

程序修改ok后编译,会生成STM32F10X_512.FLM

这样我们的mdk的flash算法设置完成。

我们可以在E:\Keil_v5\ARM\Flash找到生成的文件:

到此我们从非0x800000 开始调试程序完成。

原文地址:https://www.cnblogs.com/linux-37ge/p/10220258.html

时间: 2024-08-30 08:17:30

STM32启动地址设置及从非0x800000 开始调试程序的相关文章

内核启动地址的指定 (转)

Bootloader及内核解压      Bootloader将内核加载到内存中,设定一些寄存器,然后将控制权交由内核,该过程中,关闭MMU功能.通常,内核都是以压缩的方式存放,如zImage,这里有两种解压方法:使用内核自解压程序.arch/arm/boot/compressed/head.S或arch/arm/boot/compressed/head-xxxxx.Sarch/arm/boot/compressed/misc.c在Bootloader中增加解压功能.使用该方法时内核不需要带有自

STM32启动模式及API(转)

源:STM32启动模式及API 我们玩ARM9,一般都是在内存里调试程序,速度飞快.STM32下也可以这样,虽说现在的flash寿命已经很长了,但flash中调试烧录程序还是一个很慢的过程,有时候程序上一个小小的改动要花上几倍的时间下载代码,这确实是不能忍受的. 我们也可以在开发STM32时,在内存中调试程序. { STM32这颗Cortex-M3控制器,与其他许多ARM一样,提供了BOOT0和BOOT1两个管脚用于启动选择.BOOT1=x  BOOT0=0  从用户闪存启动,这是正常的工作模式

STM32启动时RAM空间堆(Heap)和栈(stack)的分配 总结

STM32再启动的时候RAM首先分配给使用到的全局变量,及调用库占用的一些数据(不太清楚是什么数据) ,然后再将剩余的空间分配给Heap和stack. 以下是网上关于Heap和Stack的说: (1)栈区(stack):由编译器自动分配和释放,存放函数的参数值.局部变量的值等,其操作方式类似 于数据结构中的栈. (2)堆区(heap):一般由程序员分配和释放,若程序员不释放,程序结束时可能由操作系统回收.分配 方式类似于数据结构中的链表. (3)全局区(静态区)(static):全局变量和静态变

STM32启动过程的理解

对于STM32启动的过程,想象中应该是这样的上电--->启动---->main() 由于现在的集成开发环境,对于C语言之下的东西似乎都被屏蔽了,另外用编程也大都用封装好的库函数,连对寄存器的了解都少了一大步,但是这样总是让人觉得根基不够稳重.今天就整理下启动代码的理解,补充一下. 1.STM32存储器的组织 STM32作为32bit的操作系统,自然是2^32的寻址范围,所以正好是4GB的空间,再看一下对这个4GB是怎么分配的 8*512MB=4GB,图上很清晰了,一共分为  Code区  SR

Uboot启动参数设置

原文地址:Uboot启动参数设置 作者:luozhiyong131 配置uboot并运行Linux(tftp 和NFS 服务的使用) 在开发调试中建议使用tftp服务下载内核和NFS启动文件系统,这样方便调试 1)配置板子的 IP 地址: > setenv ipaddr 192.168.2.44 2) 配置板子的 Linux 服务器地址: > setenv serverip 192.168.2.202 3) 配置启动参数,设置为从 NFS 文件系统启动 setenv bootargs mem=

ASP.NET在IIS的启动优化设置

ASP.NET在IIS的启动优化设置 约定: IIS=Internet Information Services Manager 概要 因为ASP.NET 程序在第一次启动的时候需要等待太长时间,至少是第二次访问的3倍以上时间,这是由于程序是按需启动的,而且程序会在空闲一段时间后自动关闭. 所以特意做了这个文档来告诉大家怎么能让ASP.NET 程序在第一次启动(或者重启)的时候表现的更好,至少速度上接近第二次访问. IIS 8 如果系统是Windows Server 2012 或以上,那么系统自

Win10如何禁止软件运行?win10禁止软件启动的设置方法!禁止人生日历热点快讯的方法

相信不少使用Win10系统的用户遇到过下载了一款软件进行安装后后续会有接连不断的程序安装到电脑中.他可能似乎一个大家常用的程序,在我们安装好运行的时候会通过后台偷偷下载其他应用安装到我们电脑中,导致系统垃圾横行,各种卡顿.大部分应用程序可以用Ctrl+Alt+Del 通过任务管理器来将其禁用,但是对于一些顽固的程序来说是不可行的,在本文中win10之家小编给大家分享下禁止顽固软件启动的设置方法. win10禁止软件启动的设置方法一: 1.Win+R组合键之后输入gpedit.msc,依次进入"计

Tomcat启动超时设置

Tomcat启动超时设置: 处理方法: 1. 在server中找到当前Tomcat双击. 2.在视图中进行修改.(如下图:) 原文地址:https://www.cnblogs.com/tanjiyuan/p/11016574.html

设置MySQL使用非SYSTEM身份运行时,需要修改的磁盘权限

问题 设置MySQL使用非SYSTEM身份运行时,需要修改的磁盘权限 解决方案 *注意:本文的内容涉及到修改NTFS磁盘权限和设置安全策略,请务必在确认您了解操作可能的后果之后再动手进行任何的修改.文中提及的权限都是在原有权限上附加的权限. [修改步骤]1.创建用户创建一个名为mysqlusr的用户,设置一个随机密码,密码的长度最好不要少于20位. 2.设置用户的身份将mysqlusr用户加入Guests组,并去掉其它任何的组. 3.设置磁盘权限假设MySQL安装在如下目录中D:\hosting