硬汉嵌入式论坛

 找回密码
 立即注册
查看: 679|回复: 5
收起左侧

[技术讨论] STM32L452RE記憶體寫入問題

[复制链接]

5

主题

9

回帖

24

积分

新手上路

积分
24
发表于 2024-5-8 16:47:55 | 显示全部楼层 |阅读模式
各位前輩好:
小弟目前還在學習階段,目前使用到記憶體(Flash Memory)寫入的部分,遇到了問題想請教:
由[[附圖一]]的圖片(說明書)看到記憶體可以寫入的區塊為0x08000000~0x08080000

附圖一

附圖一

下面的疑問請參考[[附圖二]](GIF,因為不能上傳影片)
因為我開記憶體去看好像有些使用者變數使用了前段的記憶體,怕被覆寫掉而改到0x8020000開始寫,但寫入後發現只要重新啟動一次後,記憶體就會被清空,有試著把Initial中斷點設定好,但發現是只要開機就會被清空了。
若是寫入在0x0807F800(最末段),記憶體就不會被清空,但我翻說明書就是沒看到關於記憶體哪個區塊是系統會使用到的,想請問這是為什麼?

附圖二

附圖二


回复

使用道具 举报

5

主题

9

回帖

24

积分

新手上路

积分
24
 楼主| 发表于 2024-5-8 16:49:15 | 显示全部楼层
20240508 16:40補充說明:寫入記憶體的函式我有測試成功,也有成功以DWORD寫入記憶體,但就是遇到0x08020000會被清除的問題,故發問之
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
116225
QQ
发表于 2024-5-9 09:22:38 | 显示全部楼层
Flash不推荐这么修改,STM32CubeProg不一定可以很好的支持。RAM的话,可以这种函数随意修改。
回复

使用道具 举报

5

主题

9

回帖

24

积分

新手上路

积分
24
 楼主| 发表于 2024-5-9 17:03:07 | 显示全部楼层
eric2013 发表于 2024-5-9 09:22
Flash不推荐这么修改,STM32CubeProg不一定可以很好的支持。RAM的话,可以这种函数随意修改。

eric哥您好:
cubeprog只是驗證單純reset不會被erase memory
下午發現只要用cubeide 進入debug模式就會被full erase
有嘗試修改flash.ld但依舊會被覆蓋
我有用cubeprog燒入elf檔,有勾選skip erase chip,確認這一點記憶體就會被保留住了
但是如何讓cubeide進入debug模式不會erase,目前還在想辦法..
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
116225
QQ
发表于 2024-5-10 09:16:45 | 显示全部楼层
raycooldes 发表于 2024-5-9 17:03
eric哥您好:
cubeprog只是驗證單純reset不會被erase memory
下午發現只要用cubeide 進入debug模式就會 ...

使用最新版的CubeIDE试试,那估计是默认就整片擦除了,得设置下扇区擦除,CubeIDE我不太熟悉。
回复

使用道具 举报

5

主题

9

回帖

24

积分

新手上路

积分
24
 楼主| 发表于 2024-5-10 11:13:32 | 显示全部楼层
eric2013 发表于 2024-5-10 09:16
使用最新版的CubeIDE试试,那估计是默认就整片擦除了,得设置下扇区擦除,CubeIDE我不太熟悉。

目前看起來是整區擦除沒錯,我有嘗試修改linker file,的確可以讓出一個空間讓我存記憶體,但是只要燒錄程式就會擦除
我有寄信詢問美國原廠,再看他們如何協助我,也謝謝eric哥的幫忙
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-6-10 14:41 , Processed in 0.259021 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表