I've been working for several weeks now with an OMAP-L138 EVM kit and am trying desperately to get a code-set to do something I can measure, specifically turn on/off one of the user LEDs. So far, I've been spectacularly unsuccessful at this. I've taken several avenues, none yet have yielded results:
1. I have a basic chardev kernel driver that takes command buffers from a user-level application. I'd like to light the LED every time I process a driver command to see what the turn-around time is between USER and KERNEL space. I've pulled in some code from the GPIO example code provided with the EVM starter kit: .../OMAP_L138_arm_1_00_00_06/DaVinci-PSP-SDK-03.20.00.06/src/examples/examples-03.20.00.06/gpio, and my kernel driver can read the state of S7-P8, but can't find the "memory map" to find the corresponding bit position of the USER_LED.
2. I have followed the directions for building the SDK and have successfully run the "loop" example 10,000 times.
http://tiexpressdsp.com/index.php/Building_The_OMAP-L137_SDK
It took about 17 seconds to run (hand-measured with stopwatch), saying it takes about 1.7ms to turn a DSP-Link message around from the ARM to the DSP and back. Not sure if that is good or bad. I'd like to be able to steal some of the source from the PC-side LED-DIP example:
C:\CCStudio_v3.3\boards\evmomapl138_v1\tests\experimenter\led_dip
so that I can turn the LED On or Off in the DSP loop code whenever it processes a message to get a better picture of the min/avg/max timing of the loop, but the header files and LED access methods (I2C/GPIO) don't seem to be present on the Linux-based DSP code.
3. The only mechanism I have been able to use to toggle the LED is the CCStudio LED-DIP example (above) running directly from CCS. This does very little except give me a "control" data point of the absolute fastest LED control available in an isolated system.
Long story short: I'm stuck. I'd like to be able to access the User LEDs directly from the following three places:
Linux-Based User-App
Linux-Based Kernel Driver
DSP-Link-spawned DSP code (i.e., from the DSP code that is downloaded by the ARM Linux loop code)
Further, does a high-level programmer's memory map for the EVM I/O exist for each platform? Either that, or a high-level guide to the header files to start investigating to find the answers?