add ARM11
This commit is contained in:
13
ports/arm11/iar/example_build/azure_rtos.eww
Normal file
13
ports/arm11/iar/example_build/azure_rtos.eww
Normal file
@@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
|
||||
<workspace>
|
||||
<project>
|
||||
<path>$WS_DIR$\sample_threadx.ewp</path>
|
||||
</project>
|
||||
<project>
|
||||
<path>$WS_DIR$\tx.ewp</path>
|
||||
</project>
|
||||
<batchBuild/>
|
||||
</workspace>
|
||||
|
||||
|
||||
161
ports/arm11/iar/example_build/cstartup.s
Normal file
161
ports/arm11/iar/example_build/cstartup.s
Normal file
@@ -0,0 +1,161 @@
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;;
|
||||
;; Part one of the system initialization code,
|
||||
;; contains low-level
|
||||
;; initialization.
|
||||
;;
|
||||
;; Copyright 2007 IAR Systems. All rights reserved.
|
||||
;;
|
||||
;; $Revision: 14520 $
|
||||
;;
|
||||
|
||||
MODULE ?cstartup
|
||||
|
||||
;; Forward declaration of sections.
|
||||
SECTION IRQ_STACK:DATA:NOROOT(3)
|
||||
SECTION FIQ_STACK:DATA:NOROOT(3)
|
||||
SECTION CSTACK:DATA:NOROOT(3)
|
||||
|
||||
;
|
||||
; The module in this file are included in the libraries, and may be
|
||||
; replaced by any user-defined modules that define the PUBLIC symbol
|
||||
; __iar_program_start or a user defined start symbol.
|
||||
;
|
||||
; To override the cstartup defined in the library, simply add your
|
||||
; modified version to the workbench project.
|
||||
|
||||
SECTION .intvec:CODE:NOROOT(2)
|
||||
|
||||
PUBLIC __vector
|
||||
PUBLIC __vector_0x14
|
||||
PUBLIC __iar_program_start
|
||||
EXTERN __tx_undefined
|
||||
EXTERN __tx_swi_interrupt
|
||||
EXTERN __tx_prefetch_handler
|
||||
EXTERN __tx_abort_handler
|
||||
EXTERN __tx_irq_handler
|
||||
EXTERN __tx_fiq_handler
|
||||
|
||||
ARM
|
||||
__vector:
|
||||
; All default exception handlers (except reset) are
|
||||
; defined as weak symbol definitions.
|
||||
; If a handler is defined by the application it will take precedence.
|
||||
LDR PC,Reset_Addr ; Reset
|
||||
LDR PC,Undefined_Addr ; Undefined instructions
|
||||
LDR PC,SWI_Addr ; Software interrupt (SWI/SVC)
|
||||
LDR PC,Prefetch_Addr ; Prefetch abort
|
||||
LDR PC,Abort_Addr ; Data abort
|
||||
__vector_0x14:
|
||||
DCD 0 ; RESERVED
|
||||
LDR PC,IRQ_Addr ; IRQ
|
||||
LDR PC,FIQ_Addr ; FIQ
|
||||
|
||||
Reset_Addr: DCD __iar_program_start
|
||||
Undefined_Addr: DCD __tx_undefined
|
||||
SWI_Addr: DCD __tx_swi_interrupt
|
||||
Prefetch_Addr: DCD __tx_prefetch_handler
|
||||
Abort_Addr: DCD __tx_abort_handler
|
||||
IRQ_Addr: DCD __tx_irq_handler
|
||||
FIQ_Addr: DCD __tx_fiq_handler
|
||||
|
||||
; --------------------------------------------------
|
||||
; ?cstartup -- low-level system initialization code.
|
||||
;
|
||||
; After a reser execution starts here, the mode is ARM, supervisor
|
||||
; with interrupts disabled.
|
||||
;
|
||||
|
||||
|
||||
|
||||
SECTION .text:CODE:NOROOT(2)
|
||||
|
||||
; PUBLIC ?cstartup
|
||||
EXTERN ?main
|
||||
REQUIRE __vector
|
||||
|
||||
ARM
|
||||
|
||||
__iar_program_start:
|
||||
?cstartup:
|
||||
|
||||
;
|
||||
; Add initialization needed before setup of stackpointers here.
|
||||
;
|
||||
|
||||
;
|
||||
; Initialize the stack pointers.
|
||||
; The pattern below can be used for any of the exception stacks:
|
||||
; FIQ, IRQ, SVC, ABT, UND, SYS.
|
||||
; The USR mode uses the same stack as SYS.
|
||||
; The stack segments must be defined in the linker command file,
|
||||
; and be declared above.
|
||||
;
|
||||
|
||||
|
||||
; --------------------
|
||||
; Mode, correspords to bits 0-5 in CPSR
|
||||
|
||||
MODE_MSK DEFINE 0x1F ; Bit mask for mode bits in CPSR
|
||||
|
||||
USR_MODE DEFINE 0x10 ; User mode
|
||||
FIQ_MODE DEFINE 0x11 ; Fast Interrupt Request mode
|
||||
IRQ_MODE DEFINE 0x12 ; Interrupt Request mode
|
||||
SVC_MODE DEFINE 0x13 ; Supervisor mode
|
||||
ABT_MODE DEFINE 0x17 ; Abort mode
|
||||
UND_MODE DEFINE 0x1B ; Undefined Instruction mode
|
||||
SYS_MODE DEFINE 0x1F ; System mode
|
||||
|
||||
|
||||
MRS r0, cpsr ; Original PSR value
|
||||
|
||||
;; Set up the interrupt stack pointer.
|
||||
|
||||
BIC r0, r0, #MODE_MSK ; Clear the mode bits
|
||||
ORR r0, r0, #IRQ_MODE ; Set IRQ mode bits
|
||||
MSR cpsr_c, r0 ; Change the mode
|
||||
LDR sp, =SFE(IRQ_STACK) ; End of IRQ_STACK
|
||||
|
||||
;; Set up the fast interrupt stack pointer.
|
||||
|
||||
BIC r0, r0, #MODE_MSK ; Clear the mode bits
|
||||
ORR r0, r0, #FIQ_MODE ; Set FIR mode bits
|
||||
MSR cpsr_c, r0 ; Change the mode
|
||||
LDR sp, =SFE(FIQ_STACK) ; End of FIQ_STACK
|
||||
|
||||
;; Set up the normal stack pointer.
|
||||
|
||||
BIC r0 ,r0, #MODE_MSK ; Clear the mode bits
|
||||
ORR r0 ,r0, #SYS_MODE ; Set System mode bits
|
||||
MSR cpsr_c, r0 ; Change the mode
|
||||
LDR sp, =SFE(CSTACK) ; End of CSTACK
|
||||
|
||||
#ifdef __ARMVFP__
|
||||
;; Enable the VFP coprocessor.
|
||||
|
||||
MOV r0, #0x40000000 ; Set EN bit in VFP
|
||||
FMXR fpexc, r0 ; FPEXC, clear others.
|
||||
|
||||
;
|
||||
; Disable underflow exceptions by setting flush to zero mode.
|
||||
; For full IEEE 754 underflow compliance this code should be removed
|
||||
; and the appropriate exception handler installed.
|
||||
;
|
||||
|
||||
MOV r0, #0x01000000 ; Set FZ bit in VFP
|
||||
FMXR fpscr, r0 ; FPSCR, clear others.
|
||||
#endif
|
||||
|
||||
;
|
||||
; Add more initialization here
|
||||
;
|
||||
|
||||
; Continue to ?main for C-level initialization.
|
||||
|
||||
B ?main
|
||||
|
||||
END
|
||||
|
||||
|
||||
|
||||
374
ports/arm11/iar/example_build/sample_threadx.c
Normal file
374
ports/arm11/iar/example_build/sample_threadx.c
Normal file
@@ -0,0 +1,374 @@
|
||||
/* This is a small demo of the high-performance ThreadX kernel. It includes examples of eight
|
||||
threads of different priorities, using a message queue, semaphore, mutex, event flags group,
|
||||
byte pool, and block pool. */
|
||||
|
||||
#include "tx_api.h"
|
||||
|
||||
#define DEMO_STACK_SIZE 1024
|
||||
#define DEMO_BYTE_POOL_SIZE 9120
|
||||
#define DEMO_BLOCK_POOL_SIZE 100
|
||||
#define DEMO_QUEUE_SIZE 100
|
||||
|
||||
|
||||
/* Define the ThreadX object control blocks... */
|
||||
|
||||
TX_THREAD thread_0;
|
||||
TX_THREAD thread_1;
|
||||
TX_THREAD thread_2;
|
||||
TX_THREAD thread_3;
|
||||
TX_THREAD thread_4;
|
||||
TX_THREAD thread_5;
|
||||
TX_THREAD thread_6;
|
||||
TX_THREAD thread_7;
|
||||
TX_QUEUE queue_0;
|
||||
TX_SEMAPHORE semaphore_0;
|
||||
TX_MUTEX mutex_0;
|
||||
TX_EVENT_FLAGS_GROUP event_flags_0;
|
||||
TX_BYTE_POOL byte_pool_0;
|
||||
TX_BLOCK_POOL block_pool_0;
|
||||
|
||||
|
||||
/* Define byte pool memory. */
|
||||
|
||||
UCHAR byte_pool_memory[DEMO_BYTE_POOL_SIZE];
|
||||
|
||||
|
||||
/* Define the counters used in the demo application... */
|
||||
|
||||
ULONG thread_0_counter;
|
||||
ULONG thread_1_counter;
|
||||
ULONG thread_1_messages_sent;
|
||||
ULONG thread_2_counter;
|
||||
ULONG thread_2_messages_received;
|
||||
ULONG thread_3_counter;
|
||||
ULONG thread_4_counter;
|
||||
ULONG thread_5_counter;
|
||||
ULONG thread_6_counter;
|
||||
ULONG thread_7_counter;
|
||||
|
||||
|
||||
/* Define thread prototypes. */
|
||||
|
||||
void thread_0_entry(ULONG thread_input);
|
||||
void thread_1_entry(ULONG thread_input);
|
||||
void thread_2_entry(ULONG thread_input);
|
||||
void thread_3_and_4_entry(ULONG thread_input);
|
||||
void thread_5_entry(ULONG thread_input);
|
||||
void thread_6_and_7_entry(ULONG thread_input);
|
||||
|
||||
|
||||
/* Define main entry point. */
|
||||
|
||||
int main()
|
||||
{
|
||||
|
||||
/* Enter the ThreadX kernel. */
|
||||
tx_kernel_enter();
|
||||
}
|
||||
|
||||
|
||||
/* Define what the initial system looks like. */
|
||||
|
||||
void tx_application_define(void *first_unused_memory)
|
||||
{
|
||||
|
||||
CHAR *pointer;
|
||||
|
||||
|
||||
/* Create a byte memory pool from which to allocate the thread stacks. */
|
||||
tx_byte_pool_create(&byte_pool_0, "byte pool 0", byte_pool_memory, DEMO_BYTE_POOL_SIZE);
|
||||
|
||||
/* Put system definition stuff in here, e.g. thread creates and other assorted
|
||||
create information. */
|
||||
|
||||
/* Allocate the stack for thread 0. */
|
||||
tx_byte_allocate(&byte_pool_0, (VOID **) &pointer, DEMO_STACK_SIZE, TX_NO_WAIT);
|
||||
|
||||
/* Create the main thread. */
|
||||
tx_thread_create(&thread_0, "thread 0", thread_0_entry, 0,
|
||||
pointer, DEMO_STACK_SIZE,
|
||||
1, 1, TX_NO_TIME_SLICE, TX_AUTO_START);
|
||||
|
||||
|
||||
/* Allocate the stack for thread 1. */
|
||||
tx_byte_allocate(&byte_pool_0, (VOID **) &pointer, DEMO_STACK_SIZE, TX_NO_WAIT);
|
||||
|
||||
/* Create threads 1 and 2. These threads pass information through a ThreadX
|
||||
message queue. It is also interesting to note that these threads have a time
|
||||
slice. */
|
||||
tx_thread_create(&thread_1, "thread 1", thread_1_entry, 1,
|
||||
pointer, DEMO_STACK_SIZE,
|
||||
16, 16, 4, TX_AUTO_START);
|
||||
|
||||
/* Allocate the stack for thread 2. */
|
||||
tx_byte_allocate(&byte_pool_0, (VOID **) &pointer, DEMO_STACK_SIZE, TX_NO_WAIT);
|
||||
|
||||
tx_thread_create(&thread_2, "thread 2", thread_2_entry, 2,
|
||||
pointer, DEMO_STACK_SIZE,
|
||||
16, 16, 4, TX_AUTO_START);
|
||||
|
||||
/* Allocate the stack for thread 3. */
|
||||
tx_byte_allocate(&byte_pool_0, (VOID **) &pointer, DEMO_STACK_SIZE, TX_NO_WAIT);
|
||||
|
||||
/* Create threads 3 and 4. These threads compete for a ThreadX counting semaphore.
|
||||
An interesting thing here is that both threads share the same instruction area. */
|
||||
tx_thread_create(&thread_3, "thread 3", thread_3_and_4_entry, 3,
|
||||
pointer, DEMO_STACK_SIZE,
|
||||
8, 8, TX_NO_TIME_SLICE, TX_AUTO_START);
|
||||
|
||||
/* Allocate the stack for thread 4. */
|
||||
tx_byte_allocate(&byte_pool_0, (VOID **) &pointer, DEMO_STACK_SIZE, TX_NO_WAIT);
|
||||
|
||||
tx_thread_create(&thread_4, "thread 4", thread_3_and_4_entry, 4,
|
||||
pointer, DEMO_STACK_SIZE,
|
||||
8, 8, TX_NO_TIME_SLICE, TX_AUTO_START);
|
||||
|
||||
/* Allocate the stack for thread 5. */
|
||||
tx_byte_allocate(&byte_pool_0, (VOID **) &pointer, DEMO_STACK_SIZE, TX_NO_WAIT);
|
||||
|
||||
/* Create thread 5. This thread simply pends on an event flag which will be set
|
||||
by thread_0. */
|
||||
tx_thread_create(&thread_5, "thread 5", thread_5_entry, 5,
|
||||
pointer, DEMO_STACK_SIZE,
|
||||
4, 4, TX_NO_TIME_SLICE, TX_AUTO_START);
|
||||
|
||||
/* Allocate the stack for thread 6. */
|
||||
tx_byte_allocate(&byte_pool_0, (VOID **) &pointer, DEMO_STACK_SIZE, TX_NO_WAIT);
|
||||
|
||||
/* Create threads 6 and 7. These threads compete for a ThreadX mutex. */
|
||||
tx_thread_create(&thread_6, "thread 6", thread_6_and_7_entry, 6,
|
||||
pointer, DEMO_STACK_SIZE,
|
||||
8, 8, TX_NO_TIME_SLICE, TX_AUTO_START);
|
||||
|
||||
/* Allocate the stack for thread 7. */
|
||||
tx_byte_allocate(&byte_pool_0, (VOID **) &pointer, DEMO_STACK_SIZE, TX_NO_WAIT);
|
||||
|
||||
tx_thread_create(&thread_7, "thread 7", thread_6_and_7_entry, 7,
|
||||
pointer, DEMO_STACK_SIZE,
|
||||
8, 8, TX_NO_TIME_SLICE, TX_AUTO_START);
|
||||
|
||||
/* Allocate the message queue. */
|
||||
tx_byte_allocate(&byte_pool_0, (VOID **) &pointer, DEMO_QUEUE_SIZE*sizeof(ULONG), TX_NO_WAIT);
|
||||
|
||||
/* Create the message queue shared by threads 1 and 2. */
|
||||
tx_queue_create(&queue_0, "queue 0", TX_1_ULONG, pointer, DEMO_QUEUE_SIZE*sizeof(ULONG));
|
||||
|
||||
/* Create the semaphore used by threads 3 and 4. */
|
||||
tx_semaphore_create(&semaphore_0, "semaphore 0", 1);
|
||||
|
||||
/* Create the event flags group used by threads 1 and 5. */
|
||||
tx_event_flags_create(&event_flags_0, "event flags 0");
|
||||
|
||||
/* Create the mutex used by thread 6 and 7 without priority inheritance. */
|
||||
tx_mutex_create(&mutex_0, "mutex 0", TX_NO_INHERIT);
|
||||
|
||||
/* Allocate the memory for a small block pool. */
|
||||
tx_byte_allocate(&byte_pool_0, (VOID **) &pointer, DEMO_BLOCK_POOL_SIZE, TX_NO_WAIT);
|
||||
|
||||
/* Create a block memory pool to allocate a message buffer from. */
|
||||
tx_block_pool_create(&block_pool_0, "block pool 0", sizeof(ULONG), pointer, DEMO_BLOCK_POOL_SIZE);
|
||||
|
||||
/* Allocate a block and release the block memory. */
|
||||
tx_block_allocate(&block_pool_0, (VOID **) &pointer, TX_NO_WAIT);
|
||||
|
||||
/* Release the block back to the pool. */
|
||||
tx_block_release(pointer);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Define the test threads. */
|
||||
|
||||
void thread_0_entry(ULONG thread_input)
|
||||
{
|
||||
|
||||
UINT status;
|
||||
|
||||
|
||||
/* This thread simply sits in while-forever-sleep loop. */
|
||||
while(1)
|
||||
{
|
||||
|
||||
/* Increment the thread counter. */
|
||||
thread_0_counter++;
|
||||
|
||||
/* Sleep for 10 ticks. */
|
||||
tx_thread_sleep(10);
|
||||
|
||||
/* Set event flag 0 to wakeup thread 5. */
|
||||
status = tx_event_flags_set(&event_flags_0, 0x1, TX_OR);
|
||||
|
||||
/* Check status. */
|
||||
if (status != TX_SUCCESS)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void thread_1_entry(ULONG thread_input)
|
||||
{
|
||||
|
||||
UINT status;
|
||||
|
||||
|
||||
/* This thread simply sends messages to a queue shared by thread 2. */
|
||||
while(1)
|
||||
{
|
||||
|
||||
/* Increment the thread counter. */
|
||||
thread_1_counter++;
|
||||
|
||||
/* Send message to queue 0. */
|
||||
status = tx_queue_send(&queue_0, &thread_1_messages_sent, TX_WAIT_FOREVER);
|
||||
|
||||
/* Check completion status. */
|
||||
if (status != TX_SUCCESS)
|
||||
break;
|
||||
|
||||
/* Increment the message sent. */
|
||||
thread_1_messages_sent++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void thread_2_entry(ULONG thread_input)
|
||||
{
|
||||
|
||||
ULONG received_message;
|
||||
UINT status;
|
||||
|
||||
/* This thread retrieves messages placed on the queue by thread 1. */
|
||||
while(1)
|
||||
{
|
||||
|
||||
/* Increment the thread counter. */
|
||||
thread_2_counter++;
|
||||
|
||||
/* Retrieve a message from the queue. */
|
||||
status = tx_queue_receive(&queue_0, &received_message, TX_WAIT_FOREVER);
|
||||
|
||||
/* Check completion status and make sure the message is what we
|
||||
expected. */
|
||||
if ((status != TX_SUCCESS) || (received_message != thread_2_messages_received))
|
||||
break;
|
||||
|
||||
/* Otherwise, all is okay. Increment the received message count. */
|
||||
thread_2_messages_received++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void thread_3_and_4_entry(ULONG thread_input)
|
||||
{
|
||||
|
||||
UINT status;
|
||||
|
||||
|
||||
/* This function is executed from thread 3 and thread 4. As the loop
|
||||
below shows, these function compete for ownership of semaphore_0. */
|
||||
while(1)
|
||||
{
|
||||
|
||||
/* Increment the thread counter. */
|
||||
if (thread_input == 3)
|
||||
thread_3_counter++;
|
||||
else
|
||||
thread_4_counter++;
|
||||
|
||||
/* Get the semaphore with suspension. */
|
||||
status = tx_semaphore_get(&semaphore_0, TX_WAIT_FOREVER);
|
||||
|
||||
/* Check status. */
|
||||
if (status != TX_SUCCESS)
|
||||
break;
|
||||
|
||||
/* Sleep for 2 ticks to hold the semaphore. */
|
||||
tx_thread_sleep(2);
|
||||
|
||||
/* Release the semaphore. */
|
||||
status = tx_semaphore_put(&semaphore_0);
|
||||
|
||||
/* Check status. */
|
||||
if (status != TX_SUCCESS)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void thread_5_entry(ULONG thread_input)
|
||||
{
|
||||
|
||||
UINT status;
|
||||
ULONG actual_flags;
|
||||
|
||||
|
||||
/* This thread simply waits for an event in a forever loop. */
|
||||
while(1)
|
||||
{
|
||||
|
||||
/* Increment the thread counter. */
|
||||
thread_5_counter++;
|
||||
|
||||
/* Wait for event flag 0. */
|
||||
status = tx_event_flags_get(&event_flags_0, 0x1, TX_OR_CLEAR,
|
||||
&actual_flags, TX_WAIT_FOREVER);
|
||||
|
||||
/* Check status. */
|
||||
if ((status != TX_SUCCESS) || (actual_flags != 0x1))
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void thread_6_and_7_entry(ULONG thread_input)
|
||||
{
|
||||
|
||||
UINT status;
|
||||
|
||||
|
||||
/* This function is executed from thread 6 and thread 7. As the loop
|
||||
below shows, these function compete for ownership of mutex_0. */
|
||||
while(1)
|
||||
{
|
||||
|
||||
/* Increment the thread counter. */
|
||||
if (thread_input == 6)
|
||||
thread_6_counter++;
|
||||
else
|
||||
thread_7_counter++;
|
||||
|
||||
/* Get the mutex with suspension. */
|
||||
status = tx_mutex_get(&mutex_0, TX_WAIT_FOREVER);
|
||||
|
||||
/* Check status. */
|
||||
if (status != TX_SUCCESS)
|
||||
break;
|
||||
|
||||
/* Get the mutex again with suspension. This shows
|
||||
that an owning thread may retrieve the mutex it
|
||||
owns multiple times. */
|
||||
status = tx_mutex_get(&mutex_0, TX_WAIT_FOREVER);
|
||||
|
||||
/* Check status. */
|
||||
if (status != TX_SUCCESS)
|
||||
break;
|
||||
|
||||
/* Sleep for 2 ticks to hold the mutex. */
|
||||
tx_thread_sleep(2);
|
||||
|
||||
/* Release the mutex. */
|
||||
status = tx_mutex_put(&mutex_0);
|
||||
|
||||
/* Check status. */
|
||||
if (status != TX_SUCCESS)
|
||||
break;
|
||||
|
||||
/* Release the mutex again. This will actually
|
||||
release ownership since it was obtained twice. */
|
||||
status = tx_mutex_put(&mutex_0);
|
||||
|
||||
/* Check status. */
|
||||
if (status != TX_SUCCESS)
|
||||
break;
|
||||
}
|
||||
}
|
||||
2974
ports/arm11/iar/example_build/sample_threadx.ewd
Normal file
2974
ports/arm11/iar/example_build/sample_threadx.ewd
Normal file
File diff suppressed because it is too large
Load Diff
2136
ports/arm11/iar/example_build/sample_threadx.ewp
Normal file
2136
ports/arm11/iar/example_build/sample_threadx.ewp
Normal file
File diff suppressed because it is too large
Load Diff
2797
ports/arm11/iar/example_build/sample_threadx.ewt
Normal file
2797
ports/arm11/iar/example_build/sample_threadx.ewt
Normal file
File diff suppressed because it is too large
Load Diff
49
ports/arm11/iar/example_build/sample_threadx.icf
Normal file
49
ports/arm11/iar/example_build/sample_threadx.icf
Normal file
@@ -0,0 +1,49 @@
|
||||
/*###ICF### Section handled by ICF editor, don't touch! ****/
|
||||
/*-Editor annotation file-*/
|
||||
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\a_v1_0.xml" */
|
||||
/*-Specials-*/
|
||||
define symbol __ICFEDIT_intvec_start__ = 0x0;
|
||||
/*-Memory Regions-*/
|
||||
define symbol __ICFEDIT_region_ROM_start__ = 0x80;
|
||||
define symbol __ICFEDIT_region_ROM_end__ = 0x1FFFF;
|
||||
define symbol __ICFEDIT_region_RAM_start__ = 0x100000;
|
||||
define symbol __ICFEDIT_region_RAM_end__ = 0x1FFFFF;
|
||||
/*-Sizes-*/
|
||||
define symbol __ICFEDIT_size_cstack__ = 0x2000;
|
||||
define symbol __ICFEDIT_size_svcstack__ = 0x100;
|
||||
define symbol __ICFEDIT_size_irqstack__ = 0x100;
|
||||
define symbol __ICFEDIT_size_fiqstack__ = 0x100;
|
||||
define symbol __ICFEDIT_size_undstack__ = 0x100;
|
||||
define symbol __ICFEDIT_size_abtstack__ = 0x100;
|
||||
define symbol __ICFEDIT_size_heap__ = 0x8000;
|
||||
/**** End of ICF editor section. ###ICF###*/
|
||||
|
||||
define symbol __ICFEDIT_size_freemem__ = 0x100000;
|
||||
|
||||
|
||||
define memory mem with size = 4G;
|
||||
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__];
|
||||
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__];
|
||||
define region RAM_freemem = mem:[from 0x200000 to 0x300000];
|
||||
|
||||
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { };
|
||||
define block SVC_STACK with alignment = 8, size = __ICFEDIT_size_svcstack__ { };
|
||||
define block IRQ_STACK with alignment = 8, size = __ICFEDIT_size_irqstack__ { };
|
||||
define block FIQ_STACK with alignment = 8, size = __ICFEDIT_size_fiqstack__ { };
|
||||
define block UND_STACK with alignment = 8, size = __ICFEDIT_size_undstack__ { };
|
||||
define block ABT_STACK with alignment = 8, size = __ICFEDIT_size_abtstack__ { };
|
||||
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { };
|
||||
|
||||
|
||||
initialize by copy { readwrite };
|
||||
initialize by copy with packing = none { section __DLIB_PERTHREAD }; // Required in a multi-threaded application
|
||||
do not initialize { section .noinit };
|
||||
|
||||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
||||
|
||||
place in ROM_region { readonly };
|
||||
place in RAM_region { readwrite,
|
||||
block CSTACK, block SVC_STACK, block IRQ_STACK, block FIQ_STACK,
|
||||
block UND_STACK, block ABT_STACK, block HEAP};
|
||||
|
||||
place in RAM_region { last section FREE_MEM};
|
||||
535
ports/arm11/iar/example_build/settings/azure_rtos.wsdt
Normal file
535
ports/arm11/iar/example_build/settings/azure_rtos.wsdt
Normal file
@@ -0,0 +1,535 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Workspace>
|
||||
<ConfigDictionary>
|
||||
<CurrentConfigs>
|
||||
<Project>sample_threadx/Debug</Project>
|
||||
<Project>tx/Debug</Project>
|
||||
</CurrentConfigs>
|
||||
<CurrentProj>sample_threadx</CurrentProj>
|
||||
<OverviewSelected>1</OverviewSelected>
|
||||
</ConfigDictionary>
|
||||
<WindowStorage>
|
||||
<Desktop>
|
||||
<IarPane-34048>
|
||||
<ColumnWidth0>21</ColumnWidth0>
|
||||
<ColumnWidth1>2518</ColumnWidth1>
|
||||
<FilterLevel>2</FilterLevel>
|
||||
<LiveFile></LiveFile>
|
||||
<LiveLogEnabled>0</LiveLogEnabled>
|
||||
<LiveFilterLevel>-1</LiveFilterLevel>
|
||||
</IarPane-34048>
|
||||
<IarPane-34049>
|
||||
<ToolBarCmdIds>
|
||||
<item>34001</item>
|
||||
<item>0</item>
|
||||
</ToolBarCmdIds>
|
||||
</IarPane-34049>
|
||||
<IarPane-34050>
|
||||
<ToolBarCmdIds>
|
||||
<item>57600</item>
|
||||
<item>57601</item>
|
||||
<item>57603</item>
|
||||
<item>33024</item>
|
||||
<item>0</item>
|
||||
<item>57607</item>
|
||||
<item>0</item>
|
||||
<item>57635</item>
|
||||
<item>57634</item>
|
||||
<item>57637</item>
|
||||
<item>0</item>
|
||||
<item>57643</item>
|
||||
<item>57644</item>
|
||||
<item>0</item>
|
||||
<item>33090</item>
|
||||
<item>33057</item>
|
||||
<item>57636</item>
|
||||
<item>57640</item>
|
||||
<item>57641</item>
|
||||
<item>33026</item>
|
||||
<item>33065</item>
|
||||
<item>33063</item>
|
||||
<item>33064</item>
|
||||
<item>33053</item>
|
||||
<item>33054</item>
|
||||
<item>0</item>
|
||||
<item>33035</item>
|
||||
<item>33036</item>
|
||||
<item>34399</item>
|
||||
<item>0</item>
|
||||
<item>33038</item>
|
||||
<item>33039</item>
|
||||
<item>0</item>
|
||||
</ToolBarCmdIds>
|
||||
</IarPane-34050>
|
||||
<IarPane-34065>
|
||||
<ColumnWidths>
|
||||
<Column0>359</Column0>
|
||||
<Column1>30</Column1>
|
||||
<Column2>30</Column2>
|
||||
<Column3>30</Column3>
|
||||
</ColumnWidths>
|
||||
<NodeDict>
|
||||
<ExpandedNode><ws></ExpandedNode>
|
||||
</NodeDict>
|
||||
</IarPane-34065>
|
||||
<ControlBarVersion>
|
||||
<Major>14</Major>
|
||||
<Minor>26</Minor>
|
||||
</ControlBarVersion>
|
||||
<MFCToolBarParameters>
|
||||
<Tooltips>1</Tooltips>
|
||||
<ShortcutKeys>1</ShortcutKeys>
|
||||
<LargeIcons>0</LargeIcons>
|
||||
<MenuAnimation>0</MenuAnimation>
|
||||
<RecentlyUsedMenus>1</RecentlyUsedMenus>
|
||||
<MenuShadows>1</MenuShadows>
|
||||
<ShowAllMenusAfterDelay>1</ShowAllMenusAfterDelay>
|
||||
<CommandsUsage>010000000D002596000001000000108600000B0000000C8100000300000004860000010000001781000002000000148100000100000003E10000010000000E81000001000000E980000001000000118600000A00000046810000020000000D81000001000000E880000001000000</CommandsUsage>
|
||||
</MFCToolBarParameters>
|
||||
<CommandManager>
|
||||
<CommandsWithoutImages>0F000D8400000F84000008840000FFFFFFFF54840000328100001C81000009840000818400007D8400008284000083840000848400000E84000030840000</CommandsWithoutImages>
|
||||
<MenuUserImages>0400048400004C000000068400004E0000000B8100001B0000000D8100001D000000</MenuUserImages>
|
||||
</CommandManager>
|
||||
<Pane-59393>
|
||||
<ID>0</ID>
|
||||
<RectRecentFloat>0A0000000A0000006E0000006E000000</RectRecentFloat>
|
||||
<RectRecentDocked>000000004E050000000A000061050000</RectRecentDocked>
|
||||
<RecentFrameAlignment>4096</RecentFrameAlignment>
|
||||
<RecentRowIndex>0</RecentRowIndex>
|
||||
<IsFloating>0</IsFloating>
|
||||
<MRUWidth>32767</MRUWidth>
|
||||
<PinState>0</PinState>
|
||||
</Pane-59393>
|
||||
<BasePane-59393>
|
||||
<IsVisible>1</IsVisible>
|
||||
</BasePane-59393>
|
||||
<Pane-34051>
|
||||
<ID>34051</ID>
|
||||
<RectRecentFloat>000000001700000022010000C8000000</RectRecentFloat>
|
||||
<RectRecentDocked>000000000000000022010000B1000000</RectRecentDocked>
|
||||
<RecentFrameAlignment>32768</RecentFrameAlignment>
|
||||
<RecentRowIndex>0</RecentRowIndex>
|
||||
<IsFloating>0</IsFloating>
|
||||
<MRUWidth>32767</MRUWidth>
|
||||
<PinState>0</PinState>
|
||||
</Pane-34051>
|
||||
<BasePane-34051>
|
||||
<IsVisible>0</IsVisible>
|
||||
</BasePane-34051>
|
||||
<IarPane-34051 />
|
||||
<Pane--1>
|
||||
<ID>4294967295</ID>
|
||||
<RectRecentFloat>0000000082040000000A000065050000</RectRecentFloat>
|
||||
<RectRecentDocked>000000006B040000000A00004E050000</RectRecentDocked>
|
||||
<RecentFrameAlignment>4096</RecentFrameAlignment>
|
||||
<RecentRowIndex>0</RecentRowIndex>
|
||||
<IsFloating>0</IsFloating>
|
||||
<MRUWidth>32767</MRUWidth>
|
||||
<PinState>0</PinState>
|
||||
</Pane--1>
|
||||
<BasePane--1>
|
||||
<IsVisible>1</IsVisible>
|
||||
</BasePane--1>
|
||||
<Pane-34052>
|
||||
<ID>34052</ID>
|
||||
<RectRecentFloat>000000001700000022010000C8000000</RectRecentFloat>
|
||||
<RectRecentDocked>0400000083040000FC09000034050000</RectRecentDocked>
|
||||
<RecentFrameAlignment>32768</RecentFrameAlignment>
|
||||
<RecentRowIndex>0</RecentRowIndex>
|
||||
<IsFloating>0</IsFloating>
|
||||
<MRUWidth>32767</MRUWidth>
|
||||
<PinState>0</PinState>
|
||||
</Pane-34052>
|
||||
<BasePane-34052>
|
||||
<IsVisible>1</IsVisible>
|
||||
</BasePane-34052>
|
||||
<IarPane-34052>
|
||||
<ColumnWidth0>24</ColumnWidth0>
|
||||
<ColumnWidth1>1880</ColumnWidth1>
|
||||
<ColumnWidth2>501</ColumnWidth2>
|
||||
<ColumnWidth3>125</ColumnWidth3>
|
||||
<FilterLevel>2</FilterLevel>
|
||||
<LiveFile>C:\Users\nisohack\Documents\work\x-ware_libs\threadx\ports\arm11\iar\example_build\BuildLog.log</LiveFile>
|
||||
<LiveLogEnabled>0</LiveLogEnabled>
|
||||
<LiveFilterLevel>-1</LiveFilterLevel>
|
||||
</IarPane-34052>
|
||||
<Pane-34048>
|
||||
<ID>34048</ID>
|
||||
<RectRecentFloat>000000001700000022010000C8000000</RectRecentFloat>
|
||||
<RectRecentDocked>0400000083040000FC09000034050000</RectRecentDocked>
|
||||
<RecentFrameAlignment>4096</RecentFrameAlignment>
|
||||
<RecentRowIndex>0</RecentRowIndex>
|
||||
<IsFloating>0</IsFloating>
|
||||
<MRUWidth>32767</MRUWidth>
|
||||
<PinState>0</PinState>
|
||||
</Pane-34048>
|
||||
<BasePane-34048>
|
||||
<IsVisible>1</IsVisible>
|
||||
</BasePane-34048>
|
||||
<Pane-34056>
|
||||
<ID>34056</ID>
|
||||
<RectRecentFloat>000000001700000022010000C8000000</RectRecentFloat>
|
||||
<RectRecentDocked>0400000083040000FC09000034050000</RectRecentDocked>
|
||||
<RecentFrameAlignment>4096</RecentFrameAlignment>
|
||||
<RecentRowIndex>0</RecentRowIndex>
|
||||
<IsFloating>0</IsFloating>
|
||||
<MRUWidth>32767</MRUWidth>
|
||||
<PinState>0</PinState>
|
||||
</Pane-34056>
|
||||
<BasePane-34056>
|
||||
<IsVisible>0</IsVisible>
|
||||
</BasePane-34056>
|
||||
<IarPane-34056>
|
||||
<ColumnWidth0>891</ColumnWidth0>
|
||||
<ColumnWidth1>127</ColumnWidth1>
|
||||
<ColumnWidth2>1528</ColumnWidth2>
|
||||
<FilterLevel>2</FilterLevel>
|
||||
<LiveFile></LiveFile>
|
||||
<LiveLogEnabled>0</LiveLogEnabled>
|
||||
<LiveFilterLevel>-1</LiveFilterLevel>
|
||||
</IarPane-34056>
|
||||
<Pane-34057>
|
||||
<ID>34057</ID>
|
||||
<RectRecentFloat>000000001700000022010000C8000000</RectRecentFloat>
|
||||
<RectRecentDocked>0400000083040000FC09000034050000</RectRecentDocked>
|
||||
<RecentFrameAlignment>4096</RecentFrameAlignment>
|
||||
<RecentRowIndex>0</RecentRowIndex>
|
||||
<IsFloating>0</IsFloating>
|
||||
<MRUWidth>32767</MRUWidth>
|
||||
<PinState>0</PinState>
|
||||
</Pane-34057>
|
||||
<BasePane-34057>
|
||||
<IsVisible>0</IsVisible>
|
||||
</BasePane-34057>
|
||||
<IarPane-34057>
|
||||
<ColumnWidth0>891</ColumnWidth0>
|
||||
<ColumnWidth1>127</ColumnWidth1>
|
||||
<ColumnWidth2>1528</ColumnWidth2>
|
||||
<FilterLevel>2</FilterLevel>
|
||||
<LiveFile></LiveFile>
|
||||
<LiveLogEnabled>0</LiveLogEnabled>
|
||||
<LiveFilterLevel>-1</LiveFilterLevel>
|
||||
</IarPane-34057>
|
||||
<Pane-34058>
|
||||
<ID>34058</ID>
|
||||
<RectRecentFloat>000000001700000022010000C8000000</RectRecentFloat>
|
||||
<RectRecentDocked>0400000083040000FC09000034050000</RectRecentDocked>
|
||||
<RecentFrameAlignment>4096</RecentFrameAlignment>
|
||||
<RecentRowIndex>0</RecentRowIndex>
|
||||
<IsFloating>0</IsFloating>
|
||||
<MRUWidth>32767</MRUWidth>
|
||||
<PinState>0</PinState>
|
||||
</Pane-34058>
|
||||
<BasePane-34058>
|
||||
<IsVisible>0</IsVisible>
|
||||
</BasePane-34058>
|
||||
<IarPane-34058>
|
||||
<ColumnWidth0>764</ColumnWidth0>
|
||||
<ColumnWidth1>127</ColumnWidth1>
|
||||
<ColumnWidth2>1146</ColumnWidth2>
|
||||
<ColumnWidth3>509</ColumnWidth3>
|
||||
<FilterLevel>2</FilterLevel>
|
||||
<LiveFile></LiveFile>
|
||||
<LiveLogEnabled>0</LiveLogEnabled>
|
||||
<LiveFilterLevel>-1</LiveFilterLevel>
|
||||
</IarPane-34058>
|
||||
<Pane-34059>
|
||||
<ID>34059</ID>
|
||||
<RectRecentFloat>000000001700000022010000C8000000</RectRecentFloat>
|
||||
<RectRecentDocked>0400000083040000FC09000034050000</RectRecentDocked>
|
||||
<RecentFrameAlignment>4096</RecentFrameAlignment>
|
||||
<RecentRowIndex>0</RecentRowIndex>
|
||||
<IsFloating>0</IsFloating>
|
||||
<MRUWidth>32767</MRUWidth>
|
||||
<PinState>0</PinState>
|
||||
</Pane-34059>
|
||||
<BasePane-34059>
|
||||
<IsVisible>0</IsVisible>
|
||||
</BasePane-34059>
|
||||
<IarPane-34059>
|
||||
<ColumnWidth0>891</ColumnWidth0>
|
||||
<ColumnWidth1>127</ColumnWidth1>
|
||||
<ColumnWidth2>1528</ColumnWidth2>
|
||||
<FilterLevel>2</FilterLevel>
|
||||
<LiveFile></LiveFile>
|
||||
<LiveLogEnabled>0</LiveLogEnabled>
|
||||
<LiveFilterLevel>-1</LiveFilterLevel>
|
||||
</IarPane-34059>
|
||||
<Pane-34062>
|
||||
<ID>34062</ID>
|
||||
<RectRecentFloat>000000001700000022010000C8000000</RectRecentFloat>
|
||||
<RectRecentDocked>0400000083040000FC09000034050000</RectRecentDocked>
|
||||
<RecentFrameAlignment>4096</RecentFrameAlignment>
|
||||
<RecentRowIndex>0</RecentRowIndex>
|
||||
<IsFloating>0</IsFloating>
|
||||
<MRUWidth>32767</MRUWidth>
|
||||
<PinState>0</PinState>
|
||||
</Pane-34062>
|
||||
<BasePane-34062>
|
||||
<IsVisible>0</IsVisible>
|
||||
</BasePane-34062>
|
||||
<IarPane-34062>
|
||||
<FilterLevel>2</FilterLevel>
|
||||
<LiveFile></LiveFile>
|
||||
<LiveLogEnabled>0</LiveLogEnabled>
|
||||
<LiveFilterLevel>-1</LiveFilterLevel>
|
||||
</IarPane-34062>
|
||||
<Pane-34053>
|
||||
<ID>34053</ID>
|
||||
<RectRecentFloat>000000001700000080020000A8000000</RectRecentFloat>
|
||||
<RectRecentDocked>00000000000000008002000091000000</RectRecentDocked>
|
||||
<RecentFrameAlignment>32768</RecentFrameAlignment>
|
||||
<RecentRowIndex>0</RecentRowIndex>
|
||||
<IsFloating>0</IsFloating>
|
||||
<MRUWidth>32767</MRUWidth>
|
||||
<PinState>0</PinState>
|
||||
</Pane-34053>
|
||||
<BasePane-34053>
|
||||
<IsVisible>0</IsVisible>
|
||||
</BasePane-34053>
|
||||
<IarPane-34053>
|
||||
<cg_type>
|
||||
<item>2</item>
|
||||
</cg_type>
|
||||
<cg_symbol>
|
||||
<item></item>
|
||||
</cg_symbol>
|
||||
<cg_user>
|
||||
<item></item>
|
||||
</cg_user>
|
||||
<cg_display>
|
||||
<item><Right-click on a symbol in the editor to show a call graph></item>
|
||||
</cg_display>
|
||||
<cg_def_file>
|
||||
<item></item>
|
||||
</cg_def_file>
|
||||
<cg_def_line>
|
||||
<item>0</item>
|
||||
</cg_def_line>
|
||||
<cg_def_col>
|
||||
<item>0</item>
|
||||
</cg_def_col>
|
||||
<cg_call_file>
|
||||
<item></item>
|
||||
</cg_call_file>
|
||||
<cg_call_line>
|
||||
<item>0</item>
|
||||
</cg_call_line>
|
||||
<cg_call_col>
|
||||
<item>0</item>
|
||||
</cg_call_col>
|
||||
<col-names>
|
||||
<item>File</item>
|
||||
<item>Function</item>
|
||||
<item>Line</item>
|
||||
</col-names>
|
||||
<col-widths>
|
||||
<item>200</item>
|
||||
<item>700</item>
|
||||
<item>100</item>
|
||||
</col-widths>
|
||||
</IarPane-34053>
|
||||
<Pane-34054>
|
||||
<ID>34054</ID>
|
||||
<RectRecentFloat>000000001700000022010000C8000000</RectRecentFloat>
|
||||
<RectRecentDocked>000000000000000022010000B1000000</RectRecentDocked>
|
||||
<RecentFrameAlignment>32768</RecentFrameAlignment>
|
||||
<RecentRowIndex>0</RecentRowIndex>
|
||||
<IsFloating>0</IsFloating>
|
||||
<MRUWidth>32767</MRUWidth>
|
||||
<PinState>0</PinState>
|
||||
</Pane-34054>
|
||||
<BasePane-34054>
|
||||
<IsVisible>0</IsVisible>
|
||||
</BasePane-34054>
|
||||
<IarPane-34054 />
|
||||
<Pane-34055>
|
||||
<ID>34055</ID>
|
||||
<RectRecentFloat>000000001700000022010000C8000000</RectRecentFloat>
|
||||
<RectRecentDocked>000000000000000022010000B1000000</RectRecentDocked>
|
||||
<RecentFrameAlignment>32768</RecentFrameAlignment>
|
||||
<RecentRowIndex>0</RecentRowIndex>
|
||||
<IsFloating>0</IsFloating>
|
||||
<MRUWidth>32767</MRUWidth>
|
||||
<PinState>0</PinState>
|
||||
</Pane-34055>
|
||||
<BasePane-34055>
|
||||
<IsVisible>0</IsVisible>
|
||||
</BasePane-34055>
|
||||
<IarPane-34055>
|
||||
<col-names>
|
||||
<item>Check</item>
|
||||
<item>File</item>
|
||||
<item>Line</item>
|
||||
<item>Message</item>
|
||||
<item>Severity</item>
|
||||
</col-names>
|
||||
<col-widths>
|
||||
<item>200</item>
|
||||
<item>200</item>
|
||||
<item>100</item>
|
||||
<item>500</item>
|
||||
<item>100</item>
|
||||
</col-widths>
|
||||
</IarPane-34055>
|
||||
<Pane-34060>
|
||||
<ID>34060</ID>
|
||||
<RectRecentFloat>000000001700000022010000C8000000</RectRecentFloat>
|
||||
<RectRecentDocked>000000000000000022010000B1000000</RectRecentDocked>
|
||||
<RecentFrameAlignment>32768</RecentFrameAlignment>
|
||||
<RecentRowIndex>0</RecentRowIndex>
|
||||
<IsFloating>0</IsFloating>
|
||||
<MRUWidth>32767</MRUWidth>
|
||||
<PinState>0</PinState>
|
||||
</Pane-34060>
|
||||
<BasePane-34060>
|
||||
<IsVisible>0</IsVisible>
|
||||
</BasePane-34060>
|
||||
<IarPane-34060>
|
||||
<FilterLevel>2</FilterLevel>
|
||||
<LiveFile>$WS_DIR/SourceBrowseLog.log</LiveFile>
|
||||
<LiveLogEnabled>0</LiveLogEnabled>
|
||||
<LiveFilterLevel>-1</LiveFilterLevel>
|
||||
</IarPane-34060>
|
||||
<Pane-34061>
|
||||
<ID>34061</ID>
|
||||
<RectRecentFloat>000000001700000080020000A8000000</RectRecentFloat>
|
||||
<RectRecentDocked>00000000000000008002000091000000</RectRecentDocked>
|
||||
<RecentFrameAlignment>32768</RecentFrameAlignment>
|
||||
<RecentRowIndex>0</RecentRowIndex>
|
||||
<IsFloating>0</IsFloating>
|
||||
<MRUWidth>32767</MRUWidth>
|
||||
<PinState>0</PinState>
|
||||
</Pane-34061>
|
||||
<BasePane-34061>
|
||||
<IsVisible>0</IsVisible>
|
||||
</BasePane-34061>
|
||||
<IarPane-34061>
|
||||
<SB_FileFilter>
|
||||
<item>2</item>
|
||||
</SB_FileFilter>
|
||||
<SB_TypeFilter>
|
||||
<item>0</item>
|
||||
</SB_TypeFilter>
|
||||
<SB_SBW_File>
|
||||
<item>C:\Users\nisohack\Documents\work\x-ware_libs\threadx\ports\arm11\iar\example_build\Debug\Obj\sample_threadx.pbw</item>
|
||||
</SB_SBW_File>
|
||||
<col-names>
|
||||
<item>File</item>
|
||||
<item>Name</item>
|
||||
<item>Scope</item>
|
||||
<item>Symbol type</item>
|
||||
</col-names>
|
||||
<col-widths>
|
||||
<item>300</item>
|
||||
<item>300</item>
|
||||
<item>300</item>
|
||||
<item>300</item>
|
||||
</col-widths>
|
||||
</IarPane-34061>
|
||||
<Pane-34063>
|
||||
<ID>34063</ID>
|
||||
<RectRecentFloat>000000001700000022010000C8000000</RectRecentFloat>
|
||||
<RectRecentDocked>000000000000000022010000B1000000</RectRecentDocked>
|
||||
<RecentFrameAlignment>32768</RecentFrameAlignment>
|
||||
<RecentRowIndex>0</RecentRowIndex>
|
||||
<IsFloating>0</IsFloating>
|
||||
<MRUWidth>32767</MRUWidth>
|
||||
<PinState>0</PinState>
|
||||
</Pane-34063>
|
||||
<BasePane-34063>
|
||||
<IsVisible>0</IsVisible>
|
||||
</BasePane-34063>
|
||||
<IarPane-34063 />
|
||||
<Pane-34064>
|
||||
<ID>34064</ID>
|
||||
<RectRecentFloat>000000001700000022010000C8000000</RectRecentFloat>
|
||||
<RectRecentDocked>000000000000000022010000B1000000</RectRecentDocked>
|
||||
<RecentFrameAlignment>32768</RecentFrameAlignment>
|
||||
<RecentRowIndex>0</RecentRowIndex>
|
||||
<IsFloating>0</IsFloating>
|
||||
<MRUWidth>32767</MRUWidth>
|
||||
<PinState>0</PinState>
|
||||
</Pane-34064>
|
||||
<BasePane-34064>
|
||||
<IsVisible>0</IsVisible>
|
||||
</BasePane-34064>
|
||||
<IarPane-34064 />
|
||||
<Pane-34065>
|
||||
<ID>34065</ID>
|
||||
<RectRecentFloat>00000000170000000601000078010000</RectRecentFloat>
|
||||
<RectRecentDocked>0000000032000000AF01000067040000</RectRecentDocked>
|
||||
<RecentFrameAlignment>4096</RecentFrameAlignment>
|
||||
<RecentRowIndex>0</RecentRowIndex>
|
||||
<IsFloating>0</IsFloating>
|
||||
<MRUWidth>32767</MRUWidth>
|
||||
<PinState>0</PinState>
|
||||
</Pane-34065>
|
||||
<BasePane-34065>
|
||||
<IsVisible>1</IsVisible>
|
||||
</BasePane-34065>
|
||||
<DockingManager-256>
|
||||
<DockingPaneAndPaneDividers>0000000014000000000000000010000001000000FFFFFFFFFFFFFFFFAF01000032000000B301000067040000010000000200001004000000010000005DFFFFFFBD080000118500000000000000000000000000000000000001000000118500000100000011850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000108500000000000000000000000000000000000001000000108500000100000010850000000000000080000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000001000000040000000100000000000000000000000F85000000000000000000000000000000000000010000000F850000010000000F850000000000000080000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000001000000040000000100000000000000000000000D85000000000000000000000000000000000000010000000D850000010000000D850000000000000080000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000001000000040000000100000000000000000000000C85000000000000000000000000000000000000010000000C850000010000000C850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000078500000000000000000000000000000000000001000000078500000100000007850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000068500000000000000000000000000000000000001000000068500000100000006850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000058500000000000000000000000000000000000001000000058500000100000005850000000000000080000001000000FFFFFFFFFFFFFFFF0000000067040000000A00006B040000010000000100001004000000010000009EFBFFFF6F000000FFFFFFFF07000000048500000085000008850000098500000A8500000B8500000E850000FFFF02000B004354616262656450616E6500800000010000000000000082040000000A000065050000000000006B040000000A00004E050000000000004080005607000000FFFEFF054200750069006C006400010000000485000001000000FFFFFFFFFFFFFFFFFFFEFF094400650062007500670020004C006F006700010000000085000001000000FFFFFFFFFFFFFFFFFFFEFF0C4400650063006C00610072006100740069006F006E007300000000000885000001000000FFFFFFFFFFFFFFFFFFFEFF0A5200650066006500720065006E00630065007300000000000985000001000000FFFFFFFFFFFFFFFFFFFEFF0D460069006E006400200069006E002000460069006C0065007300000000000A85000001000000FFFFFFFFFFFFFFFFFFFEFF1541006D0062006900670075006F0075007300200044006500660069006E006900740069006F006E007300000000000B85000001000000FFFFFFFFFFFFFFFFFFFEFF0B54006F006F006C0020004F0075007400700075007400000000000E85000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFF0485000001000000FFFFFFFF04850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000038500000000000000000000000000000000000001000000038500000100000003850000000000000000000000000000</DockingPaneAndPaneDividers>
|
||||
</DockingManager-256>
|
||||
<MFCToolBar-34049>
|
||||
<Name>CMSIS-Pack</Name>
|
||||
<Buttons>00200000010000000100FFFF01001100434D4643546F6F6C426172427574746F6ED1840000000000000C000000FFFEFF00000000000000000000000000010000000100000000000000FFFEFF0A43004D005300490053002D005000610063006B0018000000</Buttons>
|
||||
</MFCToolBar-34049>
|
||||
<Pane-34049>
|
||||
<ID>34049</ID>
|
||||
<RectRecentFloat>0A0000000A0000006E0000006E000000</RectRecentFloat>
|
||||
<RectRecentDocked>FE020000000000002C0300001A000000</RectRecentDocked>
|
||||
<RecentFrameAlignment>8192</RecentFrameAlignment>
|
||||
<RecentRowIndex>0</RecentRowIndex>
|
||||
<IsFloating>0</IsFloating>
|
||||
<MRUWidth>24</MRUWidth>
|
||||
<PinState>0</PinState>
|
||||
</Pane-34049>
|
||||
<BasePane-34049>
|
||||
<IsVisible>1</IsVisible>
|
||||
</BasePane-34049>
|
||||
<MFCToolBar-34050>
|
||||
<Name>Main</Name>
|
||||
<Buttons>00200000010000002000FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000035000000FFFEFF000000000000000000000000000100000001000000018001E100000000000036000000FFFEFF000000000000000000000000000100000001000000018003E100000000040038000000FFFEFF0000000000000000000000000001000000010000000180008100000000000019000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000018007E10000000004003B000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000018023E10000000004003D000000FFFEFF000000000000000000000000000100000001000000018022E10000000004003C000000FFFEFF000000000000000000000000000100000001000000018025E10000000004003F000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001802BE100000000040042000000FFFEFF00000000000000000000000000010000000100000001802CE100000000040043000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000FFFF01000D005061737465436F6D626F426F784281000000000400FFFFFFFFFFFEFF0000000000000000000100000000000000010000007800000002002050FFFFFFFFFFFEFF0096000000000000000000018021810000000004002C000000FFFEFF000000000000000000000000000100000001000000018024E10000000004003E000000FFFEFF000000000000000000000000000100000001000000018028E100000000040040000000FFFEFF000000000000000000000000000100000001000000018029E100000000040041000000FFFEFF000000000000000000000000000100000001000000018002810000000004001B000000FFFEFF0000000000000000000000000001000000010000000180298100000000040030000000FFFEFF000000000000000000000000000100000001000000018027810000000004002E000000FFFEFF000000000000000000000000000100000001000000018028810000000004002F000000FFFEFF00000000000000000000000000010000000100000001801D8100000000040028000000FFFEFF00000000000000000000000000010000000100000001801E8100000000040029000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001800B810000000004001F000000FFFEFF00000000000000000000000000010000000100000001800C8100000000000020000000FFFEFF00000000000000000000000000010000000100000001805F8600000000000034000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001800E8100000000000022000000FFFEFF00000000000000000000000000010000000100000001800F8100000000000023000000FFFEFF00000000000000000000000000010000000100000000000000FFFEFF044D00610069006E00E8020000</Buttons>
|
||||
</MFCToolBar-34050>
|
||||
<Pane-34050>
|
||||
<ID>34050</ID>
|
||||
<RectRecentFloat>0A0000000A0000006E0000006E000000</RectRecentFloat>
|
||||
<RectRecentDocked>0000000000000000FE0200001A000000</RectRecentDocked>
|
||||
<RecentFrameAlignment>8192</RecentFrameAlignment>
|
||||
<RecentRowIndex>0</RecentRowIndex>
|
||||
<IsFloating>0</IsFloating>
|
||||
<MRUWidth>744</MRUWidth>
|
||||
<PinState>0</PinState>
|
||||
</Pane-34050>
|
||||
<BasePane-34050>
|
||||
<IsVisible>1</IsVisible>
|
||||
</BasePane-34050>
|
||||
</Desktop>
|
||||
<ChildIdMap>
|
||||
<WIN_DEBUG_LOG>34048</WIN_DEBUG_LOG>
|
||||
<TB_CMSISPACK>34049</TB_CMSISPACK>
|
||||
<TB_MAIN2>34050</TB_MAIN2>
|
||||
<WIN_BREAKPOINTS>34051</WIN_BREAKPOINTS>
|
||||
<WIN_BUILD>34052</WIN_BUILD>
|
||||
<WIN_CALL_GRAPH>34053</WIN_CALL_GRAPH>
|
||||
<WIN_CUSTOM_SFR>34054</WIN_CUSTOM_SFR>
|
||||
<WIN_C_STAT>34055</WIN_C_STAT>
|
||||
<WIN_FIND_ALL_DECLARATIONS>34056</WIN_FIND_ALL_DECLARATIONS>
|
||||
<WIN_FIND_ALL_REFERENCES>34057</WIN_FIND_ALL_REFERENCES>
|
||||
<WIN_FIND_IN_FILES>34058</WIN_FIND_IN_FILES>
|
||||
<WIN_SELECT_AMBIGUOUS_DEFINITIONS>34059</WIN_SELECT_AMBIGUOUS_DEFINITIONS>
|
||||
<WIN_SOURCEBROWSE_LOG>34060</WIN_SOURCEBROWSE_LOG>
|
||||
<WIN_SOURCE_BROWSE2>34061</WIN_SOURCE_BROWSE2>
|
||||
<WIN_TOOL_OUTPUT>34062</WIN_TOOL_OUTPUT>
|
||||
<WIN_TS_INTERRUPT_AVAILABLE>34063</WIN_TS_INTERRUPT_AVAILABLE>
|
||||
<WIN_TS_INTERRUPT_CONFIG>34064</WIN_TS_INTERRUPT_CONFIG>
|
||||
<WIN_WORKSPACE>34065</WIN_WORKSPACE>
|
||||
</ChildIdMap>
|
||||
<MDIWindows>
|
||||
<MDIClientArea-0>
|
||||
<MDITabsState>01000000030000000100000000000000000000000100000001000000FFFFFFFF00000000010000000100000000000000280000002800000000000000</MDITabsState>
|
||||
</MDIClientArea-0>
|
||||
</MDIWindows>
|
||||
</WindowStorage>
|
||||
</Workspace>
|
||||
@@ -0,0 +1,40 @@
|
||||
@REM This batch file has been generated by the IAR Embedded Workbench
|
||||
@REM C-SPY Debugger, as an aid to preparing a command line for running
|
||||
@REM the cspybat command line utility using the appropriate settings.
|
||||
@REM
|
||||
@REM Note that this file is generated every time a new debug session
|
||||
@REM is initialized, so you may want to move or rename the file before
|
||||
@REM making changes.
|
||||
@REM
|
||||
@REM You can launch cspybat by typing the name of this batch file followed
|
||||
@REM by the name of the debug file (usually an ELF/DWARF or UBROF file).
|
||||
@REM
|
||||
@REM Read about available command line parameters in the C-SPY Debugging
|
||||
@REM Guide. Hints about additional command line parameters that may be
|
||||
@REM useful in specific cases:
|
||||
@REM --download_only Downloads a code image without starting a debug
|
||||
@REM session afterwards.
|
||||
@REM --silent Omits the sign-on message.
|
||||
@REM --timeout Limits the maximum allowed execution time.
|
||||
@REM
|
||||
|
||||
|
||||
@echo off
|
||||
|
||||
if not "%~1" == "" goto debugFile
|
||||
|
||||
@echo on
|
||||
|
||||
"C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.4\common\bin\cspybat" -f "C:\Users\nisohack\Documents\work\x-ware_libs\threadx\ports\arm11\iar\example_build\settings\sample_threadx.Debug.general.xcl" --backend -f "C:\Users\nisohack\Documents\work\x-ware_libs\threadx\ports\arm11\iar\example_build\settings\sample_threadx.Debug.driver.xcl"
|
||||
|
||||
@echo off
|
||||
goto end
|
||||
|
||||
:debugFile
|
||||
|
||||
@echo on
|
||||
|
||||
"C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.4\common\bin\cspybat" -f "C:\Users\nisohack\Documents\work\x-ware_libs\threadx\ports\arm11\iar\example_build\settings\sample_threadx.Debug.general.xcl" "--debug_file=%~1" --backend -f "C:\Users\nisohack\Documents\work\x-ware_libs\threadx\ports\arm11\iar\example_build\settings\sample_threadx.Debug.driver.xcl"
|
||||
|
||||
@echo off
|
||||
:end
|
||||
@@ -0,0 +1,31 @@
|
||||
param([String]$debugfile = "");
|
||||
|
||||
# This powershell file has been generated by the IAR Embedded Workbench
|
||||
# C - SPY Debugger, as an aid to preparing a command line for running
|
||||
# the cspybat command line utility using the appropriate settings.
|
||||
#
|
||||
# Note that this file is generated every time a new debug session
|
||||
# is initialized, so you may want to move or rename the file before
|
||||
# making changes.
|
||||
#
|
||||
# You can launch cspybat by typing Powershell.exe -File followed by the name of this batch file, followed
|
||||
# by the name of the debug file (usually an ELF / DWARF or UBROF file).
|
||||
#
|
||||
# Read about available command line parameters in the C - SPY Debugging
|
||||
# Guide. Hints about additional command line parameters that may be
|
||||
# useful in specific cases :
|
||||
# --download_only Downloads a code image without starting a debug
|
||||
# session afterwards.
|
||||
# --silent Omits the sign - on message.
|
||||
# --timeout Limits the maximum allowed execution time.
|
||||
#
|
||||
|
||||
|
||||
if ($debugfile -eq "")
|
||||
{
|
||||
& "C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.4\common\bin\cspybat" -f "C:\Users\nisohack\Documents\work\x-ware_libs\threadx\ports\arm11\iar\example_build\settings\sample_threadx.Debug.general.xcl" --backend -f "C:\Users\nisohack\Documents\work\x-ware_libs\threadx\ports\arm11\iar\example_build\settings\sample_threadx.Debug.driver.xcl"
|
||||
}
|
||||
else
|
||||
{
|
||||
& "C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.4\common\bin\cspybat" -f "C:\Users\nisohack\Documents\work\x-ware_libs\threadx\ports\arm11\iar\example_build\settings\sample_threadx.Debug.general.xcl" --debug_file=$debugfile --backend -f "C:\Users\nisohack\Documents\work\x-ware_libs\threadx\ports\arm11\iar\example_build\settings\sample_threadx.Debug.driver.xcl"
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
"--endian=little"
|
||||
|
||||
"--cpu=ARM1136J-S"
|
||||
|
||||
"--fpu=None"
|
||||
|
||||
"--semihosting"
|
||||
|
||||
"--multicore_nr_of_cores=1"
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
"C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.4\arm\bin\armproc.dll"
|
||||
|
||||
"C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.4\arm\bin\armsim2.dll"
|
||||
|
||||
"C:\Users\nisohack\Documents\work\x-ware_libs\threadx\ports\arm11\iar\example_build\Debug\Exe\sample_threadx.out"
|
||||
|
||||
--plugin="C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.4\arm\bin\armbat.dll"
|
||||
|
||||
|
||||
|
||||
|
||||
13
ports/arm11/iar/example_build/settings/sample_threadx.crun
Normal file
13
ports/arm11/iar/example_build/settings/sample_threadx.crun
Normal file
@@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<crun>
|
||||
<version>1</version>
|
||||
<filter_entries>
|
||||
<filter index="0" type="default">
|
||||
<type>*</type>
|
||||
<start_file>*</start_file>
|
||||
<end_file>*</end_file>
|
||||
<action_debugger>0</action_debugger>
|
||||
<action_log>1</action_log>
|
||||
</filter>
|
||||
</filter_entries>
|
||||
</crun>
|
||||
1685
ports/arm11/iar/example_build/settings/sample_threadx.dbgdt
Normal file
1685
ports/arm11/iar/example_build/settings/sample_threadx.dbgdt
Normal file
File diff suppressed because one or more lines are too long
99
ports/arm11/iar/example_build/settings/sample_threadx.dnx
Normal file
99
ports/arm11/iar/example_build/settings/sample_threadx.dnx
Normal file
@@ -0,0 +1,99 @@
|
||||
<?xml version="1.0"?>
|
||||
<settings>
|
||||
<Stack>
|
||||
<FillEnabled>0</FillEnabled>
|
||||
<OverflowWarningsEnabled>1</OverflowWarningsEnabled>
|
||||
<WarningThreshold>90</WarningThreshold>
|
||||
<SpWarningsEnabled>1</SpWarningsEnabled>
|
||||
<WarnLogOnly>1</WarnLogOnly>
|
||||
<UseTrigger>1</UseTrigger>
|
||||
<TriggerName>main</TriggerName>
|
||||
<LimitSize>0</LimitSize>
|
||||
<ByteLimit>50</ByteLimit>
|
||||
</Stack>
|
||||
<Trace1>
|
||||
<Enabled>0</Enabled>
|
||||
<ShowSource>1</ShowSource>
|
||||
</Trace1>
|
||||
<DebugChecksum>
|
||||
<Checksum>1018058853</Checksum>
|
||||
</DebugChecksum>
|
||||
<CodeCoverage>
|
||||
<Enabled>0</Enabled>
|
||||
<ShowSource>0</ShowSource>
|
||||
<HideCovered>0</HideCovered>
|
||||
</CodeCoverage>
|
||||
<Disassembly>
|
||||
<InstrCount>0</InstrCount>
|
||||
</Disassembly>
|
||||
<Exceptions>
|
||||
<StopOnUncaught>_ 0</StopOnUncaught>
|
||||
<StopOnThrow>_ 0</StopOnThrow>
|
||||
</Exceptions>
|
||||
<CallStack>
|
||||
<ShowArgs>0</ShowArgs>
|
||||
</CallStack>
|
||||
<DriverProfiling>
|
||||
<Enabled>0</Enabled>
|
||||
<Mode>1</Mode>
|
||||
<Graph>0</Graph>
|
||||
<Symbiont>0</Symbiont>
|
||||
</DriverProfiling>
|
||||
<CallStackLog>
|
||||
<Enabled>0</Enabled>
|
||||
</CallStackLog>
|
||||
<CallStackStripe>
|
||||
<ShowTiming>1</ShowTiming>
|
||||
</CallStackStripe>
|
||||
<TermIOLog>
|
||||
<LoggingEnabled>_ 0</LoggingEnabled>
|
||||
<LogFile>_ ""</LogFile>
|
||||
</TermIOLog>
|
||||
<LogFile>
|
||||
<LoggingEnabled>_ 0</LoggingEnabled>
|
||||
<LogFile>_ ""</LogFile>
|
||||
<Category>_ 0</Category>
|
||||
</LogFile>
|
||||
<InterruptLog>
|
||||
<LogEnabled>0</LogEnabled>
|
||||
<GraphEnabled>0</GraphEnabled>
|
||||
<ShowTimeLog>1</ShowTimeLog>
|
||||
<SumEnabled>0</SumEnabled>
|
||||
<ShowTimeSum>1</ShowTimeSum>
|
||||
<SumSortOrder>0</SumSortOrder>
|
||||
</InterruptLog>
|
||||
<DataLog>
|
||||
<LogEnabled>0</LogEnabled>
|
||||
<GraphEnabled>0</GraphEnabled>
|
||||
<ShowTimeLog>1</ShowTimeLog>
|
||||
<SumEnabled>0</SumEnabled>
|
||||
<ShowTimeSum>1</ShowTimeSum>
|
||||
</DataLog>
|
||||
<DisassembleMode>
|
||||
<mode>0</mode>
|
||||
</DisassembleMode>
|
||||
<Breakpoints2>
|
||||
<Count>0</Count>
|
||||
</Breakpoints2>
|
||||
<Interrupts>
|
||||
<Enabled>1</Enabled>
|
||||
<Irq0>_ 0 9999 0 9999 1 0 0 100 0 1 "IRQ 1 0x18 CPSR.I"</Irq0>
|
||||
<Count>1</Count>
|
||||
</Interrupts>
|
||||
<MemConfig>
|
||||
<Base>1</Base>
|
||||
<Manual>0</Manual>
|
||||
<Ddf>1</Ddf>
|
||||
<TypeViol>0</TypeViol>
|
||||
<Stop>1</Stop>
|
||||
</MemConfig>
|
||||
<Aliases>
|
||||
<Count>0</Count>
|
||||
<SuppressDialog>0</SuppressDialog>
|
||||
</Aliases>
|
||||
<Simulator>
|
||||
<Freq>10000000</Freq>
|
||||
<FreqHi>0</FreqHi>
|
||||
<MultiCoreRunAll>1</MultiCoreRunAll>
|
||||
</Simulator>
|
||||
</settings>
|
||||
40
ports/arm11/iar/example_build/settings/tx.Debug.cspy.bat
Normal file
40
ports/arm11/iar/example_build/settings/tx.Debug.cspy.bat
Normal file
@@ -0,0 +1,40 @@
|
||||
@REM This batch file has been generated by the IAR Embedded Workbench
|
||||
@REM C-SPY Debugger, as an aid to preparing a command line for running
|
||||
@REM the cspybat command line utility using the appropriate settings.
|
||||
@REM
|
||||
@REM Note that this file is generated every time a new debug session
|
||||
@REM is initialized, so you may want to move or rename the file before
|
||||
@REM making changes.
|
||||
@REM
|
||||
@REM You can launch cspybat by typing the name of this batch file followed
|
||||
@REM by the name of the debug file (usually an ELF/DWARF or UBROF file).
|
||||
@REM
|
||||
@REM Read about available command line parameters in the C-SPY Debugging
|
||||
@REM Guide. Hints about additional command line parameters that may be
|
||||
@REM useful in specific cases:
|
||||
@REM --download_only Downloads a code image without starting a debug
|
||||
@REM session afterwards.
|
||||
@REM --silent Omits the sign-on message.
|
||||
@REM --timeout Limits the maximum allowed execution time.
|
||||
@REM
|
||||
|
||||
|
||||
@echo off
|
||||
|
||||
if not "%~1" == "" goto debugFile
|
||||
|
||||
@echo on
|
||||
|
||||
"C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.0_2\common\bin\cspybat" -f "C:\release\threadx\settings\tx.Debug.general.xcl" --backend -f "C:\release\threadx\settings\tx.Debug.driver.xcl"
|
||||
|
||||
@echo off
|
||||
goto end
|
||||
|
||||
:debugFile
|
||||
|
||||
@echo on
|
||||
|
||||
"C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.0_2\common\bin\cspybat" -f "C:\release\threadx\settings\tx.Debug.general.xcl" "--debug_file=%~1" --backend -f "C:\release\threadx\settings\tx.Debug.driver.xcl"
|
||||
|
||||
@echo off
|
||||
:end
|
||||
31
ports/arm11/iar/example_build/settings/tx.Debug.cspy.ps1
Normal file
31
ports/arm11/iar/example_build/settings/tx.Debug.cspy.ps1
Normal file
@@ -0,0 +1,31 @@
|
||||
param([String]$debugfile = "");
|
||||
|
||||
# This powershell file has been generated by the IAR Embedded Workbench
|
||||
# C - SPY Debugger, as an aid to preparing a command line for running
|
||||
# the cspybat command line utility using the appropriate settings.
|
||||
#
|
||||
# Note that this file is generated every time a new debug session
|
||||
# is initialized, so you may want to move or rename the file before
|
||||
# making changes.
|
||||
#
|
||||
# You can launch cspybat by typing Powershell.exe -File followed by the name of this batch file, followed
|
||||
# by the name of the debug file (usually an ELF / DWARF or UBROF file).
|
||||
#
|
||||
# Read about available command line parameters in the C - SPY Debugging
|
||||
# Guide. Hints about additional command line parameters that may be
|
||||
# useful in specific cases :
|
||||
# --download_only Downloads a code image without starting a debug
|
||||
# session afterwards.
|
||||
# --silent Omits the sign - on message.
|
||||
# --timeout Limits the maximum allowed execution time.
|
||||
#
|
||||
|
||||
|
||||
if ($debugfile -eq "")
|
||||
{
|
||||
& "C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.0_2\common\bin\cspybat" -f "C:\release\threadx\settings\tx.Debug.general.xcl" --backend -f "C:\release\threadx\settings\tx.Debug.driver.xcl"
|
||||
}
|
||||
else
|
||||
{
|
||||
& "C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.0_2\common\bin\cspybat" -f "C:\release\threadx\settings\tx.Debug.general.xcl" --debug_file=$debugfile --backend -f "C:\release\threadx\settings\tx.Debug.driver.xcl"
|
||||
}
|
||||
13
ports/arm11/iar/example_build/settings/tx.Debug.driver.xcl
Normal file
13
ports/arm11/iar/example_build/settings/tx.Debug.driver.xcl
Normal file
@@ -0,0 +1,13 @@
|
||||
"--endian=little"
|
||||
|
||||
"--cpu=ARM1136J-S"
|
||||
|
||||
"--fpu=None"
|
||||
|
||||
"--semihosting"
|
||||
|
||||
"--multicore_nr_of_cores=1"
|
||||
|
||||
|
||||
|
||||
|
||||
11
ports/arm11/iar/example_build/settings/tx.Debug.general.xcl
Normal file
11
ports/arm11/iar/example_build/settings/tx.Debug.general.xcl
Normal file
@@ -0,0 +1,11 @@
|
||||
"C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.0_2\arm\bin\armproc.dll"
|
||||
|
||||
"C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.0_2\arm\bin\armsim2.dll"
|
||||
|
||||
"C:\release\threadx\Debug\Exe\tx.out"
|
||||
|
||||
--plugin "C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.0_2\arm\bin\armbat.dll"
|
||||
|
||||
|
||||
|
||||
|
||||
13
ports/arm11/iar/example_build/settings/tx.crun
Normal file
13
ports/arm11/iar/example_build/settings/tx.crun
Normal file
@@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<crun>
|
||||
<version>1</version>
|
||||
<filter_entries>
|
||||
<filter index="0" type="default">
|
||||
<type>*</type>
|
||||
<start_file>*</start_file>
|
||||
<end_file>*</end_file>
|
||||
<action_debugger>0</action_debugger>
|
||||
<action_log>1</action_log>
|
||||
</filter>
|
||||
</filter_entries>
|
||||
</crun>
|
||||
4
ports/arm11/iar/example_build/settings/tx.dbgdt
Normal file
4
ports/arm11/iar/example_build/settings/tx.dbgdt
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Project>
|
||||
<WindowStorage />
|
||||
</Project>
|
||||
58
ports/arm11/iar/example_build/settings/tx.dnx
Normal file
58
ports/arm11/iar/example_build/settings/tx.dnx
Normal file
@@ -0,0 +1,58 @@
|
||||
<?xml version="1.0"?>
|
||||
<settings>
|
||||
<InterruptLog>
|
||||
<LogEnabled>0</LogEnabled>
|
||||
<GraphEnabled>0</GraphEnabled>
|
||||
<ShowTimeLog>1</ShowTimeLog>
|
||||
<SumEnabled>0</SumEnabled>
|
||||
<ShowTimeSum>1</ShowTimeSum>
|
||||
<SumSortOrder>0</SumSortOrder>
|
||||
</InterruptLog>
|
||||
<DataLog>
|
||||
<LogEnabled>0</LogEnabled>
|
||||
<GraphEnabled>0</GraphEnabled>
|
||||
<ShowTimeLog>1</ShowTimeLog>
|
||||
<SumEnabled>0</SumEnabled>
|
||||
<ShowTimeSum>1</ShowTimeSum>
|
||||
</DataLog>
|
||||
<Stack>
|
||||
<FillEnabled>0</FillEnabled>
|
||||
<OverflowWarningsEnabled>1</OverflowWarningsEnabled>
|
||||
<WarningThreshold>90</WarningThreshold>
|
||||
<SpWarningsEnabled>1</SpWarningsEnabled>
|
||||
<WarnLogOnly>1</WarnLogOnly>
|
||||
<UseTrigger>1</UseTrigger>
|
||||
<TriggerName>main</TriggerName>
|
||||
<LimitSize>0</LimitSize>
|
||||
<ByteLimit>50</ByteLimit>
|
||||
</Stack>
|
||||
<DisassembleMode>
|
||||
<mode>0</mode>
|
||||
</DisassembleMode>
|
||||
<Breakpoints2>
|
||||
<Count>0</Count>
|
||||
</Breakpoints2>
|
||||
<Interrupts>
|
||||
<Enabled>1</Enabled>
|
||||
</Interrupts>
|
||||
<MemConfig>
|
||||
<Base>1</Base>
|
||||
<Manual>0</Manual>
|
||||
<Ddf>1</Ddf>
|
||||
<TypeViol>0</TypeViol>
|
||||
<Stop>1</Stop>
|
||||
</MemConfig>
|
||||
<Trace1>
|
||||
<Enabled>0</Enabled>
|
||||
<ShowSource>1</ShowSource>
|
||||
</Trace1>
|
||||
<Aliases>
|
||||
<Count>0</Count>
|
||||
<SuppressDialog>0</SuppressDialog>
|
||||
</Aliases>
|
||||
<Simulator>
|
||||
<Freq>10000000</Freq>
|
||||
<FreqHi>0</FreqHi>
|
||||
<MultiCoreRunAll>1</MultiCoreRunAll>
|
||||
</Simulator>
|
||||
</settings>
|
||||
2974
ports/arm11/iar/example_build/tx.ewd
Normal file
2974
ports/arm11/iar/example_build/tx.ewd
Normal file
File diff suppressed because it is too large
Load Diff
2766
ports/arm11/iar/example_build/tx.ewp
Normal file
2766
ports/arm11/iar/example_build/tx.ewp
Normal file
File diff suppressed because it is too large
Load Diff
3427
ports/arm11/iar/example_build/tx.ewt
Normal file
3427
ports/arm11/iar/example_build/tx.ewt
Normal file
File diff suppressed because it is too large
Load Diff
339
ports/arm11/iar/example_build/tx_initialize_low_level.s
Normal file
339
ports/arm11/iar/example_build/tx_initialize_low_level.s
Normal file
@@ -0,0 +1,339 @@
|
||||
;/**************************************************************************/
|
||||
;/* */
|
||||
;/* Copyright (c) 1996-2018 by Express Logic Inc. */
|
||||
;/* */
|
||||
;/* This software is copyrighted by and is the sole property of Express */
|
||||
;/* Logic, Inc. All rights, title, ownership, or other interests */
|
||||
;/* in the software remain the property of Express Logic, Inc. This */
|
||||
;/* software may only be used in accordance with the corresponding */
|
||||
;/* license agreement. Any unauthorized use, duplication, transmission, */
|
||||
;/* distribution, or disclosure of this software is expressly forbidden. */
|
||||
;/* */
|
||||
;/* This Copyright notice may not be removed or modified without prior */
|
||||
;/* written consent of Express Logic, Inc. */
|
||||
;/* */
|
||||
;/* Express Logic, Inc. reserves the right to modify this software */
|
||||
;/* without notice. */
|
||||
;/* */
|
||||
;/* Express Logic, Inc. info@expresslogic.com */
|
||||
;/* 11423 West Bernardo Court http://www.expresslogic.com */
|
||||
;/* San Diego, CA 92127 */
|
||||
;/* */
|
||||
;/**************************************************************************/
|
||||
;
|
||||
;
|
||||
;/**************************************************************************/
|
||||
;/**************************************************************************/
|
||||
;/** */
|
||||
;/** ThreadX Component */
|
||||
;/** */
|
||||
;/** Initialize */
|
||||
;/** */
|
||||
;/**************************************************************************/
|
||||
;/**************************************************************************/
|
||||
;
|
||||
;
|
||||
;#define TX_SOURCE_CODE
|
||||
;
|
||||
;
|
||||
;/* Include necessary system files. */
|
||||
;
|
||||
;#include "tx_api.h"
|
||||
;#include "tx_initialize.h"
|
||||
;#include "tx_thread.h"
|
||||
;#include "tx_timer.h"
|
||||
;
|
||||
;
|
||||
SVC_MODE DEFINE 0xD3 ; Disable irq,fiq SVC mode
|
||||
IRQ_MODE DEFINE 0xD2 ; Disable irq,fiq IRQ mode
|
||||
FIQ_MODE DEFINE 0xD1 ; Disable irq,fiq FIQ mode
|
||||
SYS_MODE DEFINE 0xDF ; Disable irq,fiq SYS mode
|
||||
;
|
||||
;
|
||||
|
||||
EXTERN _tx_thread_system_stack_ptr
|
||||
EXTERN _tx_initialize_unused_memory
|
||||
EXTERN _tx_thread_context_save
|
||||
; EXTERN _tx_thread_vectored_context_save
|
||||
EXTERN _tx_thread_context_restore
|
||||
#ifdef TX_ENABLE_FIQ_SUPPORT
|
||||
EXTERN _tx_thread_fiq_context_save
|
||||
EXTERN _tx_thread_fiq_context_restore
|
||||
#endif
|
||||
#ifdef TX_ENABLE_IRQ_NESTING
|
||||
EXTERN _tx_thread_irq_nesting_start
|
||||
EXTERN _tx_thread_irq_nesting_end
|
||||
#endif
|
||||
#ifdef TX_ENABLE_FIQ_NESTING
|
||||
EXTERN _tx_thread_fiq_nesting_start
|
||||
EXTERN _tx_thread_fiq_nesting_end
|
||||
#endif
|
||||
EXTERN _tx_timer_interrupt
|
||||
EXTERN ?cstartup
|
||||
EXTERN _tx_build_options
|
||||
EXTERN _tx_version_id
|
||||
;
|
||||
;
|
||||
;
|
||||
;/* Define the FREE_MEM segment that will specify where free memory is
|
||||
; defined. This must also be located in at the end of other RAM segments
|
||||
; in the linker control file. The value of this segment is what is passed
|
||||
; to tx_application_define. */
|
||||
;
|
||||
RSEG FREE_MEM:DATA
|
||||
PUBLIC __tx_free_memory_start
|
||||
__tx_free_memory_start
|
||||
DS32 4
|
||||
;
|
||||
;
|
||||
;
|
||||
;
|
||||
;/**************************************************************************/
|
||||
;/* */
|
||||
;/* FUNCTION RELEASE */
|
||||
;/* */
|
||||
;/* _tx_initialize_low_level ARM11/IAR */
|
||||
;/* 6.0.1 */
|
||||
;/* AUTHOR */
|
||||
;/* */
|
||||
;/* William E. Lamie, Express Logic, Inc. */
|
||||
;/* */
|
||||
;/* DESCRIPTION */
|
||||
;/* */
|
||||
;/* This function is responsible for any low-level processor */
|
||||
;/* initialization, including setting up interrupt vectors, setting */
|
||||
;/* up a periodic timer interrupt source, saving the system stack */
|
||||
;/* pointer for use in ISR processing later, and finding the first */
|
||||
;/* available RAM memory address for tx_application_define. */
|
||||
;/* */
|
||||
;/* INPUT */
|
||||
;/* */
|
||||
;/* None */
|
||||
;/* */
|
||||
;/* OUTPUT */
|
||||
;/* */
|
||||
;/* None */
|
||||
;/* */
|
||||
;/* CALLS */
|
||||
;/* */
|
||||
;/* None */
|
||||
;/* */
|
||||
;/* CALLED BY */
|
||||
;/* */
|
||||
;/* _tx_initialize_kernel_enter ThreadX entry function */
|
||||
;/* */
|
||||
;/* RELEASE HISTORY */
|
||||
;/* */
|
||||
;/* DATE NAME DESCRIPTION */
|
||||
;/* */
|
||||
;/* 06-30-2020 William E. Lamie Initial Version 6.0.1 */
|
||||
;/* */
|
||||
;/**************************************************************************/
|
||||
;VOID _tx_initialize_low_level(VOID)
|
||||
;{
|
||||
RSEG .text:CODE:NOROOT(2)
|
||||
CODE32
|
||||
PUBLIC _tx_initialize_low_level
|
||||
_tx_initialize_low_level
|
||||
;
|
||||
; /****** NOTE ****** The IAR 4.11a and above releases call main in SYS mode. */
|
||||
;
|
||||
; /* Remember the stack pointer, link register, and switch to SVC mode. */
|
||||
;
|
||||
MOV r0, sp ; Remember the SP
|
||||
MOV r1, lr ; Remember the LR
|
||||
MOV r3, #SVC_MODE ; Build SVC mode CPSR
|
||||
MSR CPSR_cxsf, r3 ; Switch to SVC mode
|
||||
MOV sp, r0 ; Inherit the stack pointer setup by cstartup
|
||||
MOV lr, r1 ; Inherit the link register
|
||||
;
|
||||
; /* Pickup the start of free memory. */
|
||||
;
|
||||
LDR r0, =__tx_free_memory_start ; Get end of non-initialized RAM area
|
||||
;
|
||||
; /* Save the system stack pointer. */
|
||||
; _tx_thread_system_stack_ptr = (VOID_PTR) (sp);
|
||||
;
|
||||
; /* Save the first available memory address. */
|
||||
; _tx_initialize_unused_memory = (VOID_PTR) FREE_MEM;
|
||||
;
|
||||
LDR r2, =_tx_initialize_unused_memory ; Pickup unused memory ptr address
|
||||
STR r0, [r2, #0] ; Save first free memory address
|
||||
;
|
||||
; /* Setup Timer for periodic interrupts. */
|
||||
;
|
||||
; /* Done, return to caller. */
|
||||
;
|
||||
#ifdef TX_THUMB
|
||||
BX lr ; Return to caller
|
||||
#else
|
||||
MOV pc, lr ; Return to caller
|
||||
#endif
|
||||
;}
|
||||
;
|
||||
;/* Define shells for each of the interrupt vectors. */
|
||||
;
|
||||
RSEG .text:CODE:NOROOT(2)
|
||||
PUBLIC __tx_undefined
|
||||
__tx_undefined
|
||||
B __tx_undefined ; Undefined handler
|
||||
;
|
||||
RSEG .text:CODE:NOROOT(2)
|
||||
PUBLIC __tx_swi_interrupt
|
||||
__tx_swi_interrupt
|
||||
B __tx_swi_interrupt ; Software interrupt handler
|
||||
;
|
||||
RSEG .text:CODE:NOROOT(2)
|
||||
PUBLIC __tx_prefetch_handler
|
||||
__tx_prefetch_handler
|
||||
B __tx_prefetch_handler ; Prefetch exception handler
|
||||
;
|
||||
RSEG .text:CODE:NOROOT(2)
|
||||
PUBLIC __tx_abort_handler
|
||||
__tx_abort_handler
|
||||
B __tx_abort_handler ; Abort exception handler
|
||||
;
|
||||
RSEG .text:CODE:NOROOT(2)
|
||||
PUBLIC __tx_reserved_handler
|
||||
__tx_reserved_handler
|
||||
B __tx_reserved_handler ; Reserved exception handler
|
||||
;
|
||||
RSEG .text:CODE:NOROOT(2)
|
||||
PUBLIC __tx_irq_handler
|
||||
RSEG .text:CODE:NOROOT(2)
|
||||
PUBLIC __tx_irq_processing_return
|
||||
__tx_irq_handler
|
||||
;
|
||||
; /* Jump to context save to save system context. */
|
||||
B _tx_thread_context_save
|
||||
__tx_irq_processing_return
|
||||
;
|
||||
; /* At this point execution is still in the IRQ mode. The CPSR, point of
|
||||
; interrupt, and all C scratch registers are available for use. In
|
||||
; addition, IRQ interrupts may be re-enabled - with certain restrictions -
|
||||
; if nested IRQ interrupts are desired. Interrupts may be re-enabled over
|
||||
; small code sequences where lr is saved before enabling interrupts and
|
||||
; restored after interrupts are again disabled. */
|
||||
;
|
||||
; /* Interrupt nesting is allowed after calling _tx_thread_irq_nesting_start
|
||||
; from IRQ mode with interrupts disabled. This routine switches to the
|
||||
; system mode and returns with IRQ interrupts enabled.
|
||||
;
|
||||
; NOTE: It is very important to ensure all IRQ interrupts are cleared
|
||||
; prior to enabling nested IRQ interrupts. */
|
||||
#ifdef TX_ENABLE_IRQ_NESTING
|
||||
BL _tx_thread_irq_nesting_start
|
||||
#endif
|
||||
;
|
||||
; /* For debug purpose, execute the timer interrupt processing here. In
|
||||
; a real system, some kind of status indication would have to be checked
|
||||
; before the timer interrupt handler could be called. */
|
||||
;
|
||||
BL _tx_timer_interrupt ; Timer interrupt handler
|
||||
;
|
||||
; /* Application IRQ handlers can be called here! */
|
||||
;
|
||||
; /* If interrupt nesting was started earlier, the end of interrupt nesting
|
||||
; service must be called before returning to _tx_thread_context_restore.
|
||||
; This routine returns in processing in IRQ mode with interrupts disabled. */
|
||||
#ifdef TX_ENABLE_IRQ_NESTING
|
||||
BL _tx_thread_irq_nesting_end
|
||||
#endif
|
||||
;
|
||||
; /* Jump to context restore to restore system context. */
|
||||
B _tx_thread_context_restore
|
||||
;
|
||||
;
|
||||
; /* This is an example of a vectored IRQ handler. */
|
||||
;
|
||||
; RSEG .text:CODE:NOROOT(2)
|
||||
; PUBLIC __tx_example_vectored_irq_handler
|
||||
;__tx_example_vectored_irq_handler
|
||||
;
|
||||
; /* Jump to context save to save system context. */
|
||||
; STMDB sp!, {r0-r3} ; Save some scratch registers
|
||||
; MRS r0, SPSR ; Pickup saved SPSR
|
||||
; SUB lr, lr, #4 ; Adjust point of interrupt
|
||||
; STMDB sp!, {r0, r10, r12, lr} ; Store other registers
|
||||
; BL _tx_thread_vectored_context_save
|
||||
;
|
||||
; /* At this point execution is still in the IRQ mode. The CPSR, point of
|
||||
; interrupt, and all C scratch registers are available for use. In
|
||||
; addition, IRQ interrupts may be re-enabled - with certain restrictions -
|
||||
; if nested IRQ interrupts are desired. Interrupts may be re-enabled over
|
||||
; small code sequences where lr is saved before enabling interrupts and
|
||||
; restored after interrupts are again disabled. */
|
||||
;
|
||||
; /* Interrupt nesting is allowed after calling _tx_thread_irq_nesting_start
|
||||
; from IRQ mode with interrupts disabled. This routine switches to the
|
||||
; system mode and returns with IRQ interrupts enabled.
|
||||
;
|
||||
; NOTE: It is very important to ensure all IRQ interrupts are cleared
|
||||
; prior to enabling nested IRQ interrupts. */
|
||||
;#ifdef TX_ENABLE_IRQ_NESTING
|
||||
; BL _tx_thread_irq_nesting_start
|
||||
;#endif
|
||||
;
|
||||
; /* Application IRQ handler is called here! */
|
||||
;
|
||||
; /* If interrupt nesting was started earlier, the end of interrupt nesting
|
||||
; service must be called before returning to _tx_thread_context_restore.
|
||||
; This routine returns in processing in IRQ mode with interrupts disabled. */
|
||||
;#ifdef TX_ENABLE_IRQ_NESTING
|
||||
; BL _tx_thread_irq_nesting_end
|
||||
;#endif
|
||||
;
|
||||
; /* Jump to context restore to restore system context. */
|
||||
; B _tx_thread_context_restore
|
||||
;
|
||||
;
|
||||
#ifdef TX_ENABLE_FIQ_SUPPORT
|
||||
RSEG .text:CODE:NOROOT(2)
|
||||
PUBLIC __tx_fiq_handler
|
||||
RSEG .text:CODE:NOROOT(2)
|
||||
PUBLIC __tx_fiq_processing_return
|
||||
__tx_fiq_handler
|
||||
;
|
||||
; /* Jump to fiq context save to save system context. */
|
||||
B _tx_thread_fiq_context_save
|
||||
__tx_fiq_processing_return
|
||||
;
|
||||
; /* At this point execution is still in the FIQ mode. The CPSR, point of
|
||||
; interrupt, and all C scratch registers are available for use. */
|
||||
;
|
||||
; /* Interrupt nesting is allowed after calling _tx_thread_fiq_nesting_start
|
||||
; from FIQ mode with interrupts disabled. This routine switches to the
|
||||
; system mode and returns with FIQ interrupts enabled.
|
||||
;
|
||||
; NOTE: It is very important to ensure all FIQ interrupts are cleared
|
||||
; prior to enabling nested FIQ interrupts. */
|
||||
#ifdef TX_ENABLE_FIQ_NESTING
|
||||
BL _tx_thread_fiq_nesting_start
|
||||
#endif
|
||||
;
|
||||
; /* Application FIQ handlers can be called here! */
|
||||
;
|
||||
; /* If interrupt nesting was started earlier, the end of interrupt nesting
|
||||
; service must be called before returning to _tx_thread_fiq_context_restore. */
|
||||
#ifdef TX_ENABLE_FIQ_NESTING
|
||||
BL _tx_thread_fiq_nesting_end
|
||||
#endif
|
||||
;
|
||||
; /* Jump to fiq context restore to restore system context. */
|
||||
B _tx_thread_fiq_context_restore
|
||||
;
|
||||
;
|
||||
#else
|
||||
RSEG .text:CODE:NOROOT(2)
|
||||
PUBLIC __tx_fiq_handler
|
||||
__tx_fiq_handler
|
||||
B __tx_fiq_handler ; FIQ interrupt handler
|
||||
#endif
|
||||
;
|
||||
;
|
||||
BUILD_OPTIONS
|
||||
DC32 _tx_build_options ; Reference to ensure it comes in
|
||||
VERSION_ID
|
||||
DC32 _tx_version_id ; Reference to ensure it comes in
|
||||
END
|
||||
|
||||
Reference in New Issue
Block a user