Fixes to compile OVP platform + bugfix in statreg
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1144 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
This commit is contained in:
@ -35,8 +35,10 @@ set(HOST_LDFLAGS "-Wl,--version-script=$ENV{IMPERAS_HOME}/ImperasLib/source/buil
|
||||
set(SIM_LDFLAGS $ENV{IMPERAS_HOME}/bin/$ENV{IMPERAS_ARCH}/libRuntimeLoader.so)
|
||||
|
||||
|
||||
include_directories(${CMAKE_SOURCE_DIR}/fail)
|
||||
include_directories(${CMAKE_BINARY_DIR}/fail)
|
||||
include_directories(${CMAKE_SOURCE_DIR})
|
||||
include_directories(${CMAKE_SOURCE_DIR}/core)
|
||||
include_directories(${CMAKE_BINARY_DIR})
|
||||
include_directories(${CMAKE_BINARY_DIR}/core)
|
||||
include_directories($ENV{IMPERAS_HOME}/ImpPublic/include/host)
|
||||
|
||||
#add_subdirectory(ovpworld.org/mmc/flakyMemory/1.0/model)
|
||||
@ -48,6 +50,6 @@ ExternalProject_Add(
|
||||
OVParmmModel
|
||||
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/armmModel
|
||||
INSTALL_COMMAND ""
|
||||
CMAKE_ARGS -DFAIL_BASE=${CMAKE_SOURCE_DIR}/fail -DLIBRARY_OUTPUT_PATH=${LIBRARY_OUTPUT_PATH}
|
||||
CMAKE_ARGS -DFAIL_BASE=${CMAKE_SOURCE_DIR} -DLIBRARY_OUTPUT_PATH=${LIBRARY_OUTPUT_PATH}
|
||||
)
|
||||
|
||||
|
||||
@ -13,7 +13,7 @@ class OVPStatusRegister : public sal::OVPRegister {
|
||||
|
||||
public:
|
||||
OVPStatusRegister(uint32_t width, void *link)
|
||||
: sal::OVPRegister(width, link, sal::RT_ST) { }
|
||||
: sal::OVPRegister(width, 32, link, sal::RT_ST) { }
|
||||
~OVPStatusRegister() {}
|
||||
|
||||
virtual bool getSignFlag() const = 0;
|
||||
|
||||
@ -19,9 +19,8 @@ set(HOST_LDFLAGS "-Wl,--version-script=$ENV{IMPERAS_HOME}/ImperasLib/source/buil
|
||||
## This is needed by a platform executable
|
||||
set(SIM_LDFLAGS $ENV{IMPERAS_HOME}/bin/$ENV{IMPERAS_ARCH}/libRuntimeLoader.so)
|
||||
|
||||
|
||||
|
||||
message(STATUS "Fail* base dir included: ${FAIL_BASE}")
|
||||
message(STATUS "Library output path: ${LIBRARY_OUTPUT_PATH}")
|
||||
include_directories(${FAIL_BASE})
|
||||
include_directories($ENV{IMPERAS_HOME}/ImpPublic/include/host)
|
||||
|
||||
@ -86,12 +85,13 @@ set(SRCS
|
||||
armVFP.h
|
||||
armVM.h
|
||||
)
|
||||
add_definitions("-m32")
|
||||
add_definitions("-m32 ${IMPERAS_VMIINC}")
|
||||
message(STATUS "armmModel ld flags: ${HOST_LDFLAGS}")
|
||||
add_library(armmModel SHARED ${SRCS})
|
||||
|
||||
|
||||
#add_dependencies(armmModel SAL)
|
||||
set_target_properties(armmModel PROPERTIES LINK_FLAGS "${HOST_LDFLAGS} -m32")
|
||||
set_target_properties(armmModel PROPERTIES LINK_FLAGS "${HOST_LDFLAGS} -m32")# -L${CMAKE_BINARY_DIR}/lib -lSAL")
|
||||
|
||||
#target_link_libraries(armmModel ${IMPERAS_VMISTUBS} ${LIBRARY_OUTPUT_PATH}/libSAL.a)
|
||||
target_link_libraries(armmModel ${IMPERAS_VMISTUBS})
|
||||
|
||||
@ -1,12 +1,12 @@
|
||||
#include <iostream>
|
||||
#include "SAL/SimulatorController.hpp"
|
||||
//#include "SAL/SimulatorController.hpp"
|
||||
|
||||
using namespace std;
|
||||
|
||||
|
||||
void hello(unsigned int p){
|
||||
cout << "&sal::simulator: " << hex << p << endl;
|
||||
sal::SimulatorController * salp = reinterpret_cast<sal::SimulatorController * >(p);
|
||||
// sal::SimulatorController * salp = reinterpret_cast<sal::SimulatorController * >(p);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -12,4 +12,4 @@ add_dependencies(ovp_cortexM3 protomessages )
|
||||
|
||||
target_link_libraries(ovp_cortexM3 ${SIM_LDFLAGS} SAL controller jobserver util )
|
||||
## OVP links all needed shared libraries via a runtimeloader
|
||||
set_target_properties(ovp_cortexM3 PROPERTIES LINK_FLAGS "-L${CMAKE_BINARY_DIR}/lib -lfail -lpcl -m32 ")
|
||||
set_target_properties(ovp_cortexM3 PROPERTIES LINK_FLAGS "-L${CMAKE_BINARY_DIR}/lib -lpcl -m32 ")
|
||||
|
||||
@ -356,7 +356,7 @@ int main(int argc, char **argv) {
|
||||
arm.makeSTRegister();
|
||||
arm.makePCRegister();
|
||||
|
||||
sal::simulator.finishedRegisterCreation();
|
||||
// sal::simulator.finishedRegisterCreation();
|
||||
|
||||
arm.startSimulation(argv[1]);
|
||||
}
|
||||
|
||||
@ -53,6 +53,8 @@ class CortexM3StatusRegister : public OVPStatusRegister {
|
||||
// OR with 0x00010000 (e.g.)
|
||||
val = val | bit;
|
||||
}
|
||||
|
||||
icmWriteRegInfoValue(cpuP, cpsr, (void *)&val);
|
||||
}
|
||||
|
||||
bool getSignFlag() const {
|
||||
|
||||
Reference in New Issue
Block a user