- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- Permalink
- 印刷
- 不適切なコンテンツを報告
S29GL01GS12TFIV10に対してWrite Buffer Programmingを行いたいのですが、正常に書込みが行えない現象が発生しております。
プログラム(関数)は下記URL①のデータシートP23, Figure 5.のフローチャートとURL②の資料P7を参考に実装しております。
URL① https://www.cypress.com/documentation/datasheets/s29gl01gs-s29gl512s-s29gl256s-s29gl128s-military-1-...
URL② https://www.cypress.com/file/497531/download
関数の引数はプログラム上部にてかっこ内に記載している値に固定して動作確認しております。
コメントアウト部(#else以降)の動作を用いて書き込みが行えることは確認しているため、引数は正しいと考えております。
以下、プログラム実行時の現象と質問です。
■現象
現象① フローチャートの”Read Status Register”でStatus Registerの値が152になり、3bit目が1のため”Program aborted Write to Buffer command”のステートになりました。
現象② Read Status Register後にデバッガにてFlash内部の値をダンプすると、全体が同じ値になっています。
■質問
質問1:SectorAddressに0x700,0000を指定し、そこから256Byte(128Word)書き込んでいて現象①になる原因はどういったことが考えられますでしょうか。
質問2:現象②はフローチャート上部のWrite to Buffer ABORTED.になっている影響でしょうか。
質問3:添付したプログラムにおいて、手順に誤りなどありますでしょうか。
以下、プログラムです。
#define DQ1 (1 << 1) /********************************************************************************************** unsigned short *src=(unsigned short*)pBuffer; int wc=(Length/2)-1; pFlashBase = (unsigned short *)TargetDevice;
sectorAddress =Offset&0xFFF0000; *((volatile unsigned short *)pFlashBase+0x555)=0x00AA; //555 = AA *(pFlashBase + (volatile unsigned short)sectorAddress) = 0x25; //SA = 25
while(1){ //read status register
if(SR&0x10==0){ //SR[4]== 0
#else //Byte Programming *dst=*src;
while(1){
|
お手数ですが、回答の程よろしくお願い致します。
解決済! 解決策の投稿を見る。
- ラベル:
-
Memory Nor Flash
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- Permalink
- 印刷
- 不適切なコンテンツを報告
上記現象について、自己解決いたしました。
コードを一から書き直した結果、セクタアドレスが計算時に意図しない型に変換されていたようです。
お騒がせしました。
今後も何かありましたら、よろしくお願いいたします。
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- Permalink
- 印刷
- 不適切なコンテンツを報告
この現象と質問について、確認を進めており、
申し訳ございませんが、もうしばらくお時間ください。
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- Permalink
- 印刷
- 不適切なコンテンツを報告
お世話になっております。
上記現象の調査について、進捗いかがでしょうか。
現象解決が製品開発に必須なため、確認に必要な情報等ありましたら、なんなりと申しつけください。
以上、よろしくお願い致します。
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- Permalink
- 印刷
- 不適切なコンテンツを報告
上記現象について、自己解決いたしました。
コードを一から書き直した結果、セクタアドレスが計算時に意図しない型に変換されていたようです。
お騒がせしました。
今後も何かありましたら、よろしくお願いいたします。