SysLink 02.00.00.68 c6x beta2 InstallGuide

From LinuxC6xWiki

Jump to: navigation, search

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
Personal tools
Create a book