EPIT registers not accessed by C code at runtime

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

EPIT registers not accessed by C code at runtime

2,071 次查看
abhijeet_ghodga
Contributor III

Hi,

I am programming EPIT1 registers 20D_0000 to 20D_0010 using memtools in the Linux OS on my imx6 board. After programming them, I want to access the value of the counter at run-time using C code.

Currently, I have created a memory pointer that gets the entire memory block from 20DXXXX address and then compares if some specific count value has been reached.

The error that I am getting is:

ERROR: Unhandled fault: external abort on non-linefetch (0x1818)

My doubt is that the way of declaring the memory pointer (using page_mask and page_size) must be wrong? What is the correct way of accessing EPIT registers using C pointers? What is the general calculations done in allocating a memory block to the pointer via mmap?

Best,

Abhijeet

标签 (1)
5 回复数

1,967 次查看
shaojun_wang
NXP Employee
NXP Employee

Attached is an example to configure EPIT.

1,967 次查看
abhijeet_ghodga
Contributor III

Hi,

I have enabled EPIT registers, and written a C application code, that creates a memory pointer and accesses control and count register. Currently, the issue I am facing is of interrupt handling.

Studying your patch on epit.c, there are some RAM write functions and irq calls. Since, epit.c is in the kernel level, I will have to modify the kernel. Is there a way to implement the RAM write functions and irq calls, into an application code, that can be cross-compiled into an exe.

Best,

Abhijeet

0 项奖励
回复

1,967 次查看
igorpadykov
NXP Employee
NXP Employee

Hi Abhijeet

epit may be used by linux system timer as described in sect.2.1.3.2 Timer Features

attached Linux Manual.

Best regards
igor

0 项奖励
回复

1,967 次查看
igorpadykov
NXP Employee
NXP Employee

Hi Abhijeet

 linux uses mmu and one can look at memtool example function map_address()

memtool.c\memtool\test - imx-test - i.MX Driver Test Application Software 

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

1,967 次查看
abhijeet_ghodga
Contributor III

Hi Igor,

I am already using memtools to access the EPIT registers, I run the memtools script from my C file exe, so everytime I run the exe, the registers are set, and the downcounter starts.

I am unable to get access to the OCIF or the interrupt of the EPIT Timer through the C code.

Best,

Abhijeet

0 项奖励
回复