SYSPAGE

您所在的位置:网站首页 qtime头文件 SYSPAGE

SYSPAGE

2024-07-14 08:21| 来源: 网络整理| 查看: 265

Return an entry from the system page

Synopsis: #include #define SYSPAGE_ENTRY( entry )... Arguments: entry The entry to get; see below. Description:

The SYSPAGE_ENTRY() macro returns a pointer to the specified entry in the system page. For more information, see the System Page chapter of Building Embedded Systems.

The best way to reference the system page is via the kernel calls and POSIX cover functions. If there isn't a function to access the information you need, use SYSPAGE_ENTRY() instead of referencing the _syspage_ptr variable directly. For information in the CPU-specific part of the syspage_entry structure, use SYSPAGE_CPU_ENTRY().

The entries you're likely to access with SYSPAGE_ENTRY() include:

cpuinfo Information that's specific to the CPU. For example, to determine if the processor supports NEON technology, a 128-bit SIMD (Single Instruction, Multiple Data) architecture extension to the ARM Cortex-A series processor, do the following: if (SYSPAGE_ENTRY(cpuinfo)->flags & ARM_CPU_FLAG_NEON) qtime QNX-specific time information. The qtime_entry structure contains at least the following members: unsigned long boot_time — the time, in seconds, since the Unix Epoch (00:00:00 January 1, 1970 Coordinated Universal Time (UTC)) when this system was booted.

If you call ClockTime() to set the time of day, the kernel checks to see if this field is zero. If it is, the kernel sets it to the appropriate value. There's a -T option for all startup programs that prevents the setting of this field, so that the kernel will set it the first time you call ClockTime() to change the time of day. This is useful if the RTC hardware isn't in UTC.

uint64_t cycles_per_sec — the number of ClockCycles() increments per second for this system. Returns:

A pointer to the structure for the given entry.

Examples: #include #include #include #include #include int main( void ) { uint64_t cps, cycle1, cycle2, ncycles; double sec; /* snap the time */ cycle1=ClockCycles( ); /* do something */ printf("Hello!\n"); /* snap the time again */ cycle2=ClockCycles( ); ncycles=cycle2-cycle1; printf("%lld cycles elapsed.\n", ncycles); /* find out how many cycles per second */ cps = SYSPAGE_ENTRY(qtime)->cycles_per_sec; printf( "This system has %lld cycles/sec.\n",cps ); sec=(double)ncycles/cps; printf("The cycles in seconds is %f.\n",sec); return EXIT_SUCCESS; } Classification:

QNX Neutrino

Safety:   Cancellation point No Interrupt handler Yes Signal handler Yes Thread Yes Caveats:

SYSPAGE_ENTRY() is a macro.



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3