Release 6.1.9

This commit is contained in:
Yuxin Zhou
2021-10-14 00:51:26 +00:00
parent 215df45d4b
commit 1af8404c54
1812 changed files with 60698 additions and 249862 deletions

View File

@@ -1,35 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project>
<configuration id="com.arc.cdt.toolchain.av2em.exeDebugConfig.1217165695" name="Debug">
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider">
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
<provider copy-of="extension" id="com.arc.cdt.toolchain.arc.language.settings.providers.MccBuildCommandParser"/>
<provider class="com.arc.cdt.toolchain.arc.language.settings.providers.MccBuiltinSpecsDetector" console="false" env-hash="1759269485362208296" id="com.arc.cdt.toolchain.arc.language.settings.providers.MccBuiltinSpecsDetector" keep-relative-paths="false" name="MetaWare MCC Built-in Compiler Settings" parameter="mcc ${FLAGS} -Hbatchnotmp -Hnoobj &quot;${INPUTS}&quot;" prefer-non-shared="true">
<language-scope id="org.eclipse.cdt.core.gcc"/>
<language-scope id="org.eclipse.cdt.core.g++"/>
</provider>
<provider class="com.arc.cdt.toolchain.arc.language.settings.providers.ClangBuildCommandParser" id="com.arc.cdt.toolchain.arc.language.settings.providers.ClangBuildCommandParser" keep-relative-paths="false" name="MetaWare CCAC Build Output Parser" parameter="ccac" prefer-non-shared="true"/>
<provider class="com.arc.cdt.toolchain.arc.language.settings.providers.ClangBuiltinSpecsDetector" console="false" env-hash="1787380308889999976" id="com.arc.cdt.toolchain.arc.language.settings.providers.ClangBuiltinSpecsDetector" keep-relative-paths="false" name="MetaWare CCAC Built-in Compiler Settings" parameter="ccac ${FLAGS} -v -dM -E &quot;${INPUTS}&quot;" prefer-non-shared="true">
<language-scope id="org.eclipse.cdt.core.gcc"/>
<language-scope id="org.eclipse.cdt.core.g++"/>
</provider>
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
</extension>
</configuration>
<configuration id="com.arc.cdt.toolchain.av2em.exeReleaseConfig.2022621224" name="Release">
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider">
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
<provider copy-of="extension" id="com.arc.cdt.toolchain.arc.language.settings.providers.MccBuildCommandParser"/>
<provider class="com.arc.cdt.toolchain.arc.language.settings.providers.MccBuiltinSpecsDetector" console="false" env-hash="1762254812507760552" id="com.arc.cdt.toolchain.arc.language.settings.providers.MccBuiltinSpecsDetector" keep-relative-paths="false" name="MetaWare MCC Built-in Compiler Settings" parameter="mcc ${FLAGS} -Hbatchnotmp -Hnoobj &quot;${INPUTS}&quot;" prefer-non-shared="true">
<language-scope id="org.eclipse.cdt.core.gcc"/>
<language-scope id="org.eclipse.cdt.core.g++"/>
</provider>
<provider copy-of="extension" id="com.arc.cdt.toolchain.arc.language.settings.providers.ClangBuildCommandParser"/>
<provider class="com.arc.cdt.toolchain.arc.language.settings.providers.ClangBuiltinSpecsDetector" console="false" env-hash="1749146334280612392" id="com.arc.cdt.toolchain.arc.language.settings.providers.ClangBuiltinSpecsDetector" keep-relative-paths="false" name="MetaWare CCAC Built-in Compiler Settings" parameter="ccac ${FLAGS} -v -dM -E &quot;${INPUTS}&quot;" prefer-non-shared="true">
<language-scope id="org.eclipse.cdt.core.gcc"/>
<language-scope id="org.eclipse.cdt.core.g++"/>
</provider>
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
</extension>
</configuration>
</project>

View File

@@ -51,6 +51,7 @@ 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()
@@ -91,7 +92,7 @@ CHAR *pointer = TX_NULL;
/* 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,
tx_thread_create(&thread_1, "thread 1", thread_1_entry, 1,
pointer, DEMO_STACK_SIZE,
16, 16, 4, TX_AUTO_START);
@@ -179,6 +180,7 @@ void thread_0_entry(ULONG thread_input)
UINT status;
/* This thread simply sits in while-forever-sleep loop. */
while(1)
{

View File

@@ -14,9 +14,8 @@ IVT_SIZE_BYTES = IVT_SIZE_ITEMS * 4;//in bytes
//define ICCM and DCCM locations
MEMORY {
ICCM: ORIGIN = 0x00000000, LENGTH = 128K
DCCM: ORIGIN = 0x80000000, LENGTH = 128K
ICCM: ORIGIN = 0x00000000, LENGTH = 128K
DCCM: ORIGIN = 0x80000000, LENGTH = 128K
}
//define sections and groups
@@ -24,11 +23,11 @@ SECTIONS {
GROUP: {
.ivt (TEXT) : # Interrupt table
{
___ivt1 = .;
* (.ivt)
___ivt2 = .;
// Make the IVT at least IVT_SIZE_BYTES
. += (___ivt2 - ___ivt1 < IVT_SIZE_BYTES) ? (IVT_SIZE_BYTES - (___ivt2 - ___ivt1)) : 0;
___ivt1 = .;
* (.ivt)
___ivt2 = .;
// Make the IVT at least IVT_SIZE_BYTES
. += (___ivt2 - ___ivt1 < IVT_SIZE_BYTES) ? (IVT_SIZE_BYTES - (___ivt2 - ___ivt1)) : 0;
}
.ivh (TEXT) : // Interrupt handlers

View File

@@ -8,33 +8,32 @@
;/* and in the root directory of this software. */
;/* */
;/**************************************************************************/
;
;
;/**************************************************************************/
;/**************************************************************************/
;/** */
;/** ThreadX Component */
;/** */
;/** ThreadX Component */
;/** */
;/** Initialize */
;/** */
;/**************************************************************************/
;/**************************************************************************/
;
.equ IRQ_SELECT, 0x40B
.equ KSTACK_TOP, 0x264
.equ KSTACK_BASE, 0x265
.equ STATUS32_SC, 0x4000
;
;
; /* Define section for placement after all linker allocated RAM memory. This
; is used to calculate the first free address that is passed to
; is used to calculate the first free address that is passed to
; tx_appication_define, soley for the ThreadX application's use. */
;
.section ".free_memory","aw"
.align 4
.global _tx_first_free_address
_tx_first_free_address:
.space 4
.space 4
;
; /* Define section for placement before the main stack area for setting
; up the STACK_TOP address for hardware stack checking. */
@@ -56,67 +55,71 @@ _tx_system_stack_base_address:
;
;
.text
;/**************************************************************************/
;/* */
;/* FUNCTION RELEASE */
;/* */
;/**************************************************************************/
;/* */
;/* FUNCTION RELEASE */
;/* */
;/* _tx_initialize_low_level ARCv2_EM/MetaWare */
;/* 6.1 */
;/* 6.1.9 */
;/* AUTHOR */
;/* */
;/* William E. Lamie, Microsoft Corporation */
;/* */
;/* 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 */
;/* */
;/* */
;/* 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 */
;/* */
;/* 09-30-2020 William E. Lamie Initial Version 6.1 */
;/* 10-15-2021 Andres Mlinar Modified comment(s), optimized*/
;/* system stack usage, */
;/* resulting in version 6.1.9 */
;/* */
;/**************************************************************************/
;VOID _tx_initialize_low_level(VOID)
;{
.global _tx_initialize_low_level
.type _tx_initialize_low_level, @function
.type _tx_initialize_low_level, @function
_tx_initialize_low_level:
.ifdef TX_ENABLE_HW_STACK_CHECKING
mov r0, _tx_system_stack_top_address ; Pickup top of system stack (lowest memory address)
sr r0, [KSTACK_TOP] ; Setup KSTACK_TOP
sr r0, [KSTACK_TOP] ; Setup KSTACK_TOP
mov r0, _tx_system_stack_base_address ; Pickup base of system stack (highest memory address)
sr r0, [KSTACK_BASE] ; Setup KSTACK_BASE
lr r0, [status32] ; Pickup current STATUS32
or r0, r0, STATUS32_SC ; Or in hardware stack checking enable bit (SC)
kflag r0 ; Enable hardware stack checking
kflag r0 ; Enable hardware stack checking
.endif
;
; /* Save the system stack pointer. */
; _tx_thread_system_stack_ptr = (VOID_PTR) (sp);
;
st sp, [gp, _tx_thread_system_stack_ptr@sda] ; Save system stack pointer
mov r0, _estack ; Pickup the end of stack address
st r0, [gp, _tx_thread_system_stack_ptr@sda] ; Save system stack pointer
;
;
; /* Pickup the first available memory address. */
@@ -130,7 +133,7 @@ _tx_initialize_low_level:
;
;
; /* Setup Timer 0 for periodic interrupts at interrupt vector 16. */
;
;
mov r0, 0 ; Disable additional ISR reg saving/restoring
sr r0, [AUX_IRQ_CTRL] ;
@@ -171,7 +174,7 @@ _tx_initialize_low_level:
;
; /* Define default vector table entries. */
;
.global _tx_memory_error
.global _tx_memory_error
_tx_memory_error:
flag 1
nop
@@ -179,7 +182,7 @@ _tx_memory_error:
nop
b _tx_memory_error
.global _tx_instruction_error
.global _tx_instruction_error
_tx_instruction_error:
flag 1
nop
@@ -187,7 +190,7 @@ _tx_instruction_error:
nop
b _tx_instruction_error
.global _tx_ev_machine_check
.global _tx_ev_machine_check
_tx_ev_machine_check:
flag 1
nop
@@ -195,7 +198,7 @@ _tx_ev_machine_check:
nop
b _tx_ev_machine_check
.global _tx_ev_tblmiss_inst
.global _tx_ev_tblmiss_inst
_tx_ev_tblmiss_inst:
flag 1
nop
@@ -203,7 +206,7 @@ _tx_ev_tblmiss_inst:
nop
b _tx_ev_tblmiss_inst
.global _tx_ev_tblmiss_data
.global _tx_ev_tblmiss_data
_tx_ev_tblmiss_data:
flag 1
nop
@@ -211,7 +214,7 @@ _tx_ev_tblmiss_data:
nop
b _tx_ev_tblmiss_data
.global _tx_ev_protection_viol
.global _tx_ev_protection_viol
_tx_ev_protection_viol:
flag 1
nop
@@ -219,7 +222,7 @@ _tx_ev_protection_viol:
nop
b _tx_ev_protection_viol
.global _tx_ev_privilege_viol
.global _tx_ev_privilege_viol
_tx_ev_privilege_viol:
flag 1
nop
@@ -227,7 +230,7 @@ _tx_ev_privilege_viol:
nop
b _tx_ev_privilege_viol
.global _tx_ev_software_int
.global _tx_ev_software_int
_tx_ev_software_int:
flag 1
nop
@@ -235,7 +238,7 @@ _tx_ev_software_int:
nop
b _tx_ev_software_int
.global _tx_ev_trap
.global _tx_ev_trap
_tx_ev_trap:
flag 1
nop
@@ -243,7 +246,7 @@ _tx_ev_trap:
nop
b _tx_ev_trap
.global _tx_ev_extension
.global _tx_ev_extension
_tx_ev_extension:
flag 1
nop
@@ -251,7 +254,7 @@ _tx_ev_extension:
nop
b _tx_ev_extension
.global _tx_ev_divide_by_zero
.global _tx_ev_divide_by_zero
_tx_ev_divide_by_zero:
flag 1
nop
@@ -259,7 +262,7 @@ _tx_ev_divide_by_zero:
nop
b _tx_ev_divide_by_zero
.global _tx_ev_dc_error
.global _tx_ev_dc_error
_tx_ev_dc_error:
flag 1
nop
@@ -267,7 +270,7 @@ _tx_ev_dc_error:
nop
b _tx_ev_dc_error
.global _tx_ev_maligned
.global _tx_ev_maligned
_tx_ev_maligned:
flag 1
nop
@@ -275,7 +278,7 @@ _tx_ev_maligned:
nop
b _tx_ev_maligned
.global _tx_unsued_0
.global _tx_unsued_0
_tx_unsued_0:
flag 1
nop
@@ -283,7 +286,7 @@ _tx_unsued_0:
nop
b _tx_unsued_0
.global _tx_unused_1
.global _tx_unused_1
_tx_unused_1:
flag 1
nop
@@ -291,7 +294,7 @@ _tx_unused_1:
nop
b _tx_unused_1
.global _tx_timer_0
.global _tx_timer_0
_tx_timer_0:
;
; /* By default, setup Timer 0 as the ThreadX timer interrupt. */
@@ -311,7 +314,7 @@ _tx_timer_0:
; nop
; b _tx_timer_0
.global _tx_timer_1
.global _tx_timer_1
_tx_timer_1:
sub sp, sp, 160 ; Allocate an interrupt stack frame
st blink, [sp, 16] ; Save blink
@@ -333,7 +336,7 @@ _tx_timer_1:
; nop
; b _tx_timer_1
.global _tx_undefined_0
.global _tx_undefined_0
_tx_undefined_0:
flag 1
nop
@@ -341,7 +344,7 @@ _tx_undefined_0:
nop
b _tx_undefined_0
.global _tx_undefined_1
.global _tx_undefined_1
_tx_undefined_1:
flag 1
nop
@@ -349,7 +352,7 @@ _tx_undefined_1:
nop
b _tx_undefined_1
.global _tx_undefined_2
.global _tx_undefined_2
_tx_undefined_2:
flag 1
nop