STMCU小助手
发布时间:2022-3-1 11:50
|
问题:! S- ?! ]7 @7 L6 S2 b6 P 某客户工程师在其产品的设计中,使用了 STM32L152RBT6。该工程师打算在烧写程序之前,往STM32L100 里边的 EEPROM 预置一些数据,没想到什么好的办法。他在网上搜了一下其他人的做法,发现大家基本上都是使用程序代码的方式,在第一次运行程序的时候,使用程序对 EEPROM 进行编程达到预置的目的。他觉得这不是最适合他的方法,于是请教是否还有其他更方便的方法。 调研:. p t8 p" s* Q# y$ ^5 a9 o5 } g 1. 根据客户的要求,第一反应就是看看 ST 的专业烧写软件 STVP 是否可以实现。于是连接 STM32LDiscovery 板子,将 STVP 软件开。 2. 选择菜单“Configure→Configure ST Visual Programmer”,在弹出的对话框选择工具 ST-LINK,SWD 接口,STM32L152RBT6。如下图,点击“OK”,完成工具配置。 " B( P& N+ U1 f/ x: W! U) t! e
3. 再来看窗口:
我们可以看到数据窗口包括三个部分,一是 PROGRAM MEMORY,二是 DATA MEMORY,三是 OPTIONBYTE。其中的 DATA MEMORY 就是 EEPROM 区域。我们知道 STM32L152RBT6 总共有 4KB 的 EEPROM,地址从 0x08080000 到 0x08080FFF。 4. 我们往 DATA MEMORY 填入我们打算预置的数据,由于我们这里只是测试,于是分别在0x08080000~0x0808000F 和 0x08080FF0~0x08080FFF 填入一些数据,以供测试。如图:0 J7 a! P( e, V2 l: T/ n$ [
5. 然后选择菜单“File→Save As”,将其保存为.hex 文件,比如 EEPROM.hex,这样完成预置数据的Hex 文件。 6. 为了确认文件可用,我们先将 STVP 关闭。 7. 我们再打开 STVP,确认配置没有问题后,在数据窗口区选择 DATA MEMORY,然后选择菜单“File→Open”打开刚才保存的 EEPROM.hex,可以看到我们预置的数据显示在了 DATA MEMORY 窗口数据区。 8. 这个时候,我们选择“Program→Current tab”或者选择工具栏上的“Program current tab oractive sectors”按钮进行编程下载:$ \* w1 t& c' Y- I, n 1 b/ K$ m) N% E- C
9. 编程完成后,我们可以在下方的信息输出区看到如此信息:5 k3 i- X+ H+ W0 ^& W7 W2 b* Y % c3 ^ Z- i b& s0 S( m* t
看到此信息,说明了 EEPROM 的数据已经烧写成功了。2 u7 K8 X: a( K9 d3 B 10. 不放心,决定关掉 STVP,再重新打开,在数据窗口区选择 DATA MEMORY,选择“Read→Current tab”,读取完成后,我们可以看到从芯片中读回的数据,确实没错。 结论:3 t3 x% E* R& L$ }8 f6 p8 a STVP 软件工具可以用来实现对 STM32L1 系列的 EEPROM 的数据进行预置。 处理: 当客户的工程师进行研发的时候,可以使用步骤 1~5 来实现对预置的数据生成.hex 文件,并交予负责烧录的人员。负责烧录的人员在进行烧录的时候,只需要按照步骤 7~9 就可以实现对 EEPROM 进行数据预置了。+ x4 @- Z. h: v" L5 B7 R/ N $ u1 H& m( u( X, l& T8 G 建议:& k i$ E( k1 \% c/ ~8 n! W+ W$ k ' f: i- L; a1 c4 b# i9 l# P 在制作过程中,在进行数据的操作时,要特别注意选择 DATA MEMORY,不要搞错。另外,当需要对PROGRAM MEMORY 和 DATA MEMORY 同时进行烧写的时候,可以先制作 EEPROM 数据的.hex 文件,然后在DATA MEMORY 区打开此 EEPROM 数据.hex 文件,然后再在 PROGRAM MEMORY 区再打开用户程序代码.hex文件,在 OPTION BYTE 区设置好 Option Byte,使用“Program→All tabs”对芯片进行烧录。$ M: L8 T; }: w6 E0 l# G( u, J 6 [& O- C% V6 y8 Q |
微信公众号
手机版