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.

[参考译文] 编译器/EVMK2H:HEAPSIZE 未定义

Guru**** 2609285 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/584626/compiler-evmk2h-heapsize-not-defined

器件型号:EVMK2H

工具/软件:TI C/C++编译器

您好!

我最近购买了 EVMK2H 平台。 我正在尝试使用 GCC Linaro 编译器在 EVMk2H 板的 ARM 内核上构建一个简单的 hello 世界

CCS 版本= v7.1

安装的处理器 SDK = PROCESSOR-SDK-RTOS-K2HK 03_02_00_05

我按照以下链接在 EVMK2H 的 ARM 内核上构建 hello world 示例:

processors.wiki.ti.com/.../Processor_SDK_Bare_Metal_Examples  

当我尝试构建项目时、我收到以下错误:

****为项目 stest8构建配置调试****

/home/user/ti/ccs7.1/ccsv7/utils/bin/gmake -k -j 4 all -O
编译文件:./main.c
调用:GNU 编译器
"/home/user/ti/ccs7.1/ccsv7/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/bin/arm-none-eabi-gcc -c -mcpu=cortex-a15 -mtun=cortex-a15 -marm -mfloat-abi=hard -i"/home/user/workspace_v7/stest8 -i"/home/user/ti/ccs7.1/ccsv7/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/arm-none-eabi/include -g -gdwarf-3 -gstrict-dwarf -Wall -speces="nosy.specs"-MMD -mf"main.d"-mf"-mf"-mf"-m"-mf"-m"-mf"-m"-mf"-gdc.d"-main.o -main.o" 。
完工建筑:./main.c
 
构建目标:stest8.out
调用:GNU 连接器
"/home/user/ti/ccs7.1/ccsv7/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/bin/arm-none-eabi-gcc -mtune =cortex-a15 -marm -g -gdwarf-3 -gstrict-dwarf -Wall -speces="nosys.specs"-mfloat-abi=hard -wl、-map、"ststst8.map"-o"ststst8.out""./main.o"-wl66xx"。  
Makefile:138:目标'test8.out'的配方失败
./66AK2Gxx.lds:158:表达式中引用的未定义符号`HEAPSIZE '
collect2:错误:LD 返回1退出状态
gmake[1]:***[stest8.out]错误1.
gmake:***[全部]错误2.
Makefile:134:目标'all'的配方失败

****构建完成****

 

有人能帮我解决这个问题吗? 问题似乎是66AK2Gxx.lds 文件。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Shahid、

    请注意、处理器 SDK RTOS 尚不支持 CCSv7。 请参阅发行说明、了解您的 SDK 版本的兼容版本。

    这些说明是使用 CCSv6创建的、因此可能需要一些更新。 我已将这些说明添加到 Wiki 中、请查看 Cortex A15部分第6步下 Keystone 器件用户的注意事项。

    此致、
    Rahul
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Rahul、

    感谢您的回答。

    好的、现在我使用的是 CCSv6、而不是 CCSv7。 我正在尝试在 CCSv6上使用 GCC Linaro 编译器构建 Hello World 示例。

    实际上、我已经尝试在66AK2Gxx.lds 文件中添加这些行。  

    STACKSIZE = 0x0001000;

    HEAPSIZE = 0x00000400;

    现在、我的代码似乎已经正确编译、但当我转到 Debug 时、ARM_A15_0内核始终运行、并且它不会在控制台上打印 Hello World。

    看起来它无法找到入口点(main)、并且始终处于运行状态。 请检查下面的构建日志(我用红色突出显示了警告)


     

     

    构建日志:-

    ****为项目 stest_gcc_arm_genericarma15构建配置调试****

    /home/shahid/ti/ccsv6/utils/bin/gmake -k all

    编译文件:./main.c

    调用:GNU 编译器

    "/home/shahid/ti/ccsv6/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/bin/arm-none-eabi-gcc -c -i"/home/shahid/ti/ccsv6/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/arm-none-eabi/include -g -gdwarf-3 -gstrict-dwarf -Wall -speces="nosys.specs"-MMD -MP -mf"main.d"-mt"main.o"-o"main.o" "./main.c"

    完工建筑:./main.c

    构建目标:stest_gcc_arm_genericarma15.out

    调用:GNU 连接器

    "/home/shahid/ti/ccsv6/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/bin/arm-none-eabi-gcc -g -gdwarf-3 -gstrict-dwarf -Wall -speces="nosy.specs"-wl、-Map、"stest_gcc_arm_genericarmament15.map"-o"stest_gcc_arm_genericarmament15.out""./main.o"-t" gwl66xx/lwlwl.lds.html。  

    /home/shahid/ti/ccsv6/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/bin/ld:警告:找不到条目符号条目;默认为0c000000

    完成的构建目标:stest_gcc_arm_genericarmament15.out

    ****构建完成****

    我应该定义什么条目来引导它从主地址开始?

     

    此致、

    Shahid

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Shahid、

    请参阅 Wiki 上的第5步。 您需要将文件 STARTUP_ARMCA15.S 添加到您的项目中。 此文件设置 ARM 中断向量并设置入口点。 我的理解是 GNU GCC 编译器不是 TI 编译器、因此要完成 ARM 中断矢量的初始化并设置将此汇编文件添加到裸机工程所需的入口点。

    另一个需要注意的问题是、使用 GNU GCC 编译器的 ARM 上的标准 printf 需要将半主机库(libridmon)链接到您的项目、以便确保链接器设置具有此库。

    希望这能帮助您解决这个问题。

    此致、
    Rahul