SysLink 02.00.00.68 c6x beta2 InstallGuide
From LinuxC6xWiki
Contents |
Download and Install Syslink & dependent components
Download SysLink tarball from [1]
Download SysLink dependencies. Use Linux self install binary and follow instructions from the component release notes. For CGTOOLS, create folder c6000_7.2.0 under /my-linux-c6x/. For all install binaries, do chmod +x <binary file> before executing. For CGTOOLS, choose the folder c6000_7.2.0 during install. For other components, choose the folder my-linux-c6x and installation program will install the component under a sub folder of my-linux-c6x. For example ipc install binary will install ipc under my-linux-c6x/ipc_1_22_03_23.
Install all of the dependent components(IPC, BIOS, CGT and XDC) under /my-linux-c6x/ as per directory structure given below.
my-linux-c6x/ |-- busybox |-- linux-c6x |-- linux-c6x-project |-- projects | |--mtd-utils | |--packages | |--rio-utils | |--c6x-linux-mcsdk-demo |-- ipc_1_22_03_23 |-- bios_6_31_04_27 |-- xdctools_3_20_08_88 |-- c6000_7.2.0
Alternately if CCS is installed on Linux Host, you could use the IPC, XDC, CGT and BIOS components from the CCS installation folder as well.
Install SysLink as follows:-
cd /my-linux-c6x/ tar -xvzf linux-c6x-2.0-beta2-src-syslink.tar.gz
Building SysLink
Syslink can be built from linux-c6x-project directory as part of the product build or build separately outside the product build.
Building SysLink as part of product build
From linux-c6x-project directory, do the steps for building product by following the steps at Linux-c6x_2.0-Beta2_Release#Building_the_kernel_and_filesystem.
Following env variables are applicable from linux-c6x-project/setenv.example
== setenv.example==
#set ROOTFS to build SysLink as part of mcsdk-demo-root fs
export ROOTFS=mcsdk-demo-root
# List the syslink kernel modules to build. evmc6678 and
# evmc6670 supported. Use this variable when building
# SysLink as part of mcsdk-demo-root ROOTFS.
# SysLink modules and exe files will get installed under
# /opt/syslink_<evm>.<endian prefix> folder of the rootfs
export SYSLINK_KERNEL_MODULES_TO_BUILD="evmc6670 evmc6678"
# Set below if you are building syslink separately
# not as part of product build).
# Leave it blank when building SysLink as part of product.
# SysLink modules and exe files get installed under
# product/syslink_<evm>.<endian
# prefix> folder. User has to copy the files manually to
# execute them on the target.
# This will become obsolete soon.
export SYSLINK_TO_BUILD=
# SysLink install directory.
export SYSLINK_ROOT=$LINUX_C6X_TOP_DIR/syslink_02_00_00_68_c6x_beta2
# IPC package install directory. Set the IPC_DIR variable
# to something other than default only if you want to use
# the IPC package from the CCS installation. In that
# case set this to the path of the IPC package that is part
# of the CCS installation. Otherwise, just install the IPC
# package under $LINUX_C6X_TOP_DIR and use the default.
#
export IPC_DIR=$LINUX_C6X_TOP_DIR/ipc_1_22_03_23/packages
# **** Below this for building SysLink rtos samples ********
# BIOS package install directory. Set the BIOS_DIR variable
# to something other than default only if you want to use the
# BIOS package from the CCS installation. In that
# case set this to the path of the IPC package that is part
# of the CCS installation..Otherwise, just install the BIOS
# package under $LINUX_C6X_TOP_DIR and use default.
export BIOS_DIR=$LINUX_C6X_TOP_DIR/bios_6_31_04_27
# XDC package install directory. Set the XDC_DIR variable
# to something other than default only if you want to use
# the XDC package from the CCS installation. In that
# case set this to the path of the XDC package that is part
# of the CCS installation. Otherwise, just install the XDC
# package under $LINUX_C6X_TOP_DIR and use default.
export XDC_DIR=$LINUX_C6X_TOP_DIR/xdctools_3_20_08_88
When building mcsdk-demo-root, SysLink build target will be invoked which will build SysLink kernel modules, applications and rtos sample applications (messageQ and Notify) and install the same under /opt/syslink_<evm>.<endian_prefix>. So for C6678, the SysLink files are installed under
/opt/syslink_evmc6678.el/
Building SysLink separately
A Makefile.syslink is provided under linux-c6x-project to allow building SysLink kernel module, sample kernel modules, sample user land applications and RTOS sample applications. This section describes how to build these separately from the top level linux-c6x-project directory
1. Setup build environment for HLOS and RTOS build
It is assumed that the Linux Host machine used for build has been setup to build linux-c6x-project. If not, click here Main_Page. This sections describes how to setup the Linux build environment for building SysLink kernel module, sample kernel modules, user land applications and RTOS IPC sample applications
First edit setenv in the linux-c6x-project directory (Assumes that linux-c6x product build is complete. So setenv is already present in the directory). Select the target platform. In the example C6678 is selected. If you are building for C6670, set SYSLINK_TO_BUILD to C6670.
==setenv file===
# Set below if you are building SysLink separately (not as
# part of product build). Leave it blank when building
# SysLink as part of product. SysLink modules and exe files
# get installed under product/syslink_<evm>.<endian_prefix>
# folder. User has to copy the files manually to execute them
# on the target.This will become obsolete soon.
export SYSLINK_TO_BUILD=evmc6678
# SysLink install directory.
export SYSLINK_ROOT=$LINUX_C6X_TOP_DIR/syslink_02_00_00_68_c6x_beta2
# IPC package install directory. Set the IPC_DIR variable
# to something other than default only if you want to use
# the IPC package from the CCS installation. In that
# case set this to the path of the IPC package that is part
# of the CCS installation. Otherwise, just install the IPC
# package under $LINUX_C6X_TOP_DIR and use the default.
#
export IPC_DIR=$LINUX_C6X_TOP_DIR/ipc_1_22_03_23/packages
# **** Below this for building SysLink rtos samples ********
# BIOS package install directory. Set the BIOS_DIR variable
# to something other than default only if you want to use the
# BIOS package from the CCS installation. In that
# case set this to the path of the IPC package that is part
# of the CCS installation..Otherwise, just install the BIOS
# package under $LINUX_C6X_TOP_DIR and use default.
export BIOS_DIR=$LINUX_C6X_TOP_DIR/bios_6_31_04_27
# XDC package install directory. Set the XDC_DIR variable
# to something other than default only if you want to use
# the XDC package from the CCS installation. In that
# case set this to the path of the XDC package that is part
# of the CCS installation. Otherwise, just install the XDC
# package under $LINUX_C6X_TOP_DIR and use default.
export XDC_DIR=$LINUX_C6X_TOP_DIR/xdctools_3_20_08_88
2. Build Linux kernel modules, user samples and BIOS/IPC samples
SysLink build targets are available in linux-c6x-project Makefile (actually includes Makefile.syslink) to allow building of SysLink kernel module, sample kernel modules and user sample applications (both HLOS and RTOS) from the top level project directory. To build SysLink, do the following:-
cd my-linux-c6x/linux-c6x-project source setenv make syslink-help - Display all available build targets make syslink-all - Builds SysLink kernel modules, user sample applications and rtos samples make syslink-clean - Clean up every thing created during SysLink build
The binaries created are installed under product/syslink_<evm>.<endian prefix> directory, where evm is either evmc6678 or evmc6670 and endian prefix is .el (little) and .eb (big)
cd my-linux-c6x/product/syslink_evmc6678.el ls gatempapp_debug gatempapp_release gatempapp.ko heapbufmpapp_debug heapbufmpapp_release heapbufmpapp.ko heapmemmpapp_debug heapmemmpapp_release heapmemmpapp.ko listmpapp_debug listmpapp_release listmpapp.ko messageqapp_debug messageqapp_release messageqapp.ko notifyapp_debug notifyapp_release notifyapp.ko procmgrapp_debug procmgrapp_release sharedregionapp_debug sharedregionapp_release sharedregionapp.ko syslink.ko
The rtos applications are available with *.xe66 suffix. For example notify application to run on Faraday core0 will show as notify_c6678_core1.xe66 and on core1 as notify_c6678_core2.xe66
To build kernel modules and user samples separately, following steps can be used:-
2.a. Build SysLink & sample kernel modules
cd my-linux-c6x/linux-c6x-project source setenv make syslink-kernel - Builds syslink kernel module and sample modules make syslink-kernel-clean - Clean up syslink generated build files and binaries
2.b. Build HLOS user space sample applications
cd my-linux-c6x/linux-c6x-project source setenv make syslink-user - Builds syslink user space sample applications make syslink-user-clean - Clean up build generated files
RTOS Builds
RTOS (Real Time OS) used is SyS/BIOS. This instruction assumes that CGTOOLS required is already installed under /my-linux-c6x/ c6000_7.2.0B2 directory and the build host is RedHat Linux 4.0.
1. Building from top level linux-c6x-project directory
The RTOS sample applications are build automatically when make syslink-all is invoked from the linux-c6x-project directory. To build only rtos sample applications, do
make syslink-rtos
To do cleanup invoke
make syslink-rtos-clean
Below procedures are required only if you are building individual samples manually.
Running multi-core sample applications
The multi-core applications has two components. One part of the application runs on the Linux Host (referred to as HLOS sample application) and the other part runs on the slave cores (referred to as RTOS or SyS/BIOS IPC sample application). Host is also known as the master core and others as slave cores. On each core, the application initializes all resources used by the application and also initializes the IPC. It then execute a set of APIs calls to invokes the services of the module under test. So running multi-core sample application involves running of the above two sample applications. The SyS/BIOS IPC sample application calls APIs from IPC package . The master core runs SysLink sample application under Linux. IPC module of both sample applications communicate using Shared Memory as transport and IPC hardware interrupt. The application on the slave core waits for the master core to initiate the test.
1. Test configuration
On C6670 and C6678 EVMs, the Linux Host runs on Core0 and BIOS applications run on Core1 - CoreN to demonstrate IPC between Host and BIOS cores. Where N is 3 for C6670 and 7 for C6678. Loading of slave cores is done using the mcoreloader (available under /usr/bin when mcsdk-demo-root root fs is built). The slave cores can be loaded manually as well using ccs. The IPC requires shared memory between cores as transport. On C6670 and C6678, the SharedRegion 0 is on MSMC and SR1 on DDR. This requires bootarg variable mem=256M to be set in kernel bootargs to reserve the upper 256M for SysLink shared region1 and other application use.
2.a Running Linux User land sample applications.
First step is to load and run the the Linux on the Linux Host core (core 0). Linux can be loaded either through CCS or through tftp. SyS/BIOS IPC sample application executable are in elf formats and are named as <apps_name><target_platform> <core_id>.xe66. So pick executable with core_id 1 for Core1 , core_id 2 for Core2 and so forth. The elf loader, mcoreloader under /usr/bin is used for this purpose. Assume the SysLink .ko files, exe and BIOS/IPC sample exe files are copied to /opt/ syslink_evmc6678.el folder. Scripts are provided under linux-c6x-project/scripts/syslink for automating this. Copy the scripts to /opt/syslink_evmc <6670/6678>.el folder. The scripts are named as follows:- <app_name>_test_<num_cores>_core.sh.
To run MessageQ application on C6678, run ./messageq_app_test_8_core.sh
To run MessageQ application on C6670, run
./messageq_app_test_4_core.sh
Make sure that the Ipc_ResetVector used in the script matches with the application map file. Application map files are available under product/syslink_evmc<6670/6678>.el/map folder.
To get the Ipc_ResetVector values on each core for Notify, do cd ~/my-linux-c6x/product/syslink_evmc<6670/6678>.el/map grep Ipc_ResetVector notify*.map
2.b Running kernel module sample
Scripts are provided under linux-c6x-project/scripts/syslink for automating this. Copy the scripts to /opt/syslink_evmc <6670/6678>.el folder. The scripts are named as follows:- <app_name>module_test_<num_cores>_core.sh. Also a procmgr script is provided to load and run the slave cores with BIOS IPC samples. There is one procmgr script per application and is named as procmgr_load_<application>_<num cores>_core.sh. For C6678, use procmgr_load_<application>_8_core.sh. Telnet session #1 cd /opt/syslink_evmc6678.el ./procmgr_load_notifyapp_8_core.sh Telnet session #2 cd /opt/syslink_evmc6678.el ./messageq_module_test_8_core.sh Make sure that the Ipc_ResetVector used in the procmgr script matches with the application map file. Application map files are available under product/syslink_evmc<6670/6678>.el/map folder.
===== 3.a.1 Sample logs on Linux Host for notify running on C6678
/opt/syslink_evmc6678.el # ./messageq_app_test_8_core.sh
Beginning of MessageQ sample application run
insmod syslink.ko
SysLink version : 02.00.00.68_beta1
SysLink module created on Date:Jun 21 2011 Time:10:12:50
Entered KnlUtilsDrv_initializeModule
traceMask value: 0x0
Leaving KnlUtilsDrv_initializeModule 0x0
Loading and running slave core 1
ELF: ELF
ELF file header entry point: 8142c0
Program entry address: 0x8142c0
Program entry address not 10bit aligned trying to use reset vector table
Reset vector address: 0x828800
Started Program execution on core: 1
Loading and running slave core 2
ELF: ELF
ELF file header entry point: 8142c0
Program entry address: 0x8142c0
Program entry address not 10bit aligned trying to use reset vector table
Reset vector address: 0x828800
Started Program execution on core: 2
Loading and running slave core 3
ELF: ELF
ELF file header entry point: 8142c0
Program entry address: 0x8142c0
Program entry address not 10bit aligned trying to use reset vector table
Reset vector address: 0x828800
Started Program execution on core: 3
Loading and running slave core 4
ELF: ELF
ELF file header entry point: 8142c0
Program entry address: 0x8142c0
Program entry address not 10bit aligned trying to use reset vector table
Reset vector address: 0x828800
Started Program execution on core: 4
Loading and running slave core 5
ELF: ELF
ELF file header entry point: 8142c0
Program entry address: 0x8142c0
Program entry address not 10bit aligned trying to use reset vector table
Reset vector address: 0x828800
Started Program execution on core: 5
Loading and running slave core 6
ELF: ELF
ELF file header entry point: 8142c0
Program entry address: 0x8142c0
Program entry address not 10bit aligned trying to use reset vector table
Reset vector address: 0x828800
Started Program execution on core: 6
Loading and running slave core 7
ELF: ELF
ELF file header entry point: 8142c0
Program entry address: 0x8142c0
Program entry address not 10bit aligned trying to use reset vector table
Reset vector address: 0x828800
Started Program execution on core: 7
Running messageq User land sample application
MessageQApp sample application
MessageQApp_startup entered
Entered SysLinkSamples_startup
SysLinkSamples_osStartup
SysLinkSamples_setToRunProcIds
Loading and starting procId [1] with [(null)]
Entered ProcMgrApp_startup
ProcMgr_attach status: [0x97d2000]
After attach: ProcMgr_getState
state [0x4]
After Ipc_loadcallback: ProcMgr_getState
state [0x4]
After Ipc_startcallback: ProcMgr_getState
state [0x4]
ProcMgr_close status: [0x97d2000]
Leaving ProcMgrApp_startup
ProcMgrApp_startup status [0]
Loading and starting procId [2] with [(null)]
Entered ProcMgrApp_startup
ProcMgr_attach status: [0x97d2000]
After attach: ProcMgr_getState
state [0x4]
After Ipc_loadcallback: ProcMgr_getState
state [0x4]
After Ipc_startcallback: ProcMgr_getState
state [0x4]
ProcMgr_close status: [0x97d2000]
Leaving ProcMgrApp_startup
ProcMgrApp_startup status [0]
Loading and starting procId [3] with [(null)]
Entered ProcMgrApp_startup
ProcMgr_attach status: [0x97d2000]
After attach: ProcMgr_getState
state [0x4]
After Ipc_loadcallback: ProcMgr_getState
state [0x4]
After Ipc_startcallback: ProcMgr_getState
state [0x4]
ProcMgr_close status: [0x97d2000]
Leaving ProcMgrApp_startup
ProcMgrApp_startup status [0]
Loading and starting procId [4] with [(null)]
Entered ProcMgrApp_startup
ProcMgr_attach status: [0x97d2000]
After attach: ProcMgr_getState
state [0x4]
After Ipc_loadcallback: ProcMgr_getState
state [0x4]
After Ipc_startcallback: ProcMgr_getState
state [0x4]
ProcMgr_close status: [0x97d2000]
Leaving ProcMgrApp_startup
ProcMgrApp_startup status [0]
Loading and starting procId [5] with [(null)]
Entered ProcMgrApp_startup
ProcMgr_attach status: [0x97d2000]
After attach: ProcMgr_getState
state [0x4]
After Ipc_loadcallback: ProcMgr_getState
state [0x4]
After Ipc_startcallback: ProcMgr_getState
state [0x4]
ProcMgr_close status: [0x97d2000]
Leaving ProcMgrApp_startup
ProcMgrApp_startup status [0]
Loading and starting procId [6] with [(null)]
Entered ProcMgrApp_startup
ProcMgr_attach status: [0x97d2000]
After attach: ProcMgr_getState
state [0x4]
After Ipc_loadcallback: ProcMgr_getState
state [0x4]
After Ipc_startcallback: ProcMgr_getState
state [0x4]
ProcMgr_close status: [0x97d2000]
Leaving ProcMgrApp_startup
ProcMgrApp_startup status [0]
Loading and starting procId [7] with [(null)]
Entered ProcMgrApp_startup
ProcMgr_attach status: [0x97d2000]
After attach: ProcMgr_getState
state [0x4]
After Ipc_loadcallback: ProcMgr_getState
state [0x4]
After Ipc_startcallback: ProcMgr_getState
state [0x4]
ProcMgr_close status: [0x97d2000]
Leaving ProcMgrApp_startup
ProcMgrApp_startup status [0]
Leaving MessageQApp_startup 0
Entered MessageQApp_execute
MessageQApp_threadHandler entered
Registering heapId 0 with MessageQ for procId: 1
MessageQ_create name MSGQ_01 status [0x0] : procId [1]
Sending synchronizaion notification to ProcId: 1
Sent synchronizaion notification to ProcId: 1
MessageQ_open Status [0x0] : procId [1]
MessageQApp_queueId [0x10000] : procId [1]
Sending a message #100 to 1
Sending a message #200 to 1
Sending a message #300 to 1
Sending a message #400 to 1
Sending a message #500 to 1
Sending a message #600 to 1
Sending a message #700 to 1
Sending a message #800 to 1
Sending a message #900 to 1
Sending a message #1000 to 1
Leaving MessageQApp_threadHandler 0
MessageQApp_threadHandler entered
Registering heapId 0 with MessageQ for procId: 2
MessageQ_create name MSGQ_02 status [0x0] : procId [2]
Sending synchronizaion notification to ProcId: 2
Sent synchronizaion notification to ProcId: 2
MessageQ_open Status [0x0] : procId [2]
MessageQApp_queueId [0x20000] : procId [2]
Sending a message #100 to 2
Sending a message #200 to 2
Sending a message #300 to 2
Sending a message #400 to 2
Sending a message #500 to 2
Sending a message #600 to 2
Sending a message #700 to 2
Sending a message #800 to 2
Sending a message #900 to 2
Sending a message #1000 to 2
Leaving MessageQApp_threadHandler 0
MessageQApp_threadHandler entered
Registering heapId 0 with MessageQ for procId: 3
MessageQ_create name MSGQ_03 status [0x0] : procId [3]
Sending synchronizaion notification to ProcId: 3
Sent synchronizaion notification to ProcId: 3
MessageQ_open Status [0x0] : procId [3]
MessageQApp_queueId [0x30000] : procId [3]
Sending a message #100 to 3
Sending a message #200 to 3
Sending a message #300 to 3
Sending a message #400 to 3
Sending a message #500 to 3
Sending a message #600 to 3
Sending a message #700 to 3
Sending a message #800 to 3
Sending a message #900 to 3
Sending a message #1000 to 3
Leaving MessageQApp_threadHandler 0
MessageQApp_threadHandler entered
Registering heapId 0 with MessageQ for procId: 4
MessageQ_create name MSGQ_04 status [0x0] : procId [4]
Sending synchronizaion notification to ProcId: 4
Sent synchronizaion notification to ProcId: 4
MessageQ_open Status [0x0] : procId [4]
MessageQApp_queueId [0x40000] : procId [4]
Sending a message #100 to 4
Sending a message #200 to 4
Sending a message #300 to 4
Sending a message #400 to 4
Sending a message #500 to 4
Sending a message #600 to 4
Sending a message #700 to 4
Sending a message #800 to 4
Sending a message #900 to 4
Sending a message #1000 to 4
Leaving MessageQApp_threadHandler 0
MessageQApp_threadHandler entered
Registering heapId 0 with MessageQ for procId: 5
MessageQ_create name MSGQ_05 status [0x0] : procId [5]
Sending synchronizaion notification to ProcId: 5
Sent synchronizaion notification to ProcId: 5
MessageQ_open Status [0x0] : procId [5]
MessageQApp_queueId [0x50000] : procId [5]
Sending a message #100 to 5
Sending a message #200 to 5
Sending a message #300 to 5
Sending a message #400 to 5
Sending a message #500 to 5
Sending a message #600 to 5
Sending a message #700 to 5
Sending a message #800 to 5
Sending a message #900 to 5
Sending a message #1000 to 5
Leaving MessageQApp_threadHandler 0
MessageQApp_threadHandler entered
Registering heapId 0 with MessageQ for procId: 6
MessageQ_create name MSGQ_06 status [0x0] : procId [6]
Sending synchronizaion notification to ProcId: 6
Sent synchronizaion notification to ProcId: 6
MessageQ_open Status [0x0] : procId [6]
MessageQApp_queueId [0x60000] : procId [6]
Sending a message #100 to 6
Sending a message #200 to 6
Sending a message #300 to 6
Sending a message #400 to 6
Sending a message #500 to 6
Sending a message #600 to 6
Sending a message #700 to 6
Sending a message #800 to 6
Sending a message #900 to 6
Sending a message #1000 to 6
Leaving MessageQApp_threadHandler 0
MessageQApp_threadHandler entered
Registering heapId 0 with MessageQ for procId: 7
MessageQ_create name MSGQ_07 status [0x0] : procId [7]
Sending synchronizaion notification to ProcId: 7
Sent synchronizaion notification to ProcId: 7
MessageQ_open Status [0x0] : procId [7]
MessageQApp_queueId [0x70000] : procId [7]
Sending a message #100 to 7
Sending a message #200 to 7
Sending a message #300 to 7
Sending a message #400 to 7
Sending a message #500 to 7
Sending a message #600 to 7
Sending a message #700 to 7
Sending a message #800 to 7
Sending a message #900 to 7
Sending a message #1000 to 7
Leaving MessageQApp_threadHandler 0
Leaving MessageQApp_execute
Entered MessageQApp_shutdown()
Shutting down procId [1]
Entered ProcMgrApp_shutdown
Ipc_control Ipc_CONTROLCMD_STOPCALLBACK status: [0x97d2000]
ProcMgr_detach status: [0x6a85000]
After detach: ProcMgr_getState
state [0x0]
ProcMgr_close status: [0x0]
Leaving ProcMgrApp_shutdown
ProcMgrApp_shutdown status [0]
Shutting down procId [2]
Entered ProcMgrApp_shutdown
Ipc_control Ipc_CONTROLCMD_STOPCALLBACK status: [0x0]
ProcMgr_detach status: [0x6a85000]
After detach: ProcMgr_getState
state [0x0]
ProcMgr_close status: [0x0]
Leaving ProcMgrApp_shutdown
ProcMgrApp_shutdown status [0]
Shutting down procId [3]
Entered ProcMgrApp_shutdown
Ipc_control Ipc_CONTROLCMD_STOPCALLBACK status: [0x0]
ProcMgr_detach status: [0x6a85000]
After detach: ProcMgr_getState
state [0x0]
ProcMgr_close status: [0x0]
Leaving ProcMgrApp_shutdown
ProcMgrApp_shutdown status [0]
Shutting down procId [4]
Entered ProcMgrApp_shutdown
Ipc_control Ipc_CONTROLCMD_STOPCALLBACK status: [0x0]
ProcMgr_detach status: [0x6a85000]
After detach: ProcMgr_getState
state [0x0]
ProcMgr_close status: [0x0]
Leaving ProcMgrApp_shutdown
ProcMgrApp_shutdown status [0]
Shutting down procId [5]
Entered ProcMgrApp_shutdown
Ipc_control Ipc_CONTROLCMD_STOPCALLBACK status: [0x0]
ProcMgr_detach status: [0x6a85000]
After detach: ProcMgr_getState
state [0x0]
ProcMgr_close status: [0x0]
Leaving ProcMgrApp_shutdown
ProcMgrApp_shutdown status [0]
Shutting down procId [6]
Entered ProcMgrApp_shutdown
Ipc_control Ipc_CONTROLCMD_STOPCALLBACK status: [0x0]
ProcMgr_detach status: [0x6a85000]
After detach: ProcMgr_getState
state [0x0]
ProcMgr_close status: [0x0]
Leaving ProcMgrApp_shutdown
ProcMgrApp_shutdown status [0]
Shutting down procId [7]
Entered ProcMgrApp_shutdown
Ipc_control Ipc_CONTROLCMD_STOPCALLBACK status: [0x0]
ProcMgr_detach status: [0x6a85000]Entered KnlUtilsDrv_finalizeModule
After detach: Assertion at Line no: 446 in /sim/scratch_a0868495
/mcsdk-2.0-alpha1/Build/sysli
nk_evmc6678.el/ti/syslink/utils/hlos/knl/Linux/../../../../../..
/ti/syslink/ipc/hlos/knl/Mess
ageQ.c: (MessageQ_module->queues [i] == NULL) : failed
ProcMgr_getStateAssertion at Line no: 446 in /sim/scratch_a0868495
/mcsdk-2.0-alpha1/Build/sys
link_evmc6678.el/ti/syslink/utils/hlos/knl/Linux/../../../../../..
/ti/syslink/ipc/hlos/knl/Me
ssageQ.c: (MessageQ_module->queues [i] == NULL) : failed
state [0x0Assertion at Line no: 446 in /sim/scratch_a0868495
/mcsdk-2.0-alpha1/Build/sysli
nk_evmc6678.el/ti/syslink/utils/hlos/knl/Linux/../../../../../..
/ti/syslink/ipc/hlos/knl/Mess
ageQ.c: (MessageQ_module->queues [i] == NULL) : failed
]
ProcMgr_closeAssertion at Line no: 446 in /sim/scratch_a0868495
/mcsdk-2.0-alpha1/Build/syslin
k_evmc6678.el/ti/syslink/utils/hlos/knl/Linux/../../../../../..
/ti/syslink/ipc/hlos/knl/Messa
geQ.c: (MessageQ_module->queues [i] == NULL) : failed
status: [0x0]
Assertion at Line no: 446 in /sim/scratch_a0868495/mcsdk-2.0-alpha1
/Build/syslink_evmc6678.el
/ti/syslink/utils/hlos/knl/Linux/../../../../../../ti/syslink
/ipc/hlos/knl/MessageQ.c: (Messa
geQ_module->queues [i] == NULL) : failed
Leaving ProcMgrAAssertion at Line no: 446 in /sim/scratch_a0868495
/mcsdk-2.0-alpha1/Build/sys
link_evmc6678.el/ti/syslink/utils/hlos/knl/Linux/../../../../../..
/ti/syslink/ipc/hlos/knl/Me
ssageQ.c: (MessageQ_module->queues [i] == NULL) : failed
pp_shutdown
ProAssertion at Line no: 446 in /sim/scratch_a0868495/mcsdk-
2.0-alpha1/Build/syslink_evmc6678
.el/ti/syslink/utils/hlos/knl/Linux/../../../../../../ti/syslink
/ipc/hlos/knl/MessageQ.c: (MessageQ_module->queues [i] == NULL) :
failed
cMgrApp_shutdown status [0]
SysLinkSamples_shutdown
SysLinkSamples_osShutdown
Leaving MessageQApp_shutdown()
rmmod syslink.ko
Leaving KnlUtilsDrv_finalizeModule 0x0
MessageQ sample application run is complete

