㈠ Keil 编译一直错误error C129: missing ';' before 'char'
原因:因为缺少';。解决步骤如下:
1.第一步是打开devc++5.11,然后进入以下界面。
㈡ 用keil5 STM32F107系列芯片编译一个指令时提示错误为 A1105E: Area directive missing 怎么解决
STM32调试过程中常见的问题及解决方法 一、 在“Debug选项卡”下设置好仿真器的类型后,下载程序时却提示“No ULINK Device found.”
解决办法: Keil MDK默认使用ULINK仿真器下载程序,在“Project --->Option for Target 'xxx' --->Utilities选项卡”下把编程所使用的仿真器改为相应的类型即可。
二、 编译工程时提示如下信息:
main.axf: Error: L6218E: Undefined symbol __BASEPRICONFIG (referred from stm32f10x_nvic.o).
main.axf: Error: L6218E: Undefined symbol __GetBASEPRI (referred from stm32f10x_nvic.o).
main.axf: Error: L6218E: Undefined symbol __RESETFAULTMASK (referred from stm32f10x_nvic.o).
main.axf: Error: L6218E: Undefined symbol __RESETPRIMASK (referred from stm32f10x_nvic.o).
main.axf: Error: L6218E: Undefined symbol __SETFAULTMASK (referred from stm32f10x_nvic.o).
main.axf: Error: L6218E: Undefined symbol __SETPRIMASK (referred from stm32f10x_nvic.o).
解决办法:工程缺少“cortexm3_macro.s”文件,把cortexm3_macro.s和STM3210x.s全部添加到工程即可。
三、调试器不能连接到STM32的问题与解决办法
很多人都碰到过调试器不能连接到STM32的问题,不管是IAR的J-Link还是Keil的ULink,或者是ST的ST-Link。出现这个问题时,调试软件会提示不能建立与Cortex-M3的连接,或提示不能下载程序,或提示找不到要调试的设备等。
这样的问题都是发生在调试那些可以在CPU不干预的时候自动运行的模块、或在调试低功耗模式的程序的时候。所谓“可以在CPU不干预的时候自动运行的模块”包括:DMA、定时器、连续转换模式下的ADC、看门狗等模块。
--------------------------------------------------------------------------------
这个问题的根源是:
1. 调试器需要在RAM内执行一段程序,对Flash进行擦写操作,如果不停止这些自动运行的模块,它们会干扰程序在RAM中的执行,致使下载失败。比如DMA模块被配置为不停地拷贝一段数据区,而调试器刚好需要使用DMA数据传输的目标区域,这时DMA的操作将会与调试器的操作发生冲突。再比如,如果启动了看门狗而没有执行硬件复位,则在下次调试器需要下载程序时,看门狗超时将触发芯片复位,导致下载操作失败。
2. 低功耗是通过停止CPU的时钟而实现,JTAG调试是通过与CPU的通信实现,停止了CPU的时钟致使调试器会失去与CPU的通信。
㈢ win8 安装MDK5 编译时出错,求解答
这是因为5.14里需要自己加入CMSIS库,core_cm3.h位于CMSIS库中
菜单“Project -> Manage -> Run-time Environment”,展开CMSIS -> CORE,选中右边的复选框,点击OK,回到工程里rebuild就可以了
㈣ MDK5编译报错
使用C:\Keil\ARM\Startup\ST\STM32F10x.s这个启动代码
㈤ 问一个keil5的编译错误的问题
提示指出了4个未定义的符号,在文件中无法识别到。
例如 stm32f4xx_it 中用到了 EXTI_ClearITPendingBit,但是从 stm32f4xx_it 这个模块的角度而言,它查不到你在哪里定义了这个符号,无法判断这个符号究竟是什么,也就无法进行连接。
一般而言都是包含关系有错误,或工程的搜寻路径配置有问题。
㈥ mdk5 汇编和C语言编程的时候出现了错误 A1207E: Bad or unknown attribute error: A1106E: Missing comma
有一个函数是隐含定义的,没有明确定义。
根据提示的函数名,查一查是什么函数。有可能是引用函数名称错误,或者某个库文件没有包含进来。
㈦ keil编译时报错:error: L6002U: Could not open file .\***\core_cm3.o
历时好几次的碰壁,我终于解决这个问题了。
根据网络其他答案给的思路,其实就是修改环境变量,因为当前系统TEMP和TMP环境变量存在着中文。但是如果你直接修改 %USERPROFILE% 为其他英文路径开Keil会卡死并闪退(其实是你打开main.c就闪退)!!!
因为修改成别的一个英文文件夹是不行的,你只是在环境变量中修改了文件路径,但是电脑中这些路径并不存在,所以你打开Keil才会闪退。
那么解决问题的关键就是:先在系统C盘中创建好了所有的英文路径,再你创建的文件夹路径修改环境变量!!!
准备工作:先将你的Keil软件关闭
1、在【C盘根目录】创建【UserData】文件夹
点击确定后退出。
再次打开Keil编译即可不再报错,再次愉快写代码吧。
祝愿诸位万事如意。
㈧ keil c51编译错误什么原因,求解
可能是因为你软件没安装好,比如重装系统之后可能会出现这个问题。
另外,估计你是用的KEIL V4版的,你安装个KEIL V2 或V3版,然后用V2 或V3 打开工程,就可以顺利编译工程,并生成HEX文件了。
㈨ keil5,编译出现错误,提示是段太大,怎么办
keil5,编译出现错误,提示是段太大,怎么办?如果是51单片机的话,因为RAM资源很小,所以要尽量节约每一个字节RAM,如果是常量数组就定义成常量,例如 code char datastr[2]={1,2};
如果有外部RAM,则定义到XRAM中,例如:xdata char datastr[2];
能用BIT就不要用char,能用char 就不要用Int。做单片机的话, 还是必须要了解一下其存储结构, 最起码得知道data idata xdata所指的存储区域
idata 指向的片内ram ,大小范围为256字节,所以你一个数组定义在idata段内,不能超过256字节,超过就会报错。
xdata指向的片外ram,大小范围为64KB,你可以将你需要的大容量数组定义在该段内