how to compile the "device_program" in ATK R1.60 ?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

how to compile the "device_program" in ATK R1.60 ?

668 Views
fstrati
Contributor I

Question: how to compile the "device_program" in ATK R1.60 ?

Context: "i.MX Platform Advanced Tool Kit (ATK) Standard R1.60"

I'm working with a legacy product based on a i.MX27 board.

As I understand the ram kernel mx27_nand.bin

may be obtained from this ATK R1.60.

As the old gnu toolchain is not available anymore

(ref. doc. "ATK Reference Guide Standard Version.pdf")

I'm working with a recent toolchain for gnu arm.

I modified accordingly the file "rules.make":

------rules.make----------

CC = arm-none-eabi-gcc

AS = arm-none-eabi-as

LD = arm-none-eabi-ld

NM = arm-none-eabi-nm

OBJDUMP = arm-none-eabi-objdump

OBJCOPY = arm-none-eabi-objcopy

READELF = arm-none-eabi-readelf

RM = rm -f

RN = mv

CP = cp

TOPDIR = $(shell pwd)

BIN  = arm-none-eabi-objcopy

LIBDIR = "/usr/lib/gcc/arm-none-eabi/5.2.1/"

SHELL = /bin/sh

CFLAGS = -Wall -Wstrict-prototypes -Wno-trigraphs  -nostartfiles -O0  -nostdlib \

         -static -feliminate-unused-debug-symbols -fno-strict-aliasing -fno-common \

         -pipe -fno-builtin  -g -mapcs -mlittle-endian \

         -msoft-float -mfpu=vfp

------rules.make----------

where the modifs are for CC & other variables and the option -mfpu=vfp for the floating point unit.

When I try to compile with:

"make MCU=mx27 flashlib FLASH_TYPE=NAND"

I get the following errors:

-------

ram_kernel/ramkernel.o: In function `pop_usb_dqh':

device_program/ram_kernel/src/platform/mx27/channel.c:559: undefined reference to `memcpy'

ram_kernel/ramkernel.o: In function `push_usb_dqh':

device_program/ram_kernel/src/platform/mx27/channel.c:566: undefined reference to `memcpy'

flash/flashlib.o: In function `write_bbt':

device_program/flash/nand_flash/src/nand_bbt.c:553: undefined reference to `memset'

device_program/flash/nand_flash/src/nand_bbt.c:557: undefined reference to `memcpy'

flash/flashlib.o: In function `nand_update_bbt':

device_program/flash/nand_flash/src/nand_bbt.c:728: undefined reference to `malloc'

device_program/flash/nand_flash/src/nand_bbt.c:760: undefined reference to `free'

flash/flashlib.o: In function `nand_scan_bbt':

device_program/flash/nand_flash/src/nand_bbt.c:844: undefined reference to `malloc'

device_program/flash/nand_flash/src/nand_bbt.c:859: undefined reference to `free'

flash/flashlib.o: In function `nand_init':

device_program/flash/nand_flash/src/nand_flash.c:128: undefined reference to `malloc'

device_program/flash/nand_flash/src/nand_flash.c:130: undefined reference to `memset'

flash/flashlib.o: In function `nand_erase_conditional':

device_program/flash/nand_flash/src/nand_flash.c:428: undefined reference to `free'

flash/flashlib.o: In function `nand_write_page':

device_program/flash/nand_flash/src/nfc_base.c:360: undefined reference to `memset'

collect2: error: ld returned 1 exit status

-------

It seems like the ram kernel should link with the std libc, but on the compile flags

we have "-nostartfiles -nostdlib", hence not the std libs asked...

My question is: what am I missing as a library to link to this ram kernel ?

Labels (2)
0 Kudos
2 Replies

513 Views
igorpadykov
NXP Employee
NXP Employee

Hi Federico

one can look at more newer 1.71 ATK version

Programmers (Flash, etc.) (1)

Source Code for the Flash tool used for downloading, programing, dumping

and erasing images in Flash memory to the i.MX EVKs (REV 1.71)

http://www.nxp.com/products/microcontrollers-and-processors/arm-processors/i.mx-applications-process...

regarding gcc errors one can post on gcc forum

HomePage - GCC Wiki

Best regards

igor

-----------------------------------------------------------------------------------------------------------------------

Note: If this post answers your question, please click the Correct Answer button. Thank you!

-----------------------------------------------------------------------------------------------------------------------

0 Kudos

513 Views
fstrati
Contributor I

The solution is to use the linker settings for the nano newlib with:

-specs=nano.specs -specs=nosys.specs

specified in the linker settings in Makefile to use the nano library with the no-sys option.

0 Kudos