|
EBST_CAM
|
All the low level platform specific implementations for interacting with the Stresing PCIe board. More...
#include <stdint.h>#include "globals.h"#include "../shared_src/es_status_codes.h"#include "lscpciej/lscpciej.h"Go to the source code of this file.
Macros | |
| #define | ES_LOG(...) |
| #define | ES_TRACE(...) |
Functions | |
| es_status_codes | checkDriverHandle (uint32_t drvno) |
| es_status_codes | readRegister_32 (uint32_t drvno, uint32_t *data, uint32_t address) |
| Reads 4 bytes on DMA area. | |
| es_status_codes | readRegister_16 (uint32_t drvno, uint16_t *data, uint32_t address) |
| Reads long on DMA area. | |
| es_status_codes | readRegister_8 (uint32_t drvno, uint8_t *data, uint32_t address) |
| Read byte (8 bit) from register of PCIe board, except r10-r1f. | |
| es_status_codes | writeRegister_32 (uint32_t drvno, uint32_t data, uint32_t address) |
| Writes 32 bits (4 bytes) to register. | |
| es_status_codes | writeRegister_16 (uint32_t drvno, uint16_t data, uint32_t address) |
| Writes 16 bits (2 bytes) to register. | |
| es_status_codes | writeRegister_8 (uint32_t drvno, uint8_t data, uint32_t address) |
| Write byte (8 bit) to register in space0 of PCIe board, except r10-r1f. | |
| es_status_codes | readConfig_32 (uint32_t drvno, uint32_t *data, uint32_t address) |
| Read long (32 bit) from runtime register of PCIe board. | |
| es_status_codes | writeConfig_32 (uint32_t drvno, uint32_t data, uint32_t address) |
| Write long (32 bit) to register in space0 of PCIe board. | |
| es_status_codes | FreeMemInfo (uint64_t *pmemory_all, uint64_t *pmemory_free) |
| Get the free and installed memory info. | |
| es_status_codes | SetupDma (uint32_t drvno) |
| Allocate DMA buffer - should only be called once. | |
| es_status_codes | enableInterrupt (uint32_t drvno) |
| Enable interrupt. | |
| es_status_codes | disableInterrupt (uint32_t drvno) |
| Disable interrupt. | |
| uint64_t | getPhysicalDmaAddress (uint32_t drvno) |
| void | ResetBufferWritePos (uint32_t drvno) |
| Reset the buffer write pointers and software ISR counter. | |
| void | copyRestData (uint32_t drvno, size_t rest_in_bytes) |
| DMA copies in blocks of dmaBufferSizeInWords/DMA_BUFFER_PARTS - the rest is copied here. | |
| es_status_codes | _InitBoard (uint32_t drvno) |
| Initializes PCIe board on a platform specific way. | |
| es_status_codes | _InitDriver (uint8_t *_number_of_boards) |
| Windows specific function for initializing driver. | |
| es_status_codes | _ExitDriver () |
| Exit driver. Call this after Cleanup driver. | |
| es_status_codes | CleanupDriver (uint32_t drvno) |
| Cleanup driver. Call this before Exit driver. | |
| es_status_codes | StartCopyDataToUserBufferThread (uint32_t drvno) |
| Start thread which polls DMA buffer to user buffer when software polling is used. | |
| uint16_t | checkEscapeKeyState () |
| Check if escape key was pressed. | |
| uint16_t | checkSpaceKeyState () |
| Check if space key was pressed. | |
| es_status_codes | InitMutex (uint32_t drvno) |
| Initialize mutexes for register read/write. | |
| es_status_codes | SetPriority () |
| Set thread to high priority level. | |
| es_status_codes | ResetPriority () |
| Reset thread priority to normal. | |
| uint16_t * | getVirtualDmaAddress (uint32_t drvno) |
| Get the virtual address of the DMA buffer. | |
| uint32_t | getDmaBufferSizeInBytes (uint32_t drvno) |
| Get the size of the DMA buffer in bytes. | |
| int64_t | getCurrentInterruptCounter (uint32_t drvno) |
| Get the current interrupt counter. | |
| uint8_t | WaitforTelapsed (int64_t microseconds) |
| This functions returns after a time given in microseconds. The time is measured in CPU ticks. The function is escapable by pressing ESC. | |
| es_status_codes | SaveMeasurementDataToFileBIN (const char *filename) |
| Export the measurement data to a binary file. | |
| es_status_codes | CopyFromFileToUserBufferBIN (const char *filename) |
| Import measurement data from binary file to user buffer. | |
| void | openFile (uint32_t drvno) |
| Open a file or create it for writing measurement data. | |
| void | closeFile (uint32_t drvno) |
| Close the file. | |
| void | setTimestamp () |
| Set the start timestamp that is used for file name and file header. | |
| void | writeFileHeaderToFile (uint32_t drvno) |
| Creates a file at filename_full and writes struct file_header to it. | |
| void | writeToDisc (uint32_t *drvno_ptr) |
| Thread function which writes data from user buffer to disc. | |
| void | startWriteToDiscThead (uint32_t drvno) |
| Start thread which writes data from user buffer to disc. | |
| void | VerifyData (struct verify_data_parameter *vd) |
| Check a file for its data consistency. | |
| void | getFileHeaderFromFile (struct file_header *fh, const char *filename_full) |
| Open the file at filename_full and write the header to fh. | |
| void | Start2dViewer (uint32_t drvno, uint32_t block, uint16_t camera, uint16_t pixel, uint32_t nos) |
| Start 2d viewer. | |
| void | ShowNewBitmap (uint32_t drvno, uint32_t block, uint16_t camera, uint16_t pixel, uint32_t nos) |
| Update the displayed bitmap. | |
| void | Deinit2dViewer () |
| Call when closing 2d viewer or at least before opening a new 2d viewer. | |
| void | SetGammaValue (uint16_t white, uint16_t black) |
| Set gamma value. | |
| uint16_t | GetGammaWhite () |
| return gamma value white | |
| uint16_t | GetGammaBlack () |
| return gamma value black | |
| void | WaitForAllInterruptsDone () |
| Wait until all interrupts are done or timeout occurs. | |
| void | LockHighLevelMutex (uint32_t drvno) |
| Lock the mutex for register read/write. | |
| void | UnlockHighLevelMutex (uint32_t drvno) |
| Unlock the mutex for register read/write. | |
| int64_t | GetTimestampInMicroseconds () |
| Get the current timestamp in microseconds. | |
| int64_t | GetTimestampInMilliseconds () |
| Get the current timestamp in milliseconds. | |
| void | initPerformanceCounter () |
| Initialize performance counter for high resolution timing. | |
| int64_t | GetTimestampInTicks () |
| Get the current timestamp in ticks. | |
| int64_t | ConvertTicksToMicroseconds (int64_t ticks) |
| Translate ticks to microseconds. | |
| es_status_codes | About (uint32_t board_sel) |
| Display information about registers and settings in pop up windows. | |
| es_status_codes | AboutDrv (uint32_t drvno) |
| Shows window with infos about the PCIe board. | |
| es_status_codes | AboutGPX (uint32_t drvno) |
| Reads registers 0 to 12 of TDC-GPX chip. Time delay counter option. | |
| es_status_codes | AboutS0 (uint32_t drvno) |
| Read registers of space0. Space0 are the control registers of the PCIe board. | |
| es_status_codes | AboutTLPs (uint32_t drvno) |
| es_status_codes | AboutPCI (uint32_t drvno) |
| Read registers of PCIe config space. | |
| es_status_codes | AboutMeasurementSettings () |
| Show measurement settings in a message box. | |
| es_status_codes | AboutCameraSettings (uint32_t drvno) |
| Show camera settings in a message box. | |
| void | ErrMsgBoxOn () |
| Switch on error message boxes of our software. Default is On. | |
| void | ErrMsgBoxOff () |
| Disable error message boxes, if not needed. | |
| void | ErrorMsg (char ErrMsg[100]) |
| Display error message. If ErrMsgBoxOn is set. | |
| void | ValMsg (uint64_t val) |
| Simple display of unsigned integer as error message for test purpose. | |
Variables | |
| bool | _SHOW_MSG |
All the low level platform specific implementations for interacting with the Stresing PCIe board.
| #define ES_LOG | ( | ... | ) |
| #define ES_TRACE | ( | ... | ) |
| es_status_codes _ExitDriver | ( | ) |
Exit driver. Call this after Cleanup driver.
| es_status_codes _InitBoard | ( | uint32_t | drvno | ) |
Initializes PCIe board on a platform specific way.
| [in] | drvno | PCIe board identifier. |
| es_status_codes _InitDriver | ( | uint8_t * | _number_of_boards | ) |
Windows specific function for initializing driver.
| [out] | _number_of_boards | Pointer to number of boards found. |
| es_status_codes About | ( | uint32_t | board_sel | ) |
Display information about registers and settings in pop up windows.
| es_status_codes AboutCameraSettings | ( | uint32_t | drvno | ) |
Show camera settings in a message box.
| [in] | drvno | PCIe board identifier. |
| es_status_codes AboutDrv | ( | uint32_t | drvno | ) |
Shows window with infos about the PCIe board.
| drvno | board number (=1 if one PCI board) |
| es_status_codes AboutGPX | ( | uint32_t | drvno | ) |
Reads registers 0 to 12 of TDC-GPX chip. Time delay counter option.
| drvno | PCIe board identifier |
| es_status_codes AboutMeasurementSettings | ( | ) |
Show measurement settings in a message box.
| es_status_codes AboutPCI | ( | uint32_t | drvno | ) |
Read registers of PCIe config space.
| [in] | drvno | PCIe board identifier. |
| es_status_codes AboutS0 | ( | uint32_t | drvno | ) |
Read registers of space0. Space0 are the control registers of the PCIe board.
| drvno | PCIe board identifier |
| es_status_codes AboutTLPs | ( | uint32_t | drvno | ) |
| [in] | drvno | PCIe board identifier. |
| es_status_codes checkDriverHandle | ( | uint32_t | drvno | ) |
| uint16_t checkEscapeKeyState | ( | ) |
Check if escape key was pressed.
| uint16_t checkSpaceKeyState | ( | ) |
Check if space key was pressed.
| es_status_codes CleanupDriver | ( | uint32_t | drvno | ) |
Cleanup driver. Call this before Exit driver.
| [in] | drvno | PCIe board identifier. |
| void closeFile | ( | uint32_t | drvno | ) |
Close the file.
| [in] | drvno | PCIe board identifier. |
| int64_t ConvertTicksToMicroseconds | ( | int64_t | ticks | ) |
Translate ticks to microseconds.
| [in] | ticks | ticks of system timer |
| es_status_codes CopyFromFileToUserBufferBIN | ( | const char * | filename | ) |
Import measurement data from binary file to user buffer.
| [in] | filename | Filename with complete absolute path. |
| void copyRestData | ( | uint32_t | drvno, |
| size_t | rest_in_bytes ) |
DMA copies in blocks of dmaBufferSizeInWords/DMA_BUFFER_PARTS - the rest is copied here.
| [in] | drvno | PCIe board identifier. |
| rest_in_bytes | bytes which were not copied by INTR. |
| void Deinit2dViewer | ( | ) |
Call when closing 2d viewer or at least before opening a new 2d viewer.
| es_status_codes disableInterrupt | ( | uint32_t | drvno | ) |
| es_status_codes enableInterrupt | ( | uint32_t | drvno | ) |
| void ErrMsgBoxOff | ( | ) |
Disable error message boxes, if not needed.
| void ErrMsgBoxOn | ( | ) |
Switch on error message boxes of our software. Default is On.
| void ErrorMsg | ( | char | ErrMsg[100] | ) |
Display error message. If ErrMsgBoxOn is set.
| [in] | ErrMsg | Message. Buffer size: 100. |
| es_status_codes FreeMemInfo | ( | uint64_t * | pmemory_all, |
| uint64_t * | pmemory_free ) |
Get the free and installed memory info.
| [out] | pmemory_all | how much is installed |
| [out] | pmemory_free | how much is free |
| int64_t getCurrentInterruptCounter | ( | uint32_t | drvno | ) |
Get the current interrupt counter.
When measurement_cnt is greater than 1, that means measurement is running in a loop, return number of interrupts, because the last interrupt was the maximum number of interrupts, when the IsrCounter is 0.
| [in] | drvno | PCIe board identifier. |
| uint32_t getDmaBufferSizeInBytes | ( | uint32_t | drvno | ) |
Get the size of the DMA buffer in bytes.
| [in] | drvno | PCIe board identifier. |
| void getFileHeaderFromFile | ( | struct file_header * | fh, |
| const char * | filename_full ) |
Open the file at filename_full and write the header to fh.
| fh | struct file_header* |
| filename_full | Path and file name to the file. |
| uint16_t GetGammaBlack | ( | ) |
return gamma value black
| uint16_t GetGammaWhite | ( | ) |
return gamma value white
| uint64_t getPhysicalDmaAddress | ( | uint32_t | drvno | ) |
| int64_t GetTimestampInMicroseconds | ( | ) |
Get the current timestamp in microseconds.
| int64_t GetTimestampInMilliseconds | ( | ) |
Get the current timestamp in milliseconds.
| int64_t GetTimestampInTicks | ( | ) |
Get the current timestamp in ticks.
| uint16_t * getVirtualDmaAddress | ( | uint32_t | drvno | ) |
Get the virtual address of the DMA buffer.
| [in] | drvno | PCIe board identifier. |
| es_status_codes InitMutex | ( | uint32_t | drvno | ) |
Initialize mutexes for register read/write.
| [in] | drvno | PCIe board identifier. |
| void initPerformanceCounter | ( | ) |
Initialize performance counter for high resolution timing.
This function must be called once before using GetTimestampInTicks.
| void LockHighLevelMutex | ( | uint32_t | drvno | ) |
Lock the mutex for register read/write.
| [in] | drvno | PCIe board identifier. |
| void openFile | ( | uint32_t | drvno | ) |
Open a file or create it for writing measurement data.
| [in] | drvno | PCIe board identifier. |
| es_status_codes readConfig_32 | ( | uint32_t | drvno, |
| uint32_t * | data, | ||
| uint32_t | address ) |
Read long (32 bit) from runtime register of PCIe board.
This function reads the memory mapped data , not the I/O Data. Reads data from PCIe config space.
| [in] | drvno | board number (=1 if one PCI board) |
| [out] | data | pointer to where data is stored |
| [in] | address | offset of register (count in bytes) |
| es_status_codes readRegister_16 | ( | uint32_t | drvno, |
| uint16_t * | data, | ||
| uint32_t | address ) |
Reads long on DMA area.
| [in] | drvno | PCIe board identifier |
| [out] | data | buffer for data |
| [in] | address | Offset from BaseAdress - in Bytes ! 0..3= Regs of Board. |
| es_status_codes readRegister_32 | ( | uint32_t | drvno, |
| uint32_t * | data, | ||
| uint32_t | address ) |
Reads 4 bytes on DMA area.
| [in] | drvno | PCIe board identifier |
| [out] | data | buffer for data |
| [in] | address | Offset from BaseAdress - in Bytes ! 0..3= Regs of Board. |
| es_status_codes readRegister_8 | ( | uint32_t | drvno, |
| uint8_t * | data, | ||
| uint32_t | address ) |
Read byte (8 bit) from register of PCIe board, except r10-r1f.
| [in] | drvno | board number (=0 if one PCI board) |
| [out] | data | pointer to where data is stored |
| [in] | address | offset of register from base address (count in bytes) |
| void ResetBufferWritePos | ( | uint32_t | drvno | ) |
Reset the buffer write pointers and software ISR counter.
| [in] | drvno | PCIe board identifier. |
| es_status_codes ResetPriority | ( | ) |
Reset thread priority to normal.
| es_status_codes SaveMeasurementDataToFileBIN | ( | const char * | filename | ) |
Export the measurement data to a binary file.
| [in] | filename | Filename with complete absolute path. |
| void SetGammaValue | ( | uint16_t | white, |
| uint16_t | black ) |
Set gamma value.
| [in] | white | set value for maximum brightness. Default: 0xFFFF (16 bit), 0x3FFF (14 bit) |
| [in] | black | set value for minimum brightness. Default: 0 |
| es_status_codes SetPriority | ( | ) |
Set thread to high priority level.
| void setTimestamp | ( | ) |
Set the start timestamp that is used for file name and file header.
| es_status_codes SetupDma | ( | uint32_t | drvno | ) |
Allocate DMA buffer - should only be called once.
Gets address of DMASubBuf from driver and copy it later to our pDMABigBuf.
| [in] | drvno | PCIe board identifier. |
| void ShowNewBitmap | ( | uint32_t | drvno, |
| uint32_t | block, | ||
| uint16_t | camera, | ||
| uint16_t | pixel, | ||
| uint32_t | nos ) |
Update the displayed bitmap.
| [in] | drvno | board number |
| [in] | block | current number of blocks |
| [in] | camera | which camera to display (when camcnt is >1) |
| [in] | pixel | count of pixel of one line |
| [in] | nos | samples in one block |
| void Start2dViewer | ( | uint32_t | drvno, |
| uint32_t | block, | ||
| uint16_t | camera, | ||
| uint16_t | pixel, | ||
| uint32_t | nos ) |
Start 2d viewer.
| [in] | drvno | board number |
| [in] | block | current number of block |
| [in] | camera | which camera to display (when camcnt is >1) |
| [in] | pixel | count of pixel of one line |
| [in] | nos | samples in one block |
| es_status_codes StartCopyDataToUserBufferThread | ( | uint32_t | drvno | ) |
Start thread which polls DMA buffer to user buffer when software polling is used.
| [in] | drvno | PCIe board identifier. |
| void startWriteToDiscThead | ( | uint32_t | drvno | ) |
Start thread which writes data from user buffer to disc.
| [in] | drvno | PCIe board identifier. |
| void UnlockHighLevelMutex | ( | uint32_t | drvno | ) |
Unlock the mutex for register read/write.
| [in] | drvno | PCIe board identifier. |
| void ValMsg | ( | uint64_t | val | ) |
Simple display of unsigned integer as error message for test purpose.
| [in] | val | unsigned integer 64 bit |
| void VerifyData | ( | struct verify_data_parameter * | vd | ) |
Check a file for its data consistency.
| vd | see struct verify_data_parameter in globals.h for details |
| void WaitForAllInterruptsDone | ( | ) |
Wait until all interrupts are done or timeout occurs.
| uint8_t WaitforTelapsed | ( | int64_t | microseconds | ) |
This functions returns after a time given in microseconds. The time is measured in CPU ticks. The function is escapable by pressing ESC.
| [in] | microseconds | Time to wait in microseconds. |
| es_status_codes writeConfig_32 | ( | uint32_t | drvno, |
| uint32_t | data, | ||
| uint32_t | address ) |
Write long (32 bit) to register in space0 of PCIe board.
| [in] | drvno | board number (=1 if one PCI board) |
| [in] | data | long value to write |
| [in] | address | offset from base address of register (count in bytes) |
| void writeFileHeaderToFile | ( | uint32_t | drvno | ) |
Creates a file at filename_full and writes struct file_header to it.
| [in] | drvno | PCIe board identifier. |
| es_status_codes writeRegister_16 | ( | uint32_t | drvno, |
| uint16_t | data, | ||
| uint32_t | address ) |
Writes 16 bits (2 bytes) to register.
| [in] | drvno | PCIe board identifier. |
| [in] | data | data to write |
| [in] | address | Register offset from BaseAdress - in bytes |
| es_status_codes writeRegister_32 | ( | uint32_t | drvno, |
| uint32_t | data, | ||
| uint32_t | address ) |
Writes 32 bits (4 bytes) to register.
| [in] | drvno | PCIe board identifier. |
| [in] | data | data to write |
| [in] | address | Register offset from BaseAdress - in bytes |
| es_status_codes writeRegister_8 | ( | uint32_t | drvno, |
| uint8_t | data, | ||
| uint32_t | address ) |
Write byte (8 bit) to register in space0 of PCIe board, except r10-r1f.
| [in] | drvno | board number (=1 if one PCI board) |
| [in] | data | byte value to write |
| [in] | address | Offset from BaseAdress of register (count in bytes) |
| void writeToDisc | ( | uint32_t * | drvno_ptr | ) |
Thread function which writes data from user buffer to disc.
| [in] | drvno_ptr | Pointer to PCIe board identifier. |
|
extern |