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.

[参考译文] TMS320F28386S-Q1:C2000微控制器论坛

Guru**** 2124260 points
Other Parts Discussed in Thread: C2000WARE, TMDSCNCD28388D, TMDSHSECDOCK
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1250897/tms320f28386s-q1-c2000-microcontrollers-forum

器件型号:TMDSCNCD28388D
主题中讨论的其他器件:C2000WARE、、 TMDSHSECDOCK

e2e.ti.com/.../5315.missing_5F00_headers.zip

项目 ZIP:

e2e.ti.com/.../adc_5F00_ex4_5F00_soc_5F00_software_5F00_sync.zip

我已经使用 C2000Ware 中各种示例的内容为 CPU1和 CM 构建了一组程序、以便它们在  TMDSCNCD28388D 上与 IPC 进行通信。

我们将 TMDSCNCD28388D 与 TI 提供的 C2000Ware_4_03_00_00 API 配合使用的 TMDSHSECDOCK。 简而言之、这是 TMDSCNCD28388D TI  开发板上发生的问题、但为了背景信息、我想说我们打算在不久的将来将该软件移植到定制板上的 F28386S (这就是为什么 F28386S 器件型号与这篇帖子相关联的原因)。  

此时、我的 C28x CPU1程序在我加载该程序时会生成以下消息:

"C28xx_CPU1:加载器:程序的一个或多个段放入了一个不可写的存储器区域。 这些区域实际上不会写入目标。 请检查您的链接器配置和/或存储器映射。"

我发现、如果我 注释掉引用我的数据结构"allChannelsReport[]"(用"#pragma DATA_SECTION"映射到"MSGRAM_CPU_TO_CM"段)的语句、 数组会从映射中掉出、程序会加载到 CPU1、而不发出错误消息。

现在我有两个构建-一个生成错误、一个生成错误、而另一个生成错误(将赋值排除在我的数组之外、然后从映射中删除)。

我研究了链接器.cmd 文件、并比较了两个.map 文件、但我的经验不足、无法找到这个问题。

我没有链接器错误。 我已将控制台输出粘贴到下面每个构建的链接器部分和"加载"部分。

我已经从这两个构建项目中粘贴了.map 文件和链接器命令文件到这篇文章的底部。  如果需要、我还可以提供源代码。

是什么导致生成此消息、我该如何纠正这种情况?

无加载时间段的编译的链接器输出错误消息:

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Building target: "adc_ex4_soc_software_sync.out"
Invoking: C2000 Linker
"C:/ti/ccs1210/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/bin/cl2000" -v28 -ml -mt --cla_support=cla2 --float_support=fpu64 --idiv_support=idiv0 --tmu_support=tmu0 --vcu_support=vcrc -Ooff --define=RAM --define=DEBUG --define=CPU1 --diag_suppress=10063 --diag_warning=225 --diag_wrap=off --display_error_number --gen_func_subsections=on --abi=eabi -z -m"adc_ex4_soc_software_sync.map" --heap_size=0x200 --stack_size=0x3F8 --warn_sections -i"C:/ti/ccs1210/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/lib" -i"C:/ti/c2000/C2000Ware_4_03_00_00" -i"C:/Users/JThomas/HWS_Integration1/adc_ex4_soc_software_sync/CPU1_RAM/syscfg" -i"C:/ti/ccs1210/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include" --reread_libs --diag_wrap=off --display_error_number --xml_link_info="adc_ex4_soc_software_sync_linkInfo.xml" --entry_point=code_start --rom_model -o "adc_ex4_soc_software_sync.out" "./adc_ex4_soc_software_sync.obj" "./syscfg/board.obj" "./syscfg/c2000ware_libraries.obj" "./hwas_adc_conversions.obj" "./device/device.obj" "./device/f2838x_codestartbranch.obj" "../2838x_RAM_lnk_cpu1.cmd" "C:/ti/c2000/C2000Ware_4_03_00_00/driverlib/f2838x/driverlib/ccs/Debug/driverlib.lib" -lc2000ware_libraries.cmd.genlibs -llibc.a
<Linking>
Finished building target: "adc_ex4_soc_software_sync.out"
if 0 == 1 mkdir "C:/Users/JThomas/HWS_Integration1/adc_ex4_soc_software_sync/CPU1_RAM/simulation"
if 0 == 1 C:/TDM-GCC-64/bin/g++ -c -DCLB_SIM -IC:/ti/c2000/C2000Ware_4_03_00_00/utilities/clb_tool/clb_syscfg/systemc-2.3.3/src -IC:/ti/c2000/C2000Ware_4_03_00_00/utilities/clb_tool/clb_syscfg/systemc/include/type3 -IC:/Users/JThomas/HWS_Integration1/adc_ex4_soc_software_sync -IC:/TDM-GCC-64/bin/include -Og -g -gdwarf-3 -gstrict-dwarf -Wall -MMD -MP -MFC:/Users/JThomas/HWS_Integration1/adc_ex4_soc_software_sync/CPU1_RAM/simulation/clb_sim.d -MTC:/Users/JThomas/HWS_Integration1/adc_ex4_soc_software_sync/CPU1_RAM/simulation/clb_sim.o -IC:/Users/JThomas/HWS_Integration1/adc_ex4_soc_software_sync/CPU1_RAM/syscfg -fno-threadsafe-statics -oC:/Users/JThomas/HWS_Integration1/adc_ex4_soc_software_sync/CPU1_RAM/simulation/clb_sim.o C:/Users/JThomas/HWS_Integration1/adc_ex4_soc_software_sync/CPU1_RAM/syscfg/clb_sim.cpp
if 0 == 1 C:/TDM-GCC-64/bin/g++ -DCLB_SIM -Og -g -gdwarf-3 -gstrict-dwarf -Wall -Wl,-Map,C:/Users/JThomas/HWS_Integration1/adc_ex4_soc_software_sync/CPU1_RAM/simulation/simulation_output.map -LC:/ti/c2000/C2000Ware_4_03_00_00/utilities/clb_tool/clb_syscfg/systemc-2.3.3/build/src -oC:/Users/JThomas/HWS_Integration1/adc_ex4_soc_software_sync/CPU1_RAM/simulation/simulation_output.exe C:/Users/JThomas/HWS_Integration1/adc_ex4_soc_software_sync/CPU1_RAM/simulation/clb_sim.o C:/ti/c2000/C2000Ware_4_03_00_00/utilities/clb_tool/clb_syscfg/systemc/src/type3/CLB_FSM_SC_model.o C:/ti/c2000/C2000Ware_4_03_00_00/utilities/clb_tool/clb_syscfg/systemc/src/type3/CLB_HLC_SC_model.o C:/ti/c2000/C2000Ware_4_03_00_00/utilities/clb_tool/clb_syscfg/systemc/src/type3/CLB_LUT4_SC_model.o C:/ti/c2000/C2000Ware_4_03_00_00/utilities/clb_tool/clb_syscfg/systemc/src/type3/CLB_OutputLUT_SC_model.o C:/ti/c2000/C2000Ware_4_03_00_00/utilities/clb_tool/clb_syscfg/systemc/src/type3/CLB_counter_SC_model.o C:/ti/c2000/C2000Ware_4_03_00_00/utilities/clb_tool/clb_syscfg/systemc/src/type3/CLB_counter_top_SC_model.o C:/ti/c2000/C2000Ware_4_03_00_00/utilities/clb_tool/clb_syscfg/systemc/src/type3/CLB_FSM_top_SC_model.o C:/ti/c2000/C2000Ware_4_03_00_00/utilities/clb_tool/clb_syscfg/systemc/src/type3/CLB_LUT4_top_SC_model.o C:/ti/c2000/C2000Ware_4_03_00_00/utilities/clb_tool/clb_syscfg/systemc/src/type3/CLB_OutputLUT_top_SC_model.o -Wl,--start-group -lsystemc -Wl,--end-group
if 0 == 1 "./simulation/simulation_output.exe"
if 0 == 1 C:/ti/ccs1210/ccs/tools/node/node.exe "C:/ti/c2000/C2000Ware_4_03_00_00/utilities/clb_tool/clb_syscfg/dot_file_libraries/clbDotUtility.js" "C:/ti/c2000/C2000Ware_4_03_00_00/utilities/clb_tool/clb_syscfg/" "C:/Users/JThomas/HWS_Integration1/adc_ex4_soc_software_sync/CPU1_RAM/syscfg" "C:/Users/JThomas/HWS_Integration1/adc_ex4_soc_software_sync/CPU1_RAM/syscfg/clb.dot"
if 0 == 1 mkdir "C:/Users/JThomas/HWS_Integration1/adc_ex4_soc_software_sync/CPU1_RAM/diagrams"
if 0 == 1 C:/ti/ccs1210/ccs/tools/node/node.exe "C:/ti/c2000/C2000Ware_4_03_00_00/driverlib/.meta/generate_diagrams.js" "C:/ti/c2000/C2000Ware_4_03_00_00" "C:/Users/JThomas/HWS_Integration1/adc_ex4_soc_software_sync/CPU1_RAM/diagrams" "C:/Users/JThomas/HWS_Integration1/adc_ex4_soc_software_sync/CPU1_RAM/syscfg"
**** Build Finished ****
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

用于编译的加载时控制台输出 、没有  加载时部分错误消息:

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
C28xx_CPU1: GEL Output:
Memory Map Initialization Complete
C28xx_CPU1: GEL Output:
... DCSM Initialization Start ...
C28xx_CPU1: GEL Output:
... DCSM Initialization Done ...
C28xx_CPU1: GEL Output:
CPU2 is out of reset and configured to wait boot.
(If you connected previously, may have to resume CPU2 to reach wait boot loop.)
C28xx_CPU1: GEL Output:
CM is out of reset and configured to wait boot.
(If you connected previously, may have to resume CM to reach wait boot loop.)
C28xx_CPU1: If erase/program (E/P) operation is being done on one core, the other core should not execute from shared-RAM (SR) as they are used for the E/P code. User code execution from SR could commence after both flash banks are programmed.
C28xx_CPU1: Only CPU1 on-chip Flash Plugin can configure clock for CPU1, CPU2 and CM Flash operations. Plugin automatically configures PLL when CPU1 Flash operations are invoked. However, if users want to do only CPU2 or CM Flash operations without doing a prior CPU1 operation in the current session, they should click on 'Configure Clock' button in CPU1's on-chip Flash Plugin before invoking CPU2 and CM Flash operations. When this button is used, Flash Plugin will configure the clock for CPU1/CPU2 at 190MHz and CM at 95MHz using INTOSC2 as the clock source. Plugin will leave PLL config like this and user application should configure the PLL as required by application.
C28xx_CPU1: GEL Output:
... DCSM Initialization Start ...
C28xx_CPU1: GEL Output:
... DCSM Initialization Done ...
C28xx_CPU1: GEL Output:
CPU2 is out of reset and configured to wait boot.
(If you connected previously, may have to resume CPU2 to reach wait boot loop.)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

包含加载时段错误消息的编译的链接器输出:

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Building target: "adc_ex4_soc_software_sync.out"
Invoking: C2000 Linker
"C:/ti/ccs1210/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/bin/cl2000" -v28 -ml -mt --cla_support=cla2 --float_support=fpu64 --idiv_support=idiv0 --tmu_support=tmu0 --vcu_support=vcrc -Ooff --define=RAM --define=DEBUG --define=CPU1 --diag_suppress=10063 --diag_warning=225 --diag_wrap=off --display_error_number --gen_func_subsections=on --abi=eabi -z -m"adc_ex4_soc_software_sync.map" --heap_size=0x200 --stack_size=0x3F8 --warn_sections -i"C:/ti/ccs1210/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/lib" -i"C:/ti/c2000/C2000Ware_4_03_00_00" -i"C:/Users/JThomas/HWS_Integration1/adc_ex4_soc_software_sync/CPU1_RAM/syscfg" -i"C:/ti/ccs1210/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include" --reread_libs --diag_wrap=off --display_error_number --xml_link_info="adc_ex4_soc_software_sync_linkInfo.xml" --entry_point=code_start --rom_model -o "adc_ex4_soc_software_sync.out" "./adc_ex4_soc_software_sync.obj" "./syscfg/board.obj" "./syscfg/c2000ware_libraries.obj" "./hwas_adc_conversions.obj" "./device/device.obj" "./device/f2838x_codestartbranch.obj" "../2838x_RAM_lnk_cpu1.cmd" "C:/ti/c2000/C2000Ware_4_03_00_00/driverlib/f2838x/driverlib/ccs/Debug/driverlib.lib" -lc2000ware_libraries.cmd.genlibs -llibc.a
<Linking>
Finished building target: "adc_ex4_soc_software_sync.out"
if 0 == 1 mkdir "C:/Users/JThomas/HWS_Integration1/adc_ex4_soc_software_sync/CPU1_RAM/simulation"
if 0 == 1 C:/TDM-GCC-64/bin/g++ -c -DCLB_SIM -IC:/ti/c2000/C2000Ware_4_03_00_00/utilities/clb_tool/clb_syscfg/systemc-2.3.3/src -IC:/ti/c2000/C2000Ware_4_03_00_00/utilities/clb_tool/clb_syscfg/systemc/include/type3 -IC:/Users/JThomas/HWS_Integration1/adc_ex4_soc_software_sync -IC:/TDM-GCC-64/bin/include -Og -g -gdwarf-3 -gstrict-dwarf -Wall -MMD -MP -MFC:/Users/JThomas/HWS_Integration1/adc_ex4_soc_software_sync/CPU1_RAM/simulation/clb_sim.d -MTC:/Users/JThomas/HWS_Integration1/adc_ex4_soc_software_sync/CPU1_RAM/simulation/clb_sim.o -IC:/Users/JThomas/HWS_Integration1/adc_ex4_soc_software_sync/CPU1_RAM/syscfg -fno-threadsafe-statics -oC:/Users/JThomas/HWS_Integration1/adc_ex4_soc_software_sync/CPU1_RAM/simulation/clb_sim.o C:/Users/JThomas/HWS_Integration1/adc_ex4_soc_software_sync/CPU1_RAM/syscfg/clb_sim.cpp
if 0 == 1 C:/TDM-GCC-64/bin/g++ -DCLB_SIM -Og -g -gdwarf-3 -gstrict-dwarf -Wall -Wl,-Map,C:/Users/JThomas/HWS_Integration1/adc_ex4_soc_software_sync/CPU1_RAM/simulation/simulation_output.map -LC:/ti/c2000/C2000Ware_4_03_00_00/utilities/clb_tool/clb_syscfg/systemc-2.3.3/build/src -oC:/Users/JThomas/HWS_Integration1/adc_ex4_soc_software_sync/CPU1_RAM/simulation/simulation_output.exe C:/Users/JThomas/HWS_Integration1/adc_ex4_soc_software_sync/CPU1_RAM/simulation/clb_sim.o C:/ti/c2000/C2000Ware_4_03_00_00/utilities/clb_tool/clb_syscfg/systemc/src/type3/CLB_FSM_SC_model.o C:/ti/c2000/C2000Ware_4_03_00_00/utilities/clb_tool/clb_syscfg/systemc/src/type3/CLB_HLC_SC_model.o C:/ti/c2000/C2000Ware_4_03_00_00/utilities/clb_tool/clb_syscfg/systemc/src/type3/CLB_LUT4_SC_model.o C:/ti/c2000/C2000Ware_4_03_00_00/utilities/clb_tool/clb_syscfg/systemc/src/type3/CLB_OutputLUT_SC_model.o C:/ti/c2000/C2000Ware_4_03_00_00/utilities/clb_tool/clb_syscfg/systemc/src/type3/CLB_counter_SC_model.o C:/ti/c2000/C2000Ware_4_03_00_00/utilities/clb_tool/clb_syscfg/systemc/src/type3/CLB_counter_top_SC_model.o C:/ti/c2000/C2000Ware_4_03_00_00/utilities/clb_tool/clb_syscfg/systemc/src/type3/CLB_FSM_top_SC_model.o C:/ti/c2000/C2000Ware_4_03_00_00/utilities/clb_tool/clb_syscfg/systemc/src/type3/CLB_LUT4_top_SC_model.o C:/ti/c2000/C2000Ware_4_03_00_00/utilities/clb_tool/clb_syscfg/systemc/src/type3/CLB_OutputLUT_top_SC_model.o -Wl,--start-group -lsystemc -Wl,--end-group
if 0 == 1 "./simulation/simulation_output.exe"
if 0 == 1 C:/ti/ccs1210/ccs/tools/node/node.exe "C:/ti/c2000/C2000Ware_4_03_00_00/utilities/clb_tool/clb_syscfg/dot_file_libraries/clbDotUtility.js" "C:/ti/c2000/C2000Ware_4_03_00_00/utilities/clb_tool/clb_syscfg/" "C:/Users/JThomas/HWS_Integration1/adc_ex4_soc_software_sync/CPU1_RAM/syscfg" "C:/Users/JThomas/HWS_Integration1/adc_ex4_soc_software_sync/CPU1_RAM/syscfg/clb.dot"
if 0 == 1 mkdir "C:/Users/JThomas/HWS_Integration1/adc_ex4_soc_software_sync/CPU1_RAM/diagrams"
if 0 == 1 C:/ti/ccs1210/ccs/tools/node/node.exe "C:/ti/c2000/C2000Ware_4_03_00_00/driverlib/.meta/generate_diagrams.js" "C:/ti/c2000/C2000Ware_4_03_00_00" "C:/Users/JThomas/HWS_Integration1/adc_ex4_soc_software_sync/CPU1_RAM/diagrams" "C:/Users/JThomas/HWS_Integration1/adc_ex4_soc_software_sync/CPU1_RAM/syscfg"
**** Build Finished ****
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

 编译的加载时控制台输出 包含  加载时段错误消息:

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
C28xx_CPU1: GEL Output:
Memory Map Initialization Complete
C28xx_CPU1: GEL Output:
... DCSM Initialization Start ...
C28xx_CPU1: GEL Output:
... DCSM Initialization Done ...
C28xx_CPU1: GEL Output:
CPU2 is out of reset and configured to wait boot.
(If you connected previously, may have to resume CPU2 to reach wait boot loop.)
C28xx_CPU1: GEL Output:
CM is out of reset and configured to wait boot.
(If you connected previously, may have to resume CM to reach wait boot loop.)
C28xx_CPU1: If erase/program (E/P) operation is being done on one core, the other core should not execute from shared-RAM (SR) as they are used for the E/P code. User code execution from SR could commence after both flash banks are programmed.
C28xx_CPU1: Only CPU1 on-chip Flash Plugin can configure clock for CPU1, CPU2 and CM Flash operations. Plugin automatically configures PLL when CPU1 Flash operations are invoked. However, if users want to do only CPU2 or CM Flash operations without doing a prior CPU1 operation in the current session, they should click on 'Configure Clock' button in CPU1's on-chip Flash Plugin before invoking CPU2 and CM Flash operations. When this button is used, Flash Plugin will configure the clock for CPU1/CPU2 at 190MHz and CM at 95MHz using INTOSC2 as the clock source. Plugin will leave PLL config like this and user application should configure the PLL as required by application.
C28xx_CPU1: GEL Output:
... DCSM Initialization Start ...
C28xx_CPU1: GEL Output:
... DCSM Initialization Done ...
C28xx_CPU1: GEL Output:
CPU2 is out of reset and configured to wait boot.
(If you connected previously, may have to resume CPU2 to reach wait boot loop.)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

未经编辑的 TI 链接器命令文件 example "driverlib\f2838x\examples\C28x\adc\adc_ex4_soc_software_sync"

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
MEMORY
{
/* BEGIN is used for the "boot to SARAM" bootloader mode */
BEGIN : origin = 0x000000, length = 0x000002
BOOT_RSVD : origin = 0x000002, length = 0x0001AF /* Part of M0, BOOT rom will use this for stack */
RAMM0 : origin = 0x0001B1, length = 0x00024F
RAMM1 : origin = 0x000400, length = 0x0003F8 /* on-chip RAM block M1 */
// RAMM1_RSVD : origin = 0x0007F8, length = 0x000008 /* Reserve and do not use for code as per the errata advisory "Memory: Prefetching Beyond Valid Memory" */
RAMD0 : origin = 0x00C000, length = 0x000800
RAMD1 : origin = 0x00C800, length = 0x000800
RAMLS0 : origin = 0x008000, length = 0x000800
RAMLS1 : origin = 0x008800, length = 0x000800
RAMLS2 : origin = 0x009000, length = 0x000800
RAMLS3 : origin = 0x009800, length = 0x000800
RAMLS4 : origin = 0x00A000, length = 0x000800
RAMLS5 : origin = 0x00A800, length = 0x000800
RAMLS6 : origin = 0x00B000, length = 0x000800
RAMLS7 : origin = 0x00B800, length = 0x000800
RAMGS0 : origin = 0x00D000, length = 0x001000
RAMGS1 : origin = 0x00E000, length = 0x001000
RAMGS2 : origin = 0x00F000, length = 0x001000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

 从不包含段错误的编译中生成的映射文件:

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
******************************************************************************
TMS320C2000 Linker PC v22.6.0
******************************************************************************
>> Linked Wed Jul 19 12:06:28 2023
OUTPUT FILE NAME: <adc_ex4_soc_software_sync.out>
ENTRY POINT SYMBOL: "code_start" address: 00000000
MEMORY CONFIGURATION
name origin length used unused attr fill
---------------------- -------- --------- -------- -------- ---- --------
BEGIN 00000000 00000002 00000002 00000000 RWIX
BOOT_RSVD 00000002 000001af 00000000 000001af RWIX
RAMM0 000001b1 0000024f 00000018 00000237 RWIX
RAMM1 00000400 000003f8 000003f8 00000000 RWIX
RAMLS0 00008000 00000800 00000800 00000000 RWIX
RAMLS1 00008800 00000800 0000039a 00000466 RWIX
RAMLS2 00009000 00000800 00000000 00000800 RWIX
RAMLS3 00009800 00000800 00000000 00000800 RWIX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

   编译中生成的映射文件、其中包含 段错误:

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
******************************************************************************
TMS320C2000 Linker PC v22.6.0
******************************************************************************
>> Linked Wed Jul 19 11:43:32 2023
OUTPUT FILE NAME: <adc_ex4_soc_software_sync.out>
ENTRY POINT SYMBOL: "code_start" address: 00000000
MEMORY CONFIGURATION
name origin length used unused attr fill
---------------------- -------- --------- -------- -------- ---- --------
BEGIN 00000000 00000002 00000002 00000000 RWIX
BOOT_RSVD 00000002 000001af 00000000 000001af RWIX
RAMM0 000001b1 0000024f 00000018 00000237 RWIX
RAMM1 00000400 000003f8 000003f8 00000000 RWIX
RAMLS0 00008000 00000800 00000800 00000000 RWIX
RAMLS1 00008800 00000800 0000039e 00000462 RWIX
RAMLS2 00009000 00000800 00000000 00000800 RWIX
RAMLS3 00009800 00000800 00000000 00000800 RWIX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

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

    您好!

    很抱歉这么晚才回复。

    如果您有 F2838D 器件(也许是 controlCARD?) 一起尝试相同的.out 吗?

    此致、

    维纳

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

    Veena,

    这两个开发板通过 TI XDS110与 PC 连接:

    https://www.ti.com/tool/TMDSHSECDOCK

    https://www.ti.com/tool/TMDSCNCD28388D

     

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

    是的、您可以在 F28388D controlCARD 上试用一下吗? 在主题标题中您提到了 F28386S、因此我假设您使用的是定制电路板。 我只想检查一下它是否是 特定于 F28386S 的问题。  

    此致、

    维纳

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

    我对这种困惑感到抱歉。 我将对帖子的开头进行编辑、使其更清晰。 我们很快将有一个使用 F28386S MCU 的定制电路板、但我尚未在其中尝试任何软件。  我仍然使用 TMDSCNCD28388D 使用 TI 开发套件。  我发现此问题发生在 TI 硬件上。 我尚不知道我们的定制硬件是否也会发生这种情况。

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

    是的-这只在 F2838D controlCARD 上尝试过、结果我公布。  我尚未在任何定制硬件上尝试过该功能。

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

    让我在 controlCARD 上试用一下、然后联系您

    此致、

    维纳

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

    谢谢你。 我将附加我自己的项目。 未经修改的示例 CPU1程序 adc_ex4_soc_software_sync"不提供与该段有关的消息。  只有我修改的版本可以这样做、因此您将需要这个。

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

    我试图通过编辑原始帖子来附加我的项目的 ZIP 文件。 似乎是在上载它。 我单击了"发布"以提交更改、但我没有看到附件出现在此处。  奇怪。

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

    我已成功将修改后的示例项目上传到此帖子。 自从我最初发布之后、我对它进行了修改、仅将一个32位整数映射到"MSGRAM_CPU_TO_CM"数据段(而不是我之前使用的数组)、但这并不会阻止加载程序消息的出现、我仍然收到该消息。 我假定可能我的数据结构对于链路图(?)来说太大了 或段、但这似乎不是加载程序在加载时显示该消息的原因。

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

    "龙儿,你怎么了?  您是否在下方看到了我的最新回复?  我还附上了我的代码。

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

    您好、James:

      附加的 zip 文件中似乎缺少头文件- hwas_opcode.h、hwas_runmode.h、hwas_channel_reports.h 和 hwas_IPC.h。

    您能查看一下吗?

    谢谢

    阿斯温

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

    e2e.ti.com/.../missing_5F00_headers.zip

    我在这篇帖子回复中添加了缺失的标题。  我检查了它们,但我看不到它们包含任何可能导致消息出现的东西。  懂了吗?

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

    您好、James:

    当我尝试构建附加到帖子的项目时遇到这些错误。

    但使用这些头文件、我能够构建项目。

    让我测试一下这个.out、会很快回复您。

    谢谢

    阿斯温  

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

    您好、James:

    我在研究连接器命令文件时发现它看起来很好。

    我通过删除向其中写入0的默认值对代码进行了一些  debugOnly 变量  创建了一个目标配置文件。

    更新了代码 -  
    #pragma DATA_SECTION (debugOnly、"MSGRAM_CPU_TO_CM")
    Volatile uint32_t debugOnly;//在调试后删除

    您能自行尝试、看看您是否仍在面对 "C28xx_CPU1:加载器:程序的一个或多个部分放入了不可写入的存储器区域。 这些区域实际上不会写入目标。 请检查您的链接器配置和/或存储器映射。" 问题?

    谢谢

    阿斯温

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

    Aswin、 是-删除对该"edbugOnly"变量的分配会阻止消息出现、但这不能解决问题... 我已经在我身边尝试过这种方法。 加载程序似乎在提醒我们、不允许写入该部分中的任何变量(甚至是注释掉的我的原始数组)。  这正是我试图理解的问题、因为我需要将数据映射到 IPC 的那个部分。

    在我的文章早些时候(八月1)我写了这篇文章,以描述为什么 我试图看到问题是否会消失,如果我要创建和存储一个32位整数(" debugOnly")作为替代存储我的阵列:

    "我已成功将修改后的示例项目上传到此帖子。 自从我最初发布之后、我对它进行了修改、仅将一个32位整数映射到"MSGRAM_CPU_TO_CM"数据段(而不是我之前使用的数组)、但这并不会阻止加载程序消息的出现、我仍然收到该消息。 我假定可能我的数据结构对于链路图(?)来说太大了 或者部分、但这似乎不是加载器在加载时显示该消息的原因。"

    因此-存在"debugOnly"对象只是为了测试我的数组(原始对象、我仍然需要使用它)是否以某种方式太大、从而导致消息出现。 使用像"debugOnly"这样的小对象只是一个"黑暗中的镜头",试图阻止消息,并给出一个线索的原因。 但如上所述,这在当时是毫无结果的。 我由此得出结论、我映射的数据大小不是原因。  在我的应用程序中、我确实需要映射该数组、而不是"debugOnly" 32位整数。  但是、使用数组或32位变量会导致加载程序生成该警告。 这似乎表明 数据段映射存在相当严重的问题。  这让我很担心、也是发布此帖子的原因。

    因此、要反转我的"黑暗中的射门"方法、您可以执行以下操作:

    1.取消注释#pragma 和 reportAllChannelsReport[]在第 136-137行上的声明。

    2.注释出第133行和第134行。

    3.取消注释第554-611行(对 allChannelsReport[]和 IPC 调用的分配)。

    但是、现在可能没有必要这样做、因为即使是 debugOnly 32位整数使用也会导致同样的问题、所以我认为使用数组(我的实际要求)或数组大小不会导致错误。

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

    大家好、James

    我做了一些实验来理解问题。

    当我们在 main 之前将结构初始化为零时会出现这个问题。 当我删除 init 部分时,出现消息" C28xx_CPU1:加载器:程序的一个或多个段放入一个不可写的存储器区域 ",没有在控制台中反映。 可能是 cinit 段有问题。 我正在努力进一步了解这一点。  

    由于编译器标志是 EABI、因此它会自动将变量初始化为零。

    我已取消注释您在上一次回复中提到的代码、并在初始化部分中进行了以下更改-  

    #pragma DATA_SECTION (debugOnly、"MSGRAM_CPU_TO_CM")
    Volatile uint32_t debugOnly;//在调试后删除

    #pragma DATA_SECTION (allChannelsReport、"MSGRAM_CPU_TO_CM")
    reportAll_t allChannelsReport;

    请自行尝试、如果您再次遇到此问题、请告诉我。 我将收集更多有关初始化部分的信息。

    谢谢

    阿斯温  

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

    您好、James:

    这被确定为 GEL 问题、我们已创建 JIRA 来跟踪此问题。 即将推出的 CCS 版本应包含更新后的 GEL 文件。

    请替换 ccs1240\ccs\ccs_base\emulation\gel\f28388d_cpu1.gel 中附加的 GEL 文件。

    e2e.ti.com/.../f28388d_5F00_cpu1.gel

    谢谢

    阿斯温  

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

    GEL 文件阻止发出消息。  谢谢!