| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> stm32f的一些问题 -> 正文阅读 |
|
[嵌入式]stm32f的一些问题 |
1、stm32cubemx如何修改芯片型号 cd? /cygdrive/d vim stm32f103_xx.ioc % s/STM32F103VETx/STM32F103ZET6/gc 然后重新双击:stm32f103_xx.ioc 2、stm32CubeMX-->点击:GENERATE CODE-->出现错误:but mdk-arm V5project generation have a problem 解决:(1)卸载原来的stm32CubeMX (2)卸载jdk (3)打开:STM32CubeMX - STM32Cube initialization code generator - STMicroelectronics 选择5.6.0版本,就是:en.stm32cubemx_v5-6-0.zip (4)解压en.stm32cubemx_v5-6-0.zip,然后安装 (5)双击STM32CubeMX,提示安装jre1.8.0_341,并打开网页。 ? ? 新的STM32CubeMX版本会自动安装jdk。 (6)下载jre-8u341-windows-x64.exe,安装,然后设置环境变量(网上搜环境变量方法) (7)关掉STM32CubeMX,然后重新打开。 3、出现这样的错误:../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h(30): error: ?#5: cannot open source input file "stm32f1xx.h": No such file or directory 解决:方法一:设置按钮-->C/C++-->点击添加图标-->点击...-->选择Drivers\CMSIS\Device\ST\STM32F1xx\Include-->点击“选择文件夹”-->点击“OK” 方法二:打开stm32f103_xx.ioc,重新生成代码。 4、.\AppStm32f103.axf: Error: L6218E: Undefined symbol SNetInterface_InitPara (referred from netinterface.o).最怕就是遇到这种错误。如果是其他错误,那么双击错误,就能打开错误的地方。双击这种错误,什么都没有,而且在keil里面搜不到。 解决:(1)如果是函数,那么删除掉出除startup_stm32f103xe.s,xx.uvoptx,xx.uvprojx外的所有文件,然后重新打开xx.uvprojx,重新编译,那么就会出现不见的函数在哪里。 (2)如果是extern修饰的全部变量,那么只能打开文件一个一个找了。没有其他办法。 5、想把几个函数变成bin文件,而不是库文件,怎么办呢? 解决:研究了很久,没有找到办法,但是想到类似的办法。不知道有没有更好的办法。 方法一: [1]打开MDK-ARM\AppStm32f103\AppStm32f103.map文件,找到这几行: Memory Map of the image ? Image Entry point : 0x08000131 ? Load Region LR_IROM1 (Base: 0x08000000, Size: 0x0000cf5c, Max: 0x0001a800, ABSOLUTE, COMPRESSED[0x0000cc88]) ? ? Execution Region ER_IROM1 (Base: 0x08000000, Size: 0x0000cbf8, Max: 0x0001a800, ABSOLUTE) ? ? Base Addr ? ?Size ? ? ? ? Type ? Attr ? ? ?Idx ? ?E Section Name ? ? ? ?Object ? ? 0x08000000 ? 0x00000130 ? Data ? RO ? ? ? ? 3190 ? ?RESET ? ? ? ? ? ? ? startup_stm32f103xe.o 这里可以回答这个问题:如何知道某个函数的地址和占用空间。上面就是解决办法。 [2]先看下面方法 ******************************************************** attribute 属性 2,将数组加载到指定位置 3,将变量加载到指定位置 ******************************************************** 设置这几个函数的地址,函数地址的差刚好等于函数的大小; [3]编译工程,然后使用j-link或st-link读取这个范围的代码,生成一个文件,这个文件就相当于库了。(网上搜用j-link或st-link读写代码的方法,下同) 方法二: [1]把几个函数都放在一个文件里面; [2]先看下面方法 ******************************************************************* 修改.sct 文件,将目标文件加载到指定位置,在 Keil 中使用修改.sct 文件进行分散加载需要对工程配置进行如下修改,修改.sct 方法的详细使用请参考.sct 的语法规则。 (1)-->打开keil-->点击第3行第7个按钮-->打开Options for Target 'AppStm32f103'对话框-->点击Linker-->(取消)Use Memory Layout from Target Dialog-->马上在Scatter File里面出现:.\AppStm32f103\AppStm32f103.sct (2)点击 Scatter File 栏后的 Edit对.sct 文件进行编辑。点不动的话,直接用记事本打开AppStm32f103.sct,然后编辑。 ; ************************************************************* LR_IROM1 0x08000000 0x00020000 { ; load region size_region LR_IROM2 0x08020000 0x00020000 { ; load region size_region ******************************************************************* [3]编译工程,然后使用j-link或st-link读取这个范围的代码,生成一个文件,这个文件就相当于库了。 6、一个工程里面有几个文件夹,如果想把其中几个文件夹编译成库,然后把这个库放在其他工程里面,编译成可执行文件,怎么办? STM32/keil把多个c文件编译为静态库lib_暴躁的野生猿的博客-CSDN博客_c文件怎么编译成lib文件 这篇文字已经很详细了,我就不说了。 |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/28 2:34:53- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |