This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

IAR EW8051 9.3 Fails to Compile the SimpleBLEPeripheral Reference Project

Other Parts Discussed in Thread: CC2540

Hi.

I have spent a fair amount of time trying to port over my code from v1.3 to v1.4 of the BLE Stack. I thought I'd be clever and updated my IAR compiler too, from 8.20 to 9.3 (Coincidently, you can't just upgrade from 8.2x to 9.x, even if you attempt to install to a new directory [which is all the advice IAR gives you to 'support' you during this process]. In fact I have submitted a request for support 48 hours a go and they are still 'thinking' about it... I later figured out that if I install 9.0 base version, I can then download 9.3 and update the god damn think. But clearly you can not uypdate from 8.xx directly to 9.3 (So that's how I lost half a day). Today I sent a snotty email to IAR telling them that I wish they were not in this partnership with TI as the monopolising partner of the BLE products...

So my wish to update the BLE stack to v1.4 has so far been a nightmare..... Once I got around the compiler update issue, and changed various parts of my IAR Project to reflect the migration path (according to well documented references found here), I have experienced several code-not-compiling errors. As I worked through these, more and more errors surfaced including IAR EW8051 not recognising what a UINT32 is or a UINT8 anymore, even though these are used in almost every source code in the sample projects... Of course I could go and define these again but, that's not the point. Clearly something is wrong and these arrors are mere indications of this.

After several attempts in various configurations, I decided to ditch my own project and start over from scratch, I set up a new Workspace in IAR and added the sample SimpleBLEPeripheral project that came with the installation of TI's v1.4 Stack.  I went to compile it and boom, the compiler is complaining about Segment ISTACK xxxxxxx is too long for segment definition. 

I am running out of ideas and am going to be really rude to someone but I don't know who? I remember having some similar and serious problems at the beginning of the development of this project running the even more inferior version of IAR's compiler with the 1.2 version of the stack over a year ago.. I have tried to avoid updating the Stack and my compiler because I had a fairly stable development environment but I had to update because there has been significant updates to both the Stack and Compiler since then.

Below is what I'm getting when I try to compile the sample v.1.4 SimpleBLEPeripheral project..... DIssappointing to see that it doesn't work out of the box and it needs to be massaged before it does :(


Any tips or suggestions would be appreciated.

Thank you.

Building configuration: TEST_SBLEP - CC2540
Updating build tree...

33 file(s) deleted.
Updating build tree...
devinfoservice.c
gap.c
gapbondmgr.c
gatt_uuid.c
hal_adc.c
hal_aes.c
hal_crc.c
hal_dma.c
hal_drivers.c
hal_flash.c
hal_key.c
hal_lcd.c
hal_led.c
hal_sleep.c
hal_startup.c
hal_timer.c
hal_uart.c
npi.c
OnBoard.c
OSAL.c
osal_bufmgr.c
osal_cbtimer.c
OSAL_ClockBLE.c
OSAL_Memory.c
OSAL_PwrMgr.c
OSAL_SimpleBLEPeripheral.c
osal_snv.c
OSAL_Timers.c
peripheral.c
simpleBLEPeripheral.c
SimpleBLEPeripheral_Main.c
simpleGATTprofile.c
Linking
Error[e16]: Segment ISTACK (size: 0xc0 align: 0) is too long for segment definition. At least 0xe more bytes needed. The problem occurred while processing the segment placement command
"-Z(IDATA)ISTACK+_IDATA_STACK_SIZE#08-_IDATA_END", where at the moment of placement the available memory ranges were "IDATA:4e-ff"
Reserved ranges relevant to this placement:
IDATA:8-1f VREG
IDATA:21-40 VREG
IDATA:41-42 XSP
IDATA:43-43 DATA_I
IDATA:44-4b DATA_Z
IDATA:4c-4d IDATA_Z
IDATA:4e-ff ISTACK
BIT:0-7 BREG
BIT:80-97 SFR_AN
BIT:a0-af SFR_AN
BIT:b8-c7 SFR_AN
BIT:e8-ef SFR_AN
BIT:f8-ff SFR_AN
Error while running Linker

Build aborted.