2020/09/28_D-Flash讀寫、擦除實(shí)驗(yàn)紀(jì)要

1系忙、準(zhǔn)備

(1)D-Flash的全局地址范圍0x100000-0x107FFF诵盼,共32K。全分頁(yè)银还。

(2)D-Flash讀取時(shí)风宁,都需要分頁(yè)符訪問(wèn)。

(3)分頁(yè)映射空間大小1K蛹疯,地址范圍0x800-0xBFF戒财。

(4)分頁(yè)符0x00-0x1F。

(5)注意捺弦,F(xiàn)lash空間里面的變化不能通過(guò)TBDML仿真觀察饮寞,可以通過(guò)CAN/SCI等通信接口孝扛,將讀回的數(shù)據(jù)上傳到電腦端驗(yàn)證。


2幽崩、擦除苦始、寫編程的步驟

(1)設(shè)置合適的FCLK,XEP100型號(hào)建議頻率設(shè)定在1MHz慌申。

(2)讀取FCLK陌选,檢查其最高位FDIVLD是否為1,如果為1蹄溉,說(shuō)明時(shí)鐘初始化完成咨油,可進(jìn)行下一步。

(3)檢查FSTAT的ACCERR柒爵、FPVIOL是否為1役电,如果為1,則向該位寫1棉胀,清除該位(使其變?yōu)?)法瑟。

(4)按照NVM指令模式,先向FCCOBIX寫索引號(hào)膏蚓,再根據(jù)索引號(hào)對(duì)應(yīng)的項(xiàng)瓢谢,向FCCOB寫入指令或地址或數(shù)據(jù)畸写。具體按步驟(5)分步寫驮瞧。

(5)擦除操作如下:

??????????? MOVB #$00,FCCOBIX???????????????????????? ;索引號(hào)00枯芬,對(duì)應(yīng)需向FCCOB寫入指令和D-Flash的高(22:16)位的地址

? ? ? ? ? ? MOVW? ? #$1210,FCCOB???????????????????? 论笔; 擦除D-Flash指令 0x12,? D-Flash全局地址從0x100000千所,所以這里寫入10

? ? ? ? ? ? MOVB? ? #$01,FCCOBIX?????????????????????? 狂魔;索引號(hào)01,對(duì)應(yīng)需向FCCOB寫入D-Flash的低(15:0)位地址

? ? ? ? ? ? MOVW? ? #$0000,FCCOB????????????????????? 淫痰;這里寫入0x0000最楷,D-Flash地址就是0x100000, 對(duì)應(yīng).prm里面的映射地址 第0頁(yè)0x800開始待错。


?????? 編程4個(gè)字(8個(gè)字節(jié))籽孙,每次寫D-Flash,至少一次性寫8個(gè)字節(jié)火俄。操作如下:

?????????? MOVB #$00,FCCOBIX????????????????????????????? 犯建;索引號(hào)00

? ? ? ? ? ? MOVW? ? #$1110,FCCOB

? ? ? ? ? ? MOVB? ? #$01,FCCOBIX?????????????????????????? ;索引號(hào)01

? ? ? ? ? ? MOVW? ? #$0000,FCCOB

? ? ? ? ? ? MOVB? ? #$02,FCCOBIX??????????????????????????? 瓜客;索引號(hào)02開始适瓦,陸續(xù)向FCCOB寫入4個(gè)字的數(shù)據(jù)

? ? ? ? ? ? LDX? ? #d_flash_dt

? ? ? ? ? ? MOVW? ? 2,X+,FCCOB

? ? ? ? ? ? MOVB? ? #$03,FCCOBIX?????????????????????????????? 竿开;索引號(hào)03,第二個(gè)字

? ? ? ? ? ? MOVW? ? 2,X+,FCCOB

? ? ? ? ? ? MOVB? ? #$04,FCCOBIX?????????????????????????????? 玻熙;索引號(hào)04否彩,第三個(gè)字

? ? ? ? ? ? MOVW? ? 2,X+,FCCOB

? ? ? ? ? ? MOVB? ? #$05,FCCOBIX??????????????????????????????? ;索引號(hào)05嗦随,第四個(gè)字

? ? ? ? ? ? MOVW? ? 2,X+,FCCOB


(6)寫入指令或相關(guān)的數(shù)據(jù)后胳搞,向FSTAT寫入0x80,將其最高位CCIF置1称杨,啟動(dòng)Flash指令的執(zhí)行肌毅,然后檢查FSTAT最高位是否變?yōu)?,檢查指令是否執(zhí)行完成姑原,代碼如下:

??????????? MOVB #$80,FSTAT

? ? ? ? ? ? BRCLR? FSTAT,mFSTAT_CCIF,*??????????????????? 悬而; 指令執(zhí)行時(shí),最高位為0锭汛,如果再次變?yōu)?笨奠,則表示指令執(zhí)行完畢。


3唤殴、讀D-Flash

(1)先保存當(dāng)前的EPAGE寄存器值般婆,讀數(shù)據(jù)操作完成后,需恢復(fù)EPAGE朵逝。假設(shè)需讀取地址為addr的D-Flash中的數(shù)據(jù)蔚袍。將addr右移10位,取低字節(jié)作為分頁(yè)符EPAGE的值配名,? EPAGE=addr>>10啤咽。?????????? D-Flash全局地址空間 100000-107FFF(32K)。

(2)讀D-Flash時(shí)渠脉,需要映射到0x800-0xBFF地址空間宇整,空間大小為0x0-0x3FF, 因此將addr和0x3FF作&運(yùn)算芋膘,再加上起始地址鳞青,就是實(shí)際用到的讀取地址。???? e_addr=(addr&0x3FF)+0x800

(3)分頁(yè)符EPAGE設(shè)置完成为朋,映射地址計(jì)算好后臂拓,就可以使用64k地址空間尋址的方式,讀取D-Flash的數(shù)據(jù)了潜腻,代碼如下:

??????????? addr??????? DS.W ? 1 ????????????????????????? 埃儿;2個(gè)字節(jié)變量表示需要尋址的D-Flash地址,由于高位始終是10融涣, 所以只取低16位地址來(lái)表示

??????? ?? e_addr???? DS.W?? 1

??????????? LDAA EPAGE

? ? ? ? ? ? STAA? ? last_epage????????????????????? 童番;保存當(dāng)前的EPAGE值

??????????? LDX????? #10

??????????? LDD????? addr

lsr_addr:??????? LSRD ?????

????????????????????? DEX

????????????????????? CPX ? ? ? #0 ?????????

????????????????????? BNE?????? lsr_addr??????????????? 精钮;addr? 右移10位


??????????? STAB ?? EPAGE ???????????????????? ;取addr的低字節(jié)值作為EPAGE

??????????? LDD????? addr

??????????? ANDA?? #$03

??????????? ANDB??? #$FF

?????????? ADDD??? #$800

??????????? STD?????? e_addr?????????????????????? 剃斧;計(jì)算得到全局地址對(duì)應(yīng)的 映射地址

? ? ? ? ? ? LDAA? ? #$00

? ? ? ? ? ? STAA? ? EPAGE


? ? ? ? ? ? LDX? ? #sci_data??????????????????????? 轨香;變量:保存讀取到的數(shù)據(jù)

? ? ? ? ? ? LDY? ? #e_addr

? ? ? ? ? ? LDAB? ? #4

read_df:? ? MOVW? ? 2,Y+,2,X+

? ? ? ? ? ? ? ?? DBNE? ? B,read_df

? ? ? ? ? ?????? MOVB? ? last_epage,EPAGE????????????? ;恢復(fù)EPAGE

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末幼东,一起剝皮案震驚了整個(gè)濱河市臂容,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌根蟹,老刑警劉巖脓杉,帶你破解...
    沈念sama閱讀 219,270評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異简逮,居然都是意外死亡球散,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門散庶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)蕉堰,“玉大人,你說(shuō)我怎么就攤上這事悲龟∥菅龋” “怎么了?”我有些...
    開封第一講書人閱讀 165,630評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵须教,是天一觀的道長(zhǎng)皿渗。 經(jīng)常有香客問(wèn)我,道長(zhǎng)没卸,這世上最難降的妖魔是什么羹奉? 我笑而不...
    開封第一講書人閱讀 58,906評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮约计,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘迁筛。我一直安慰自己煤蚌,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,928評(píng)論 6 392
  • 文/花漫 我一把揭開白布细卧。 她就那樣靜靜地躺著尉桩,像睡著了一般。 火紅的嫁衣襯著肌膚如雪贪庙。 梳的紋絲不亂的頭發(fā)上蜘犁,一...
    開封第一講書人閱讀 51,718評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音止邮,去河邊找鬼这橙。 笑死奏窑,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的屈扎。 我是一名探鬼主播埃唯,決...
    沈念sama閱讀 40,442評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼鹰晨!你這毒婦竟也來(lái)了墨叛?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,345評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤模蜡,失蹤者是張志新(化名)和其女友劉穎漠趁,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體忍疾,經(jīng)...
    沈念sama閱讀 45,802評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡棚潦,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,984評(píng)論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了膝昆。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片丸边。...
    茶點(diǎn)故事閱讀 40,117評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖荚孵,靈堂內(nèi)的尸體忽然破棺而出妹窖,到底是詐尸還是另有隱情,我是刑警寧澤收叶,帶...
    沈念sama閱讀 35,810評(píng)論 5 346
  • 正文 年R本政府宣布骄呼,位于F島的核電站,受9級(jí)特大地震影響判没,放射性物質(zhì)發(fā)生泄漏蜓萄。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,462評(píng)論 3 331
  • 文/蒙蒙 一澄峰、第九天 我趴在偏房一處隱蔽的房頂上張望嫉沽。 院中可真熱鬧,春花似錦俏竞、人聲如沸绸硕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)玻佩。三九已至,卻和暖如春席楚,著一層夾襖步出監(jiān)牢的瞬間咬崔,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工烦秩, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留垮斯,地道東北人郎仆。 一個(gè)月前我還...
    沈念sama閱讀 48,377評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像甚脉,于是被迫代替她去往敵國(guó)和親丸升。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,060評(píng)論 2 355