Tag: jtag

用C语言写入STM32L4x1闪存

我试图在Windows 7上使用JTAG ST-Link / V2在STM32L476的闪存中写入。不需要上传软件,我只需要在非易失性地方写入数据,可以读取和删除它。 作为一个关于硬件的新手,只有在编写非嵌入式常规C时才有效,恐怕我可能会伤害或修改不可逆转的闪存。 此外,我不确定我能做什么或不能做什么。 我已经想到阅读手册 ,写入0x08000000内存位置似乎是一个好主意。 使用C代码调用ST-Link_Utility : const char CMD_ACCESS_ST_UTILITY[] = “cd C:/Program Files (x86)/STMicroelectronics/STM32 ST-LINK Utility/ST-LINK Utility&&ST-LINK_CLI.exe “; bool STLINKWriteSystemCalls(void) { char cmd[200] = “”; strcpy(cmd, CMD_ACCESS_ST_UTILITY); // cmd to access utility strcat(cmd, “-c”); // Then connect with ST-Link if (system(cmd) != 0) return false; // If failed exit strcpy(cmd, […]

在C中与STM32芯片的内存交互

我想与STM32芯片的内存 STM32L476 进行交互 ,首先读取并存储其电子签名 (MCU_ID),然后在其内存中写入数据 。 我正在使用链接到JTAG ST-LINK的STM32QFP64插槽。 我在C方面做得很好但是真的开始嵌入式编程所以我选择了Atollic Studio IDE,因为它看起来非常完整并且基于Eclipse,我之前已经使用过。 我的问题是我找不到某种文档列出函数,变量等我可以用来与芯片进行交互。 我搜索了ST网站上提供的几乎所有PDF文件,阅读ST的GitHub,但由于我是初学者,我可能错过了这些信息,因为我不知道我在搜索什么样的内容。 下面的代码是不完整的 , 完全是想象的 ,但它可以帮助理解我想要做的事情,我想象的是这样: #define MEMORY_ADRESS_MCU_ID FFFFF // A memory adress ( I should be able to find it in STM32L476 documentation) #define MEMORY_ADRESS_TO_WRITE FFFF // Same unsigned extractMCUID() { return READ_IN_MEMORY(MEMORY_ADRESS_MCU_ID); // Returns the ID stored in a particular memory adress […]