您的位置 首页 新能源

FLASH调试_HCS12学习笔记(6)

停了一阶段没有调试FLASH的程序,调了一阶段的CAN,无果,CAN的程序也很麻烦,不过今天早上终于把FLASH的程序调通了,其实,程序本身应该

停了一阶段没有调试FLASH的程序,调了一阶段的CAN,无果,CAN的程序也很费事,不过今日早上总算把FLASH的程序调通了,其实,程序自身应该是没有什么问题的,可是由于程序没有分段存储,所以直接导致FLASH的分页寄存器没有可以读出来,今早,我把我的一切.C文件悉数标明代码存储到0x4000这个方位上,FLASH的程序直接调试成功。这儿贴我的部分改动,以作存档。

//[Flash.c]Flash擦写——————————————————-*
//本文件包括: *
// (1)Flash_Erase_Sector:擦除一个指定的扇区 *
// (2)Flash_Write_Nword:向一个指定的区域写入若干个字 *
//————————————————————————-*

//头文件
#include “Flash.h” //Flash擦写头文件

#pragma CODE_SEG CODE_flash
#pragma CONST_SEG CONST_flash

void Erase_Write_Pretreat(INT8U page); //擦写子函数内部调用的函数声明
//页所对应的块对照表
//两个flash块,每块4页 flash0 flash1
const INT8U pagetable[4][4] = {{0x3C,0x3D,0x3E,0x3F},{0x38,0x39,0x3A,0x3B},{0x34,0x35,0x36,0x37},{0x30,0x31,0x32,0x33}};

上面赤色的代码是我增加出来的,功用是将本段代码放在CODE_flash对应的存储空间里。

PLACEMENT
_PRESTART,
STARTUP,
ROM_VAR,
STRINGS,
VIRTUAL_TABLE_SEGMENT,
//.ostext,
NON_BANKED,
COPY

INTO ROM_C000;

DEFAULT_ROM INTO PAGE_38, PAGE_39;

CODE_main,
CODE_flash,
CODE_MCUInit,
CODE_SCI
INTO ROM_4000;

//.stackstart,
SSTACK,
//.stackend,
DEFAULT_RAM INTO RAM;

这一段是P&E_Multilink_CyclonePro_linker.prm里摘出来了,它默许界说了一切代码、常量的寄存区段,赤色部分是我增加出来的,把我的首要文件放入了ROM_4000这个地址里,也便是对应了0x4000_0x7fff这个地址里。

所以程序顺畅调通,这儿小小得庆祝一下~

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/xinnengyuan/260809.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部