Unable to compile FreeRTOSV9.0.0rc1 with IAR 2.20

dbabula wrote on Friday, March 04, 2016:

Hello,

I’ve tried to compile and link demo project for RL78 micro called RL78_RL78G13_Promo_Board_IAR.
However new version of IAR cannot compile it. Following errors pops up in file portasm.s87 at lines from 101 to line 107, here is code snippet:

	COMMON INTVEC:CODE:ROOT(1)
	ORG configTICK_VECTOR
	DW vPortTickISR

	COMMON INTVEC:CODE:ROOT(1)
	ORG 126
	DW vPortYield

and here are error messages:

Error[As078]: Directive COMMON not supported in ELF mode. C:\Users\john\Desktop\freertos-master\FreeRTOS\Source\portable\IAR\RL78\portasm.s87 101
Error[As078]: Directive ORG not supported in ELF mode. C:\Users\john\Desktop\freertos-master\FreeRTOS\Source\portable\IAR\RL78\portasm.s87 102
Error[As078]: Directive COMMON not supported in ELF mode. C:\Users\john\Desktop\freertos-master\FreeRTOS\Source\portable\IAR\RL78\portasm.s87 105
Error[As078]: Directive ORG not supported in ELF mode. C:\Users\john\Desktop\freertos-master\FreeRTOS\Source\portable\IAR\RL78\portasm.s87 106

Could you please advise what shall be done in order to compile and link this project. I’ve tried with older version of IAR and it compiled well.

Version of FreeRTOS is FreeRTOSV9.0.0rc1, downloaded from sourceforge, unfortunatelly I cannot find revision number.

rtel wrote on Friday, March 04, 2016:

From your post it sounds like the latest compiler version is not compatible with previous compiler versions. Please see if IAR provide an upgrade guide and report back what you find.

dbabula wrote on Friday, March 04, 2016:

I couldn’t find any specific upgrade tutorial, I’ve noticed however that documents EWRL78_AssemblerReference.ENU.pdf differ with each other in regard to chapters which are called :

Segment control directives ( old compiler version)

and

Section control directives ( new compiler version )

On renesas forum I found also some post from a guy with similar problems.

http://renesasrulz.com/renesas_forum_home/rl78/f/26/t/6145.aspx

Should I consult with IAR guys regarding to those problems. I’d really try to do this on my own but I’m not familiar with IAR compiler and stuff. Thank you for response by the way.

dbabula wrote on Friday, March 04, 2016:

Wait, maybe I found some documents, which are telling about migration, it’s called:

EW_MigrationFromUBROF.pdf

I’m just starting to read it.

rtel wrote on Friday, March 04, 2016:

Sounds promising. Please report back any findings or solutions.

Regards.

nisapov wrote on Friday, July 15, 2016:

I found a workaroung using absolute sections:

ASEGN `.intvec`:CODE:ROOT,configTICK_VECTOR
DATA16
DC16    _vPortTickISR

ASEGN `.intvec`:CODE:ROOT,126
DATA16
DC16    _vPortYield

focusfeel wrote on Friday, April 07, 2017:

I have changed my code as Nayden Isapov said, but I got these errors, how can I resolve them?

Error[Li005]: no definition for “usCriticalNesting” [referenced from E:\WorkZone\WorkProjects\RL78Projs\BaseLine\BaseProject\Proj\Debug\Obj\portasm.o]
Error[Li005]: no definition for “pxCurrentTCB” [referenced from E:\WorkZone\WorkProjects\RL78Projs\BaseLine\BaseProject\Proj\Debug\Obj\portasm.o]
Error[Li005]: no definition for “xTaskIncrementTick” [referenced from E:\WorkZone\WorkProjects\RL78Projs\BaseLine\BaseProject\Proj\Debug\Obj\portasm.o]
Error[Li005]: no definition for “vTaskSwitchContext” [referenced from E:\WorkZone\WorkProjects\RL78Projs\BaseLine\BaseProject\Proj\Debug\Obj\portasm.o]