SparkFun Forums 

Where electronics enthusiasts find answers.

Everything ARM and LPC
By naveed_33
#144122
Hi, i have written a very simple code for my controller (i am a newbie to stm32 controller programming) and the code gives following errors
123.axf: Error: L6218E: Undefined symbol assert_param (referred from misc.o).
i have included the files misc.c in the std peripherals library too.
and i have absolutely no idea how to remove them and make my code work kindly help. i will share my code here too

///////
#include "stm32f2xx.h"
#include "stm32f2xx_gpio.h"
#include "stm32f2xx_spi.h"
#include "misc.h"
#include "stm32f2xx_rcc.h"

int main()
{
int x;
while (1)
{

}
}
By naveed_33
#144135
and there is one more warning stating the following:
\STM32F2xx_StdPeriph_Driver\src\misc.c(220): warning: #223-D: function "assert_param" declared implicitly
and it comes many times in every library file how can i remove it
By fll-freak
#144137
assert_param is an object (variable, function, ...) that is not being resolved during link. Other routines are expecting it to be available, but the linker can't find it. The most likely reason is that you are not compiling the code that defines it. I would suggest grep-ing the source code tree looking for this assert_param. You should find many references/calls to it, but only one place should it be defined. Once you find the definition, you need to make sure you compile and link that in as well.

The other possibility is that you have a "linker loop". Module A needs something in Module B that needs something back in Module A. Sometimes a compiler just can't resolve this issues and you need to fix the problem yourself. I hope this is not the case as they are often difficult to resolve.
By UhClem
#144143
This problem has turned up here before (search using "assert_param" to find that discussion).


There is no function assert_param(). It is a macro in stm32f2xx.h that should result in a call to either assert_failed() if you are using this feature ("#define USE_FULL_ASSERT") or void() if you are not.

Your code is fine but the compilation of the standard peripheral library code (stm32f2xx_gpio.c, etc.) is not. As I recall you need to define the symbol USE_STDPERIPH_DRIVER and there is an option block in the file st32f2xx.h to do just that.
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]