This is another cortex-A/M change
========================

There are multiple “dap” data structures in a few places - and there are 
pointers to them in others.

This is problematic if there are multiple users of the same DAP 
        For example a Cortex A and Cortex M …

Example - There is a member variable:

                ptrDAP->ap_current

That indicates which AP is currently selected on the DAP

Problem:
        If there are multiple CPUs - i.e.: Cotex M and Cortex A  that use the 
same DAP
        Currently the M and A have private copies of the DAP structure :-(

        They all need to share the same DAP structure 
        Otherwise the two DAP structures will be inconsistent 

Proposal:
        Remove the DAP structure from current place.

        In the “TAP” structure - add a “DAP” pointer
        If the DAP is present - the pointer is not NULL

        Thus, the dap would be defined as:

                ptrTARGET->tap->ptrDAP

This is a messy change - that touches a lot of things and there are multiple 
access points for this in many places.

ie: in the cortex_a code you will see/find many example of this sequence:

        struct arm7a_common *arm7a = target_to_armv7a(target);
        struct adiv5_dap *swjdp = armv7a->arm.dap;

Would be come:
        
        struct adiv5_dap *swjdp = target_to_dap( target );

-Duane.


------------------------------------------------------------------------------
"Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
Instantly run your Selenium tests across 300+ browser/OS combos.  Get 
unparalleled scalability from the best Selenium testing platform available.
Simple to use. Nothing to install. Get started now for free."
http://p.sf.net/sfu/SauceLabs
_______________________________________________
OpenOCD-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openocd-devel

Reply via email to