none
Does Compact 7 supports ThreadPooling with C++? RRS feed

  • Question

  • Hi there,

    i ask because in Compact 13's winbase.h contains an include of tpool.h which is missing in Compact 7. When i try to add this, and copy tpool.h into the sdk dir, building does not complete sucessfully.

    Because there seems to be missing something more.

    Thank you.

    Regards

    Ralf



    Wednesday, January 16, 2019 9:57 AM

All replies

  • Ralf

    I would be surprised if something like that was added to Compact 2013 - shocked even.

    But your post left me with more questions than answers:

    1. "When i try to add this" - what exactly did you do?
    2. "copy tpool.h into the sdk dir" from where?  Why?
    3. "building does not complete successfully" - what happened, did your computer catch fire :), or were there error messages?  Was it a compile or a linker error?
    4. Are you using Platform Builder, or just VS to build an app?

    Bruce Eitman
    Senior Enginer
    Bruce.Eitman AT Synopsys DOT com
    My BLOG http://geekswithblogs.net/bruceeitman
    I work for
    Synopsys


    Wednesday, January 16, 2019 2:24 PM
    Moderator
  • Hi Bruce,

    the problem begun with a supplier, which is building an software component for us and other manufacturers.

    They want to optimize it (event driven). I think the origin problem belongs to the number of timers which can not increase over 16, but i'm not sure. So they used some functions from tpool.h on another target which runs WEC 2013, when they tried to build it on WEC 7 he called me and said: Ralf, there are headers missing...

    So the result of building the sample application with VS2008 was the following:

    1>------ Neues Erstellen gestartet: Projekt: demo_slave, Konfiguration: Debug FSVYBRID_WEC7 (ARMv4I) ------
    1>Die Zwischen- und Ausgabedateien für das Projekt "demo_slave" mit der Konfiguration "Debug|FSVYBRID_WEC7 (ARMv4I)" werden gelöscht.
    1>Kompilieren...
    1>CcmDfPdo.c
    1>ccmemcp.c
    1>ccmhbp.c
    1>CcmLgs.c
    1>ccmmain.c
    1>CcmSnPdo.c
    1>bditabwince.c
    1>CdrvId01.c
    1>cdrvwince.c
    1>amiarm7.c
    1>Cob.c
    1>emcp.c
    1>hbp.c
    1>nmts.c
    1>appfunc.c
    1>..\..\..\..\Source\windowsce\appfunc.c(135) : warning C4102: 'Exit': Unreferenzierte Marke
    1>..\..\..\..\Source\windowsce\appfunc.c(100) : warning C4101: 'fSuccess': Unreferenzierte lokale Variable
    1>osexslv.c
    1>objdict.c
    1>tgtoswince.c
    1>..\..\..\..\Source\tgtoswince.c(175) : warning C4013: 'CreateTimerQueue' undefiniert; Annahme: extern mit Rückgabetyp int
    1>..\..\..\..\Source\tgtoswince.c(175) : warning C4047: '=': Anzahl der Dereferenzierungen bei 'HANDLE' und 'int' unterschiedlich
    1>..\..\..\..\Source\tgtoswince.c(661) : warning C4013: 'DeleteTimerQueueTimer' undefiniert; Annahme: extern mit Rückgabetyp int
    1>..\..\..\..\Source\tgtoswince.c(1210) : warning C4013: 'DeleteTimerQueue' undefiniert; Annahme: extern mit Rückgabetyp int
    1>..\..\..\..\Source\tgtoswince.c(1327) : warning C4013: 'CreateTimerQueueTimer' undefiniert; Annahme: extern mit Rückgabetyp int
    1>..\..\..\..\Source\tgtoswince.c(1329) : error C2065: 'WAITORTIMERCALLBACK': nichtdeklarierter Bezeichner
    1>..\..\..\..\Source\tgtoswince.c(1329) : error C2146: Syntaxfehler: Fehlendes ')' vor Bezeichner 'TimerCallbackFunc'
    1>..\..\..\..\Source\tgtoswince.c(1404) : error C2061: Syntaxfehler: Bezeichner 'TgtOsAwaitThreadEvents'
    1>..\..\..\..\Source\tgtoswince.c(1404) : error C2059: Syntaxfehler: ';'
    1>..\..\..\..\Source\tgtoswince.c(1404) : error C2059: Syntaxfehler: 'Typ'
    1>..\..\..\..\Source\tgtoswince.c(1499) : error C2065: 'WT_EXECUTEONLYONCE': nichtdeklarierter Bezeichner
    1>..\..\..\..\Source\tgtoswince.c(1510) : error C2065: 'WAITORTIMERCALLBACK': nichtdeklarierter Bezeichner
    1>..\..\..\..\Source\tgtoswince.c(1510) : error C2146: Syntaxfehler: Fehlendes ')' vor Bezeichner 'TimerCallbackFunc'
    1>..\..\..\..\Source\tgtoswince.c(1540) : error C2061: Syntaxfehler: Bezeichner 'TgtOsCloseEventIntern'
    1>..\..\..\..\Source\tgtoswince.c(1540) : error C2059: Syntaxfehler: ';'
    1>..\..\..\..\Source\tgtoswince.c(1540) : error C2059: Syntaxfehler: 'Typ'
    1>TgtThrd.c
    1>TgtTimer.c
    1>INFO: For higher performance applications set TGTWIN_USE_HIGHPERF_TIMER to TRUE!
    1>Code wird generiert...
    1>Kompilieren...
    1>ccmboot.c
    1>Code wird generiert...
    1>Das Buildprotokoll wurde unter "file://d:\Projekte\DevelopVersions\CANopen_V5\Current\Target\NetDCU\WinCE\eVC7\demo_slave\FSVYBRID_WEC7 (ARMv4I)\Debug\BuildLog.htm" gespeichert.
    1>demo_slave - 11 Fehler, 7 Warnung(en)
    ========== Alles neu erstellen: 0 erfolgreich, Fehler bei 1, 0 übersprungen ==========

    So i asked the oem of both boards why the header is missing.

    It was not the first time, that an header was missing in BSP, so his answer to copy the header from WEC13-BSP was not unsual for me. I looked which header includes this in WEC13-BSP and added the #include in the winbase.h

    After trying to build again the pc doesnt catch fire :-)  but i got the following:

    1>------ Erstellen gestartet: Projekt: demo_slave, Konfiguration: Debug NAME_CHANGED_WEC7 (ARMv4I) ------ 1>Kompilieren... 1>CcmDfPdo.c 1>D:\Develop\Software\WINCE700\sdk\NAME_CHANGED_WEC7\include\ARMv4I\tpool.h(45) : error C2143: Syntaxfehler: Es fehlt '{' vor '__cdecl' 1>D:\Develop\Software\WINCE700\sdk\NAME_CHANGED_WEC7\include\ARMv4I\tpool.h(55) : error C2061: Syntaxfehler: Bezeichner 'PTP_POOL' 1>D:\Develop\Software\WINCE700\sdk\NAME_CHANGED_WEC7\include\ARMv4I\tpool.h(55) : error C2146: Syntaxfehler: Fehlendes ')' vor Bezeichner 'ptpp' 1>D:\Develop\Software\WINCE700\sdk\NAME_CHANGED_WEC7\include\ARMv4I\tpool.h(55) : error C2061: Syntaxfehler: Bezeichner 'ptpp' 1>D:\Develop\Software\WINCE700\sdk\NAME_CHANGED_WEC7\include\ARMv4I\tpool.h(55) : error C2059: Syntaxfehler: ';' 1>D:\Develop\Software\WINCE700\sdk\NAME_CHANGED_WEC7\include\ARMv4I\tpool.h(55) : error C2059: Syntaxfehler: ',' 1>D:\Develop\Software\WINCE700\sdk\NAME_CHANGED_WEC7\include\ARMv4I\tpool.h(64) : error C2061: Syntaxfehler: Bezeichner 'PTP_POOL' 1>D:\Develop\Software\WINCE700\sdk\NAME_CHANGED_WEC7\include\ARMv4I\tpool.h(64) : error C2146: Syntaxfehler: Fehlendes ')' vor Bezeichner 'ptpp' 1>D:\Develop\Software\WINCE700\sdk\NAME_CHANGED_WEC7\include\ARMv4I\tpool.h(64) : error C2061: Syntaxfehler: Bezeichner 'ptpp' 1>D:\Develop\Software\WINCE700\sdk\NAME_CHANGED_WEC7\include\ARMv4I\tpool.h(64) : error C2059: Syntaxfehler: ';' 1>D:\Develop\Software\WINCE700\sdk\NAME_CHANGED_WEC7\include\ARMv4I\tpool.h(64) : error C2059: Syntaxfehler: ',' 1>D:\Develop\Software\WINCE700\sdk\NAME_CHANGED_WEC7\include\ARMv4I\tpool.h(73) : error C2061: Syntaxfehler: Bezeichner 'PTP_POOL' 1>D:\Develop\Software\WINCE700\sdk\NAME_CHANGED_WEC7\include\ARMv4I\tpool.h(73) : error C2146: Syntaxfehler: Fehlendes ')' vor Bezeichner 'ptpp' 1>D:\Develop\Software\WINCE700\sdk\NAME_CHANGED_WEC7\include\ARMv4I\tpool.h(73) : error C2061: Syntaxfehler: Bezeichner 'ptpp' 1>D:\Develop\Software\WINCE700\sdk\NAME_CHANGED_WEC7\include\ARMv4I\tpool.h(73) : error C2059: Syntaxfehler: ';' 1>D:\Develop\Software\WINCE700\sdk\NAME_CHANGED_WEC7\include\ARMv4I\tpool.h(73) : error C2059: Syntaxfehler: ',' 1>D:\Develop\Software\WINCE700\sdk\NAME_CHANGED_WEC7\include\ARMv4I\tpool.h(82) : error C2061: Syntaxfehler: Bezeichner 'PTP_POOL' 1>D:\Develop\Software\WINCE700\sdk\NAME_CHANGED_WEC7\include\ARMv4I\tpool.h(82) : error C2146: Syntaxfehler: Fehlendes ')' vor Bezeichner 'ptpp' 1>D:\Develop\Software\WINCE700\sdk\NAME_CHANGED_WEC7\include\ARMv4I\tpool.h(82) : error C2061: Syntaxfehler: Bezeichner 'ptpp' 1>D:\Develop\Software\WINCE700\sdk\NAME_CHANGED_WEC7\include\ARMv4I\tpool.h(82) : error C2059: Syntaxfehler: ';' 1>D:\Develop\Software\WINCE700\sdk\NAME_CHANGED_WEC7\include\ARMv4I\tpool.h(82) : error C2059: Syntaxfehler: ',' 1>D:\Develop\Software\WINCE700\sdk\NAME_CHANGED_WEC7\include\ARMv4I\tpool.h(91) : error C2061: Syntaxfehler: Bezeichner 'PTP_POOL' 1>D:\Develop\Software\WINCE700\sdk\NAME_CHANGED_WEC7\include\ARMv4I\tpool.h(91) : error C2146: Syntaxfehler: Fehlendes ')' vor Bezeichner 'ptpp' 1>D:\Develop\Software\WINCE700\sdk\NAME_CHANGED_WEC7\include\ARMv4I\tpool.h(91) : error C2061: Syntaxfehler: Bezeichner 'ptpp' 1>D:\Develop\Software\WINCE700\sdk\NAME_CHANGED_WEC7\include\ARMv4I\tpool.h(91) : error C2059: Syntaxfehler: ';' 1>D:\Develop\Software\WINCE700\sdk\NAME_CHANGED_WEC7\include\ARMv4I\tpool.h(92) : error C2059: Syntaxfehler: ')' 1>D:\Develop\Software\WINCE700\sdk\NAME_CHANGED_WEC7\include\ARMv4I\tpool.h(97) : error C2143: Syntaxfehler: Es fehlt '{' vor '__cdecl' 1>D:\Develop\Software\WINCE700\sdk\NAME_CHANGED_WEC7\include\ARMv4I\tpool.h(107) : error C2061: Syntaxfehler: Bezeichner 'PTP_CLEANUP_GROUP' 1>D:\Develop\Software\WINCE700\sdk\NAME_CHANGED_WEC7\include\ARMv4I\tpool.h(107) : error C2146: Syntaxfehler: Fehlendes ')' vor Bezeichner 'ptpcg' 1>D:\Develop\Software\WINCE700\sdk\NAME_CHANGED_WEC7\include\ARMv4I\tpool.h(107) : error C2061: Syntaxfehler: Bezeichner 'ptpcg' 1>D:\Develop\Software\WINCE700\sdk\NAME_CHANGED_WEC7\include\ARMv4I\tpool.h(107) : error C2059: Syntaxfehler: ';' 1>D:\Develop\Software\WINCE700\sdk\NAME_CHANGED_WEC7\include\ARMv4I\tpool.h(107) : error C2059: Syntaxfehler: ',' 1>D:\Develop\Software\WINCE700\sdk\NAME_CHANGED_WEC7\include\ARMv4I\tpool.h(117) : error C2061: Syntaxfehler: Bezeichner 'PTP_CLEANUP_GROUP' 1>D:\Develop\Software\WINCE700\sdk\NAME_CHANGED_WEC7\include\ARMv4I\tpool.h(117) : error C2146: Syntaxfehler: Fehlendes ')' vor Bezeichner 'ptpcg' 1>D:\Develop\Software\WINCE700\sdk\NAME_CHANGED_WEC7\include\ARMv4I\tpool.h(117) : error C2061: Syntaxfehler: Bezeichner 'ptpcg' 1>D:\Develop\Software\WINCE700\sdk\NAME_CHANGED_WEC7\include\ARMv4I\tpool.h(117) : error C2059: Syntaxfehler: ';' 1>D:\Develop\Software\WINCE700\sdk\NAME_CHANGED_WEC7\include\ARMv4I\tpool.h(118) : error C2059: Syntaxfehler: ')' 1>D:\Develop\Software\WINCE700\sdk\NAME_CHANGED_WEC7\include\ARMv4I\tpool.h(125) : error C2061: Syntaxfehler: Bezeichner 'PTP_CALLBACK_INSTANCE' 1>D:\Develop\Software\WINCE700\sdk\NAME_CHANGED_WEC7\include\ARMv4I\tpool.h(125) : error C2146: Syntaxfehler: Fehlendes ')' vor Bezeichner 'pci' 1>D:\Develop\Software\WINCE700\sdk\NAME_CHANGED_WEC7\include\ARMv4I\tpool.h(125) : error C2061: Syntaxfehler: Bezeichner 'pci' 1>D:\Develop\Software\WINCE700\sdk\NAME_CHANGED_WEC7\include\ARMv4I\tpool.h(125) : error C2059: Syntaxfehler: ';' 1>D:\Develop\Software\WINCE700\sdk\NAME_CHANGED_WEC7\include\ARMv4I\tpool.h(125) : error C2059: Syntaxfehler: ','

    ....and so on

    1>Code wird generiert... 1>Das Buildprotokoll wurde unter "file://d:\Projekte\DevelopVersions\CANopen_V5\Current\Target\NetDCU\WinCE\eVC7\demo_slave\NAME_CHANGED_WEC7 (ARMv4I)\Debug\BuildLog.htm" gespeichert. 1>demo_slave - 2040 Fehler, 0 Warnung(en) ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========


    Regards

    Ralf

    Wednesday, January 16, 2019 5:14 PM