fix: 内源检视问题修复

Signed-off-by: arvinzzz <zhaotianyu9@huawei.com>
This commit is contained in:
arvinzzz 2022-03-21 14:37:31 +08:00
parent 74def19245
commit c24363bc50
149 changed files with 256 additions and 304 deletions

View File

@ -369,7 +369,7 @@ config KERNEL_LMK
default n default n
depends on KERNEL_EXTKERNEL depends on KERNEL_EXTKERNEL
help help
Configuration item for low momery killer tailoring. Configuration item for low memory killer tailoring.
If you wish to build LiteOS with support for low memory killer. If you wish to build LiteOS with support for low memory killer.
config KERNEL_LMK_DEBUG config KERNEL_LMK_DEBUG
@ -574,7 +574,7 @@ config MEM_LEAKCHECK
depends on DEBUG_VERSION && MEM_DEBUG depends on DEBUG_VERSION && MEM_DEBUG
select KERNEL_BACKTRACE select KERNEL_BACKTRACE
help help
Answer Y to enable record the LR of Function call stack of Mem operation, it can check the mem leak through the infomations of mem node. Answer Y to enable record the LR of Function call stack of Mem operation, it can check the mem leak through the informations of mem node.
config BASE_MEM_NODE_INTEGRITY_CHECK config BASE_MEM_NODE_INTEGRITY_CHECK
bool "Enable integrity check or not" bool "Enable integrity check or not"
default n default n

View File

@ -131,4 +131,4 @@ How to contribute a chip based on Liteos-M kernel:
[Kernel Subsystem](https://gitee.com/openharmony/docs/blob/HEAD/en/readme/kernel-subsystem.md) [Kernel Subsystem](https://gitee.com/openharmony/docs/blob/HEAD/en/readme/kernel-subsystem.md)
**kernel\_liteos\_m** [kernel\_liteos\_m](https://gitee.com/openharmony/kernel_liteos_m/blob/master/README.md)

View File

@ -131,5 +131,5 @@ LiteOS-M内核移植的具体开发板的工程由社区开发者提供可以
[内核子系统](https://gitee.com/openharmony/docs/blob/HEAD/zh-cn/readme/%E5%86%85%E6%A0%B8%E5%AD%90%E7%B3%BB%E7%BB%9F.md) [内核子系统](https://gitee.com/openharmony/docs/blob/HEAD/zh-cn/readme/%E5%86%85%E6%A0%B8%E5%AD%90%E7%B3%BB%E7%BB%9F.md)
**kernel\_liteos\_m** [kernel\_liteos\_m](https://gitee.com/openharmony/kernel_liteos_m/blob/master/README_zh.md)

View File

@ -163,7 +163,6 @@ inline UINT32 ArchIsIntActive(VOID)
Output : None Output : None
Return : None Return : None
**************************************************************************** */ **************************************************************************** */
/*lint -e529*/
LITE_OS_SEC_TEXT_MINOR VOID HalHwiDefaultHandler(VOID) LITE_OS_SEC_TEXT_MINOR VOID HalHwiDefaultHandler(VOID)
{ {
PRINT_ERR("%s irqnum:%u\n", __FUNCTION__, HwiNumGet()); PRINT_ERR("%s irqnum:%u\n", __FUNCTION__, HwiNumGet());

0
arch/arm/cortex-m3/keil/los_atomic.S Executable file → Normal file
View File

View File

@ -190,7 +190,7 @@ _hwiActiveCheck
CMP R3, #0 CMP R3, #0
BEQ _hwiActiveCheckNext BEQ _hwiActiveCheckNext
; exc occured in IRQ ; exc occurred in IRQ
ORR R0, R0, #FLAG_HWI_ACTIVE ORR R0, R0, #FLAG_HWI_ACTIVE
RBIT R2, R3 RBIT R2, R3
CLZ R2, R2 CLZ R2, R2
@ -228,19 +228,19 @@ _hwiActiveCheckNext
AND R2, R2,R3 AND R2, R2,R3
CMP R2,#0 CMP R2,#0
BNE _ExcInMSP BNE _ExcInMSP
; exc occured in Task or Init or exc ; exc occurred in Task or Init or exc
; reserved for register info from task stack ; reserved for register info from task stack
LDR R2, =g_taskScheduled LDR R2, =g_taskScheduled
LDR R2, [R2] LDR R2, [R2]
TST R2, #1 ; OS_FLG_BGD_ACTIVE TST R2, #1 ; OS_FLG_BGD_ACTIVE
BEQ _ExcInMSP ; if exc occured in Init then branch BEQ _ExcInMSP ; if exc occurred in Init then branch
CMP LR, #0xFFFFFFED ;auto push floating registers CMP LR, #0xFFFFFFED ;auto push floating registers
BNE _NoFloatInPsp BNE _NoFloatInPsp
; exc occured in Task ; exc occurred in Task
MOV R2, R13 MOV R2, R13
SUB R13, #96 ; add 8 Bytes reg(for STMFD) SUB R13, #96 ; add 8 Bytes reg(for STMFD)

View File

@ -40,14 +40,12 @@
#include "los_memory.h" #include "los_memory.h"
#include "los_membox.h" #include "los_membox.h"
/*lint -save -e40 -e522 -e533*/
UINT32 g_intCount = 0; UINT32 g_intCount = 0;
/*lint -restore*/
#ifdef __ICCARM__ #ifdef __ICCARM__
#pragma location = ".data.vector" #pragma location = ".data.vector"
#elif defined(__CC_ARM) || defined(__GNUC__) #elif defined(__CC_ARM) || defined(__GNUC__)
#pragma data_alignment=LOSCFG_ARCH_HWI_VECTOR_ALIGN #pragma data_alignment = LOSCFG_ARCH_HWI_VECTOR_ALIGN
LITE_OS_SEC_VEC LITE_OS_SEC_VEC
#endif #endif
/* * /* *
@ -198,7 +196,6 @@ inline UINT32 ArchIsIntActive(VOID)
Output : None Output : None
Return : None Return : None
**************************************************************************** */ **************************************************************************** */
/*lint -e529*/
LITE_OS_SEC_TEXT_MINOR VOID HalHwiDefaultHandler(VOID) LITE_OS_SEC_TEXT_MINOR VOID HalHwiDefaultHandler(VOID)
{ {
PRINT_ERR("%s irqnum:%u\n", __FUNCTION__, HwiNumGet()); PRINT_ERR("%s irqnum:%u\n", __FUNCTION__, HwiNumGet());
@ -602,7 +599,7 @@ LITE_OS_SEC_TEXT_INIT VOID HalHwiInit(VOID)
/* Enable USGFAULT, BUSFAULT, MEMFAULT */ /* Enable USGFAULT, BUSFAULT, MEMFAULT */
*(volatile UINT32 *)OS_NVIC_SHCSR |= (USGFAULT | BUSFAULT | MEMFAULT); *(volatile UINT32 *)OS_NVIC_SHCSR |= (USGFAULT | BUSFAULT | MEMFAULT);
/* Enable DIV 0 and unaligned exception */ /* Enable DIV 0 and unaligned exception */
#ifdef LOSCFG_ARCH_UNALIGNED_EXC #ifdef LOSCFG_ARCH_UNALIGNED_EXC
*(volatile UINT32 *)OS_NVIC_CCR |= (DIV0FAULT | UNALIGNFAULT); *(volatile UINT32 *)OS_NVIC_CCR |= (DIV0FAULT | UNALIGNFAULT);

0
arch/arm/cortex-m33/gcc/NTZ/los_arch_atomic.h Executable file → Normal file
View File

0
arch/arm/cortex-m33/gcc/NTZ/los_arch_context.h Executable file → Normal file
View File

0
arch/arm/cortex-m33/gcc/NTZ/los_arch_interrupt.h Executable file → Normal file
View File

8
arch/arm/cortex-m33/gcc/NTZ/los_exc.S Executable file → Normal file
View File

@ -263,7 +263,7 @@ _hwiActiveCheck:
CMP R3, #0 CMP R3, #0
BEQ _hwiActiveCheckNext BEQ _hwiActiveCheckNext
// exc occured in IRQ // exc occurred in IRQ
ORR R0, R0, #FLAG_HWI_ACTIVE ORR R0, R0, #FLAG_HWI_ACTIVE
RBIT R2, R3 RBIT R2, R3
CLZ R2, R2 CLZ R2, R2
@ -316,19 +316,19 @@ _hwiActiveCheckNext:
AND R2, R2,R3 AND R2, R2,R3
CMP R2,#0 CMP R2,#0
BNE _ExcInMSP BNE _ExcInMSP
// exc occured in Task or Init or exc // exc occurred in Task or Init or exc
// reserved for register info from task stack // reserved for register info from task stack
LDR R2, =g_taskScheduled LDR R2, =g_taskScheduled
LDR R2, [R2] LDR R2, [R2]
TST R2, #1 // OS_FLG_BGD_ACTIVE TST R2, #1 // OS_FLG_BGD_ACTIVE
BEQ _ExcInMSP // if exc occured in Init then branch BEQ _ExcInMSP // if exc occurred in Init then branch
CMP LR, #0xFFFFFFED //auto push floating registers CMP LR, #0xFFFFFFED //auto push floating registers
BNE _NoFloatInPsp BNE _NoFloatInPsp
// exc occured in Task // exc occurred in Task
MOV R2, R13 MOV R2, R13
SUB R13, #96 // add 8 Bytes reg(for STMFD) SUB R13, #96 // add 8 Bytes reg(for STMFD)

5
arch/arm/cortex-m33/gcc/NTZ/los_interrupt.c Executable file → Normal file
View File

@ -41,10 +41,8 @@
#include "los_membox.h" #include "los_membox.h"
#define DEF_HANDLER_START_INDEX 2 #define DEF_HANDLER_START_INDEX 2
/*lint -save -e40 -e522 -e533*/
UINT32 g_intCount = 0; UINT32 g_intCount = 0;
/*lint -restore*/
/* * /* *
* @ingroup los_hwi * @ingroup los_hwi
@ -189,7 +187,6 @@ inline UINT32 ArchIsIntActive(VOID)
Output : None Output : None
Return : None Return : None
**************************************************************************** */ **************************************************************************** */
/*lint -e529*/
LITE_OS_SEC_TEXT_MINOR VOID HalHwiDefaultHandler(VOID) LITE_OS_SEC_TEXT_MINOR VOID HalHwiDefaultHandler(VOID)
{ {
PRINT_ERR("%s irqnum:%u\n", __FUNCTION__, HwiNumGet()); PRINT_ERR("%s irqnum:%u\n", __FUNCTION__, HwiNumGet());
@ -593,7 +590,7 @@ LITE_OS_SEC_TEXT_INIT VOID HalHwiInit(VOID)
/* Enable USGFAULT, BUSFAULT, MEMFAULT */ /* Enable USGFAULT, BUSFAULT, MEMFAULT */
*(volatile UINT32 *)OS_NVIC_SHCSR |= (USGFAULT | BUSFAULT | MEMFAULT); *(volatile UINT32 *)OS_NVIC_SHCSR |= (USGFAULT | BUSFAULT | MEMFAULT);
/* Enable DIV 0 and unaligned exception */ /* Enable DIV 0 and unaligned exception */
#ifdef LOSCFG_ARCH_UNALIGNED_EXC #ifdef LOSCFG_ARCH_UNALIGNED_EXC
*(volatile UINT32 *)OS_NVIC_CCR |= (DIV0FAULT | UNALIGNFAULT); *(volatile UINT32 *)OS_NVIC_CCR |= (DIV0FAULT | UNALIGNFAULT);

0
arch/arm/cortex-m33/gcc/NTZ/los_timer.c Executable file → Normal file
View File

View File

View File

View File

8
arch/arm/cortex-m33/gcc/TZ/non_secure/los_exc.S Executable file → Normal file
View File

@ -247,7 +247,7 @@ _hwiActiveCheck:
CMP R3, #0 CMP R3, #0
BEQ _hwiActiveCheckNext BEQ _hwiActiveCheckNext
// exc occured in IRQ // exc occurred in IRQ
ORR R0, R0, #FLAG_HWI_ACTIVE ORR R0, R0, #FLAG_HWI_ACTIVE
RBIT R2, R3 RBIT R2, R3
CLZ R2, R2 CLZ R2, R2
@ -300,19 +300,19 @@ _hwiActiveCheckNext:
AND R2, R2,R3 AND R2, R2,R3
CMP R2,#0 CMP R2,#0
BNE _ExcInMSP BNE _ExcInMSP
// exc occured in Task or Init or exc // exc occurred in Task or Init or exc
// reserved for register info from task stack // reserved for register info from task stack
LDR R2, =g_taskScheduled LDR R2, =g_taskScheduled
LDR R2, [R2] LDR R2, [R2]
TST R2, #1 // OS_FLG_BGD_ACTIVE TST R2, #1 // OS_FLG_BGD_ACTIVE
BEQ _ExcInMSP // if exc occured in Init then branch BEQ _ExcInMSP // if exc occurred in Init then branch
CMP LR, #0xFFFFFFED //auto push floating registers CMP LR, #0xFFFFFFED //auto push floating registers
BNE _NoFloatInPsp BNE _NoFloatInPsp
// exc occured in Task // exc occurred in Task
MOV R2, R13 MOV R2, R13
SUB R13, #96 // add 8 Bytes reg(for STMFD) SUB R13, #96 // add 8 Bytes reg(for STMFD)

5
arch/arm/cortex-m33/gcc/TZ/non_secure/los_interrupt.c Executable file → Normal file
View File

@ -41,11 +41,8 @@
#include "los_membox.h" #include "los_membox.h"
#define DEF_HANDLER_START_INDEX 2 #define DEF_HANDLER_START_INDEX 2
/*lint -save -e40 -e522 -e533*/
UINT32 g_intCount = 0; UINT32 g_intCount = 0;
/*lint -restore*/
/* * /* *
* @ingroup los_hwi * @ingroup los_hwi
* Hardware interrupt form mapping handling function array. * Hardware interrupt form mapping handling function array.
@ -593,7 +590,7 @@ LITE_OS_SEC_TEXT_INIT VOID HalHwiInit(VOID)
/* Enable USGFAULT, BUSFAULT, MEMFAULT */ /* Enable USGFAULT, BUSFAULT, MEMFAULT */
*(volatile UINT32 *)OS_NVIC_SHCSR |= (USGFAULT | BUSFAULT | MEMFAULT); *(volatile UINT32 *)OS_NVIC_SHCSR |= (USGFAULT | BUSFAULT | MEMFAULT);
/* Enable DIV 0 and unaligned exception */ /* Enable DIV 0 and unaligned exception */
#ifdef LOSCFG_ARCH_UNALIGNED_EXC #ifdef LOSCFG_ARCH_UNALIGNED_EXC
*(volatile UINT32 *)OS_NVIC_CCR |= (DIV0FAULT | UNALIGNFAULT); *(volatile UINT32 *)OS_NVIC_CCR |= (DIV0FAULT | UNALIGNFAULT);

0
arch/arm/cortex-m33/gcc/TZ/non_secure/los_timer.c Executable file → Normal file
View File

0
arch/arm/cortex-m33/gcc/TZ/non_secure/los_trustzone.c Executable file → Normal file
View File

0
arch/arm/cortex-m33/gcc/TZ/non_secure/los_trustzone.h Executable file → Normal file
View File

0
arch/arm/cortex-m33/gcc/TZ/secure/los_secure_context.c Executable file → Normal file
View File

0
arch/arm/cortex-m33/gcc/TZ/secure/los_secure_context.h Executable file → Normal file
View File

View File

0
arch/arm/cortex-m33/gcc/TZ/secure/los_secure_heap.c Executable file → Normal file
View File

0
arch/arm/cortex-m33/gcc/TZ/secure/los_secure_heap.h Executable file → Normal file
View File

0
arch/arm/cortex-m33/gcc/TZ/secure/los_secure_macros.h Executable file → Normal file
View File

View File

@ -56,8 +56,8 @@ FLAG_ADDR_VALID EQU 0x10000
FLAG_HWI_ACTIVE EQU 0x20000 FLAG_HWI_ACTIVE EQU 0x20000
FLAG_NO_FLOAT EQU 0x10000000 FLAG_NO_FLOAT EQU 0x10000000
OS_NVIC_FSR EQU 0xE000ED28 ;include BusFault/MemFault/UsageFault State Regeister OS_NVIC_FSR EQU 0xE000ED28 ;include BusFault/MemFault/UsageFault State Register
OS_NVIC_HFSR EQU 0xE000ED2C ;HardFault State Regeister OS_NVIC_HFSR EQU 0xE000ED2C ;HardFault State Register
OS_NVIC_BFAR EQU 0xE000ED38 OS_NVIC_BFAR EQU 0xE000ED38
OS_NVIC_MMAR EQU 0xE000ED34 OS_NVIC_MMAR EQU 0xE000ED34
OS_NVIC_ACT_BASE EQU 0xE000E300 OS_NVIC_ACT_BASE EQU 0xE000E300
@ -190,7 +190,7 @@ _hwiActiveCheck
CMP R3, #0 CMP R3, #0
BEQ _hwiActiveCheckNext BEQ _hwiActiveCheckNext
; exc occured in IRQ ; exc occurred in IRQ
ORR R0, R0, #FLAG_HWI_ACTIVE ORR R0, R0, #FLAG_HWI_ACTIVE
RBIT R2, R3 RBIT R2, R3
CLZ R2, R2 CLZ R2, R2
@ -228,19 +228,19 @@ _hwiActiveCheckNext
AND R2, R2,R3 AND R2, R2,R3
CMP R2,#0 CMP R2,#0
BNE _ExcInMSP BNE _ExcInMSP
; exc occured in Task or Init or exc ; exc occurred in Task or Init or exc
; reserved for register info from task stack ; reserved for register info from task stack
LDR R2, =g_taskScheduled LDR R2, =g_taskScheduled
LDR R2, [R2] LDR R2, [R2]
TST R2, #1 ; OS_FLG_BGD_ACTIVE TST R2, #1 ; OS_FLG_BGD_ACTIVE
BEQ _ExcInMSP ; if exc occured in Init then branch BEQ _ExcInMSP ; if exc occurred in Init then branch
CMP LR, #0xFFFFFFED ;auto push floating registers CMP LR, #0xFFFFFFED ;auto push floating registers
BNE _NoFloatInPsp BNE _NoFloatInPsp
; exc occured in Task ; exc occurred in Task
MOV R2, R13 MOV R2, R13
SUB R13, #96 ; add 8 Bytes reg(for STMFD) SUB R13, #96 ; add 8 Bytes reg(for STMFD)

View File

@ -46,7 +46,7 @@ UINT32 g_intCount = 0;
/*lint -restore*/ /*lint -restore*/
#pragma location = ".data.vector" #pragma location = ".data.vector"
#pragma data_alignment=LOSCFG_ARCH_HWI_VECTOR_ALIGN #pragma data_alignment = LOSCFG_ARCH_HWI_VECTOR_ALIGN
/* * /* *
* @ingroup los_hwi * @ingroup los_hwi
* hardware interrupt form mapping handling function array. * hardware interrupt form mapping handling function array.

View File

@ -55,8 +55,8 @@ FLAG_ADDR_VALID EQU 0x10000
FLAG_HWI_ACTIVE EQU 0x20000 FLAG_HWI_ACTIVE EQU 0x20000
FLAG_NO_FLOAT EQU 0x10000000 FLAG_NO_FLOAT EQU 0x10000000
OS_NVIC_FSR EQU 0xE000ED28 ;include BusFault/MemFault/UsageFault State Regeister OS_NVIC_FSR EQU 0xE000ED28 ;include BusFault/MemFault/UsageFault State Register
OS_NVIC_HFSR EQU 0xE000ED2C ;HardFault State Regeister OS_NVIC_HFSR EQU 0xE000ED2C ;HardFault State Register
OS_NVIC_BFAR EQU 0xE000ED38 OS_NVIC_BFAR EQU 0xE000ED38
OS_NVIC_MMAR EQU 0xE000ED34 OS_NVIC_MMAR EQU 0xE000ED34
OS_NVIC_ACT_BASE EQU 0xE000E300 OS_NVIC_ACT_BASE EQU 0xE000E300
@ -179,7 +179,7 @@ _hwiActiveCheck
CMP R3, #0 CMP R3, #0
BEQ _hwiActiveCheckNext BEQ _hwiActiveCheckNext
; exc occured in IRQ ; exc occurred in IRQ
ORR R0, R0, #FLAG_HWI_ACTIVE ORR R0, R0, #FLAG_HWI_ACTIVE
RBIT R2, R3 RBIT R2, R3
CLZ R2, R2 CLZ R2, R2
@ -217,19 +217,19 @@ _hwiActiveCheckNext
AND R2, R2,R3 AND R2, R2,R3
CMP R2,#0 CMP R2,#0
BNE _ExcInMSP BNE _ExcInMSP
; exc occured in Task or Init or exc ; exc occurred in Task or Init or exc
; reserved for register info from task stack ; reserved for register info from task stack
LDR R2, =g_taskScheduled LDR R2, =g_taskScheduled
LDR R2, [R2] LDR R2, [R2]
TST R2, #1 ; OS_FLG_BGD_ACTIVE TST R2, #1 ; OS_FLG_BGD_ACTIVE
BEQ _ExcInMSP ; if exc occured in Init then branch BEQ _ExcInMSP ; if exc occurred in Init then branch
CMP LR, #0xFFFFFFED ;auto push floating registers CMP LR, #0xFFFFFFED ;auto push floating registers
BNE _NoFloatInPsp BNE _NoFloatInPsp
; exc occured in Task ; exc occurred in Task
MOV R2, R13 MOV R2, R13
SUB R13, #96 ; add 8 Bytes reg(for STMFD) SUB R13, #96 ; add 8 Bytes reg(for STMFD)

View File

@ -46,7 +46,7 @@ UINT32 g_intCount = 0;
/*lint -restore*/ /*lint -restore*/
#pragma location = ".data.vector" #pragma location = ".data.vector"
#pragma data_alignment=LOSCFG_ARCH_HWI_VECTOR_ALIGN #pragma data_alignment = LOSCFG_ARCH_HWI_VECTOR_ALIGN
/* * /* *
* @ingroup los_hwi * @ingroup los_hwi
* hardware interrupt form mapping handling function array. * hardware interrupt form mapping handling function array.

View File

@ -34,7 +34,7 @@
#include "los_config.h" #include "los_config.h"
#include "los_list.h" #include "los_list.h"
#pragma data_alignment=0x4 #pragma data_alignment = 0x4
STATIC UINT8 g_secureHeap[LOSCFG_SECURE_HEAP_SIZE] = {0}; STATIC UINT8 g_secureHeap[LOSCFG_SECURE_HEAP_SIZE] = {0};
STATIC LOS_DL_LIST g_secureHeapFreeList = {NULL, NULL}; STATIC LOS_DL_LIST g_secureHeapFreeList = {NULL, NULL};

View File

@ -263,7 +263,7 @@ _hwiActiveCheck:
CMP R3, #0 CMP R3, #0
BEQ _hwiActiveCheckNext BEQ _hwiActiveCheckNext
// exc occured in IRQ // exc occurred in IRQ
ORR R0, R0, #FLAG_HWI_ACTIVE ORR R0, R0, #FLAG_HWI_ACTIVE
RBIT R2, R3 RBIT R2, R3
CLZ R2, R2 CLZ R2, R2
@ -316,19 +316,19 @@ _hwiActiveCheckNext:
AND R2, R2,R3 AND R2, R2,R3
CMP R2,#0 CMP R2,#0
BNE _ExcInMSP BNE _ExcInMSP
// exc occured in Task or Init or exc // exc occurred in Task or Init or exc
// reserved for register info from task stack // reserved for register info from task stack
LDR R2, =g_taskScheduled LDR R2, =g_taskScheduled
LDR R2, [R2] LDR R2, [R2]
TST R2, #1 // OS_FLG_BGD_ACTIVE TST R2, #1 // OS_FLG_BGD_ACTIVE
BEQ _ExcInMSP // if exc occured in Init then branch BEQ _ExcInMSP // if exc occurred in Init then branch
CMP LR, #0xFFFFFFED //auto push floating registers CMP LR, #0xFFFFFFED //auto push floating registers
BNE _NoFloatInPsp BNE _NoFloatInPsp
// exc occured in Task // exc occurred in Task
MOV R2, R13 MOV R2, R13
SUB R13, #96 // add 8 Bytes reg(for STMFD) SUB R13, #96 // add 8 Bytes reg(for STMFD)

View File

@ -40,11 +40,8 @@
#include "los_memory.h" #include "los_memory.h"
#include "los_membox.h" #include "los_membox.h"
/*lint -save -e40 -e522 -e533*/
UINT32 g_intCount = 0; UINT32 g_intCount = 0;
/*lint -restore*/
/* * /* *
* @ingroup los_hwi * @ingroup los_hwi
* Hardware interrupt form mapping handling function array. * Hardware interrupt form mapping handling function array.
@ -193,7 +190,6 @@ inline UINT32 ArchIsIntActive(VOID)
Output : None Output : None
Return : None Return : None
**************************************************************************** */ **************************************************************************** */
/*lint -e529*/
LITE_OS_SEC_TEXT_MINOR VOID HalHwiDefaultHandler(VOID) LITE_OS_SEC_TEXT_MINOR VOID HalHwiDefaultHandler(VOID)
{ {
PRINT_ERR("%s irqnum:%u\n", __FUNCTION__, HwiNumGet()); PRINT_ERR("%s irqnum:%u\n", __FUNCTION__, HwiNumGet());
@ -607,7 +603,7 @@ LITE_OS_SEC_TEXT_INIT VOID HalHwiInit(VOID)
/* Enable USGFAULT, BUSFAULT, MEMFAULT */ /* Enable USGFAULT, BUSFAULT, MEMFAULT */
*(volatile UINT32 *)OS_NVIC_SHCSR |= (USGFAULT | BUSFAULT | MEMFAULT); *(volatile UINT32 *)OS_NVIC_SHCSR |= (USGFAULT | BUSFAULT | MEMFAULT);
/* Enable DIV 0 and unaligned exception */ /* Enable DIV 0 and unaligned exception */
#ifdef LOSCFG_ARCH_UNALIGNED_EXC #ifdef LOSCFG_ARCH_UNALIGNED_EXC
*(volatile UINT32 *)OS_NVIC_CCR |= (DIV0FAULT | UNALIGNFAULT); *(volatile UINT32 *)OS_NVIC_CCR |= (DIV0FAULT | UNALIGNFAULT);

View File

@ -190,7 +190,7 @@ _hwiActiveCheck
CMP R3, #0 CMP R3, #0
BEQ _hwiActiveCheckNext BEQ _hwiActiveCheckNext
; exc occured in IRQ ; exc occurred in IRQ
ORR R0, R0, #FLAG_HWI_ACTIVE ORR R0, R0, #FLAG_HWI_ACTIVE
RBIT R2, R3 RBIT R2, R3
CLZ R2, R2 CLZ R2, R2
@ -228,19 +228,19 @@ _hwiActiveCheckNext
AND R2, R2,R3 AND R2, R2,R3
CMP R2,#0 CMP R2,#0
BNE _ExcInMSP BNE _ExcInMSP
; exc occured in Task or Init or exc ; exc occurred in Task or Init or exc
; reserved for register info from task stack ; reserved for register info from task stack
LDR R2, =g_taskScheduled LDR R2, =g_taskScheduled
LDR R2, [R2] LDR R2, [R2]
TST R2, #1 ; OS_FLG_BGD_ACTIVE TST R2, #1 ; OS_FLG_BGD_ACTIVE
BEQ _ExcInMSP ; if exc occured in Init then branch BEQ _ExcInMSP ; if exc occurred in Init then branch
CMP LR, #0xFFFFFFED ;auto push floating registers CMP LR, #0xFFFFFFED ;auto push floating registers
BNE _NoFloatInPsp BNE _NoFloatInPsp
; exc occured in Task ; exc occurred in Task
MOV R2, R13 MOV R2, R13
SUB R13, #96 ; add 8 Bytes reg(for STMFD) SUB R13, #96 ; add 8 Bytes reg(for STMFD)

View File

@ -41,13 +41,11 @@
#include "los_memory.h" #include "los_memory.h"
#include "los_membox.h" #include "los_membox.h"
/*lint -save -e40 -e522 -e533*/
UINT32 g_intCount = 0; UINT32 g_intCount = 0;
/*lint -restore*/
#ifdef __ICCARM__ #ifdef __ICCARM__
#pragma location = ".data.vector" #pragma location = ".data.vector"
#pragma data_alignment=LOSCFG_ARCH_HWI_VECTOR_ALIGN #pragma data_alignment = LOSCFG_ARCH_HWI_VECTOR_ALIGN
#elif defined(__CC_ARM) || defined(__GNUC__) #elif defined(__CC_ARM) || defined(__GNUC__)
LITE_OS_SEC_VEC LITE_OS_SEC_VEC
#endif #endif
@ -603,7 +601,7 @@ LITE_OS_SEC_TEXT_INIT VOID HalHwiInit(VOID)
/* Enable USGFAULT, BUSFAULT, MEMFAULT */ /* Enable USGFAULT, BUSFAULT, MEMFAULT */
*(volatile UINT32 *)OS_NVIC_SHCSR |= (USGFAULT | BUSFAULT | MEMFAULT); *(volatile UINT32 *)OS_NVIC_SHCSR |= (USGFAULT | BUSFAULT | MEMFAULT);
/* Enable DIV 0 and unaligned exception */ /* Enable DIV 0 and unaligned exception */
#ifdef LOSCFG_ARCH_UNALIGNED_EXC #ifdef LOSCFG_ARCH_UNALIGNED_EXC
*(volatile UINT32 *)OS_NVIC_CCR |= (DIV0FAULT | UNALIGNFAULT); *(volatile UINT32 *)OS_NVIC_CCR |= (DIV0FAULT | UNALIGNFAULT);

0
arch/arm/cortex-m55/gcc/BUILD.gn Executable file → Normal file
View File

0
arch/arm/cortex-m55/gcc/NTZ/BUILD.gn Executable file → Normal file
View File

0
arch/arm/cortex-m55/gcc/NTZ/los_arch_atomic.h Executable file → Normal file
View File

0
arch/arm/cortex-m55/gcc/NTZ/los_arch_context.h Executable file → Normal file
View File

0
arch/arm/cortex-m55/gcc/NTZ/los_arch_interrupt.h Executable file → Normal file
View File

0
arch/arm/cortex-m55/gcc/NTZ/los_arch_timer.h Executable file → Normal file
View File

0
arch/arm/cortex-m55/gcc/NTZ/los_context.c Executable file → Normal file
View File

0
arch/arm/cortex-m55/gcc/NTZ/los_dispatch.S Executable file → Normal file
View File

8
arch/arm/cortex-m55/gcc/NTZ/los_exc.S Executable file → Normal file
View File

@ -260,7 +260,7 @@ _hwiActiveCheck:
CMP R3, #0 CMP R3, #0
BEQ _hwiActiveCheckNext BEQ _hwiActiveCheckNext
// exc occured in IRQ // exc occurred in IRQ
ORR R0, R0, #FLAG_HWI_ACTIVE ORR R0, R0, #FLAG_HWI_ACTIVE
RBIT R2, R3 RBIT R2, R3
CLZ R2, R2 CLZ R2, R2
@ -313,19 +313,19 @@ _hwiActiveCheckNext:
AND R2, R2, R3 AND R2, R2, R3
CMP R2, #0 CMP R2, #0
BNE _ExcInMSP BNE _ExcInMSP
// exc occured in Task or Init or exc // exc occurred in Task or Init or exc
// reserved for register info from task stack // reserved for register info from task stack
LDR R2, =g_taskScheduled LDR R2, =g_taskScheduled
LDR R2, [R2] LDR R2, [R2]
TST R2, #1 // OS_FLG_BGD_ACTIVE TST R2, #1 // OS_FLG_BGD_ACTIVE
BEQ _ExcInMSP // if exc occured in Init then branch BEQ _ExcInMSP // if exc occurred in Init then branch
CMP LR, #0xFFFFFFED //auto push floating registers CMP LR, #0xFFFFFFED //auto push floating registers
BNE _NoFloatInPsp BNE _NoFloatInPsp
// exc occured in Task // exc occurred in Task
MOV R2, R13 MOV R2, R13
SUB R13, #96 // add 8 Bytes reg(for STMFD) SUB R13, #96 // add 8 Bytes reg(for STMFD)

3
arch/arm/cortex-m55/gcc/NTZ/los_interrupt.c Executable file → Normal file
View File

@ -40,10 +40,8 @@
#include "los_membox.h" #include "los_membox.h"
#define DEF_HANDLER_START_INDEX 2 #define DEF_HANDLER_START_INDEX 2
/*lint -save -e40 -e522 -e533*/
UINT32 g_intCount = 0; UINT32 g_intCount = 0;
/*lint -restore*/
/* * /* *
* @ingroup los_hwi * @ingroup los_hwi
@ -193,7 +191,6 @@ inline UINT32 ArchIsIntActive(VOID)
Output : None Output : None
Return : None Return : None
**************************************************************************** */ **************************************************************************** */
/*lint -e529*/
LITE_OS_SEC_TEXT_MINOR VOID HalHwiDefaultHandler(VOID) LITE_OS_SEC_TEXT_MINOR VOID HalHwiDefaultHandler(VOID)
{ {
PRINT_ERR("%s irqnum:%u\n", __FUNCTION__, HwiNumGet()); PRINT_ERR("%s irqnum:%u\n", __FUNCTION__, HwiNumGet());

0
arch/arm/cortex-m55/gcc/NTZ/los_timer.c Executable file → Normal file
View File

View File

@ -263,7 +263,7 @@ _hwiActiveCheck:
CMP R3, #0 CMP R3, #0
BEQ _hwiActiveCheckNext BEQ _hwiActiveCheckNext
// exc occured in IRQ // exc occurred in IRQ
ORR R0, R0, #FLAG_HWI_ACTIVE ORR R0, R0, #FLAG_HWI_ACTIVE
RBIT R2, R3 RBIT R2, R3
CLZ R2, R2 CLZ R2, R2
@ -316,19 +316,19 @@ _hwiActiveCheckNext:
AND R2, R2,R3 AND R2, R2,R3
CMP R2,#0 CMP R2,#0
BNE _ExcInMSP BNE _ExcInMSP
// exc occured in Task or Init or exc // exc occurred in Task or Init or exc
// reserved for register info from task stack // reserved for register info from task stack
LDR R2, =g_taskScheduled LDR R2, =g_taskScheduled
LDR R2, [R2] LDR R2, [R2]
TST R2, #1 // OS_FLG_BGD_ACTIVE TST R2, #1 // OS_FLG_BGD_ACTIVE
BEQ _ExcInMSP // if exc occured in Init then branch BEQ _ExcInMSP // if exc occurred in Init then branch
CMP LR, #0xFFFFFFED //auto push floating registers CMP LR, #0xFFFFFFED //auto push floating registers
BNE _NoFloatInPsp BNE _NoFloatInPsp
// exc occured in Task // exc occurred in Task
MOV R2, R13 MOV R2, R13
SUB R13, #96 // add 8 Bytes reg(for STMFD) SUB R13, #96 // add 8 Bytes reg(for STMFD)

View File

@ -40,11 +40,8 @@
#include "los_memory.h" #include "los_memory.h"
#include "los_membox.h" #include "los_membox.h"
/*lint -save -e40 -e522 -e533*/
UINT32 g_intCount = 0; UINT32 g_intCount = 0;
/*lint -restore*/
/* * /* *
* @ingroup los_hwi * @ingroup los_hwi
* Hardware interrupt form mapping handling function array. * Hardware interrupt form mapping handling function array.
@ -188,7 +185,6 @@ inline UINT32 ArchIsIntActive(VOID)
Output : None Output : None
Return : None Return : None
**************************************************************************** */ **************************************************************************** */
/*lint -e529*/
LITE_OS_SEC_TEXT_MINOR VOID HalHwiDefaultHandler(VOID) LITE_OS_SEC_TEXT_MINOR VOID HalHwiDefaultHandler(VOID)
{ {
PRINT_ERR("%s irqnum:%u\n", __FUNCTION__, HwiNumGet()); PRINT_ERR("%s irqnum:%u\n", __FUNCTION__, HwiNumGet());
@ -592,7 +588,7 @@ LITE_OS_SEC_TEXT_INIT VOID HalHwiInit(VOID)
/* Enable USGFAULT, BUSFAULT, MEMFAULT */ /* Enable USGFAULT, BUSFAULT, MEMFAULT */
*(volatile UINT32 *)OS_NVIC_SHCSR |= (USGFAULT | BUSFAULT | MEMFAULT); *(volatile UINT32 *)OS_NVIC_SHCSR |= (USGFAULT | BUSFAULT | MEMFAULT);
/* Enable DIV 0 and unaligned exception */ /* Enable DIV 0 and unaligned exception */
#ifdef LOSCFG_ARCH_UNALIGNED_EXC #ifdef LOSCFG_ARCH_UNALIGNED_EXC
*(volatile UINT32 *)OS_NVIC_CCR |= (DIV0FAULT | UNALIGNFAULT); *(volatile UINT32 *)OS_NVIC_CCR |= (DIV0FAULT | UNALIGNFAULT);

View File

@ -190,7 +190,7 @@ _hwiActiveCheck
CMP R3, #0 CMP R3, #0
BEQ _hwiActiveCheckNext BEQ _hwiActiveCheckNext
; exc occured in IRQ ; exc occurred in IRQ
ORR R0, R0, #FLAG_HWI_ACTIVE ORR R0, R0, #FLAG_HWI_ACTIVE
RBIT R2, R3 RBIT R2, R3
CLZ R2, R2 CLZ R2, R2
@ -228,19 +228,19 @@ _hwiActiveCheckNext
AND R2, R2,R3 AND R2, R2,R3
CMP R2,#0 CMP R2,#0
BNE _ExcInMSP BNE _ExcInMSP
; exc occured in Task or Init or exc ; exc occurred in Task or Init or exc
; reserved for register info from task stack ; reserved for register info from task stack
LDR R2, =g_taskScheduled LDR R2, =g_taskScheduled
LDR R2, [R2] LDR R2, [R2]
TST R2, #1 ; OS_FLG_BGD_ACTIVE TST R2, #1 ; OS_FLG_BGD_ACTIVE
BEQ _ExcInMSP ; if exc occured in Init then branch BEQ _ExcInMSP ; if exc occurred in Init then branch
CMP LR, #0xFFFFFFED ;auto push floating registers CMP LR, #0xFFFFFFED ;auto push floating registers
BNE _NoFloatInPsp BNE _NoFloatInPsp
; exc occured in Task ; exc occurred in Task
MOV R2, R13 MOV R2, R13
SUB R13, #96 ; add 8 Bytes reg(for STMFD) SUB R13, #96 ; add 8 Bytes reg(for STMFD)

View File

@ -41,12 +41,10 @@
#include "los_memory.h" #include "los_memory.h"
#include "los_membox.h" #include "los_membox.h"
/*lint -save -e40 -e522 -e533*/
UINT32 g_intCount = 0; UINT32 g_intCount = 0;
/*lint -restore*/
#pragma location = ".data.vector" #pragma location = ".data.vector"
#pragma data_alignment=LOSCFG_ARCH_HWI_VECTOR_ALIGN #pragma data_alignment = LOSCFG_ARCH_HWI_VECTOR_ALIGN
/* * /* *
* @ingroup los_hwi * @ingroup los_hwi
* Hardware interrupt form mapping handling function array. * Hardware interrupt form mapping handling function array.
@ -599,7 +597,7 @@ LITE_OS_SEC_TEXT_INIT VOID HalHwiInit(VOID)
/* Enable USGFAULT, BUSFAULT, MEMFAULT */ /* Enable USGFAULT, BUSFAULT, MEMFAULT */
*(volatile UINT32 *)OS_NVIC_SHCSR |= (USGFAULT | BUSFAULT | MEMFAULT); *(volatile UINT32 *)OS_NVIC_SHCSR |= (USGFAULT | BUSFAULT | MEMFAULT);
/* Enable DIV 0 and unaligned exception */ /* Enable DIV 0 and unaligned exception */
*(volatile UINT32 *)OS_NVIC_CCR |= (DIV0FAULT | UNALIGNFAULT); *(volatile UINT32 *)OS_NVIC_CCR |= (DIV0FAULT | UNALIGNFAULT);

0
arch/csky/v2/gcc/BUILD.gn Executable file → Normal file
View File

0
arch/include/los_atomic.h Executable file → Normal file
View File

View File

@ -179,7 +179,6 @@ exc_entry:
csrr a0, mcause csrr a0, mcause
mv a1, sp mv a1, sp
/* /*
* TODO: Call the exception handler function
* By default, the function template is provided in * By default, the function template is provided in
* system_Device.c, you can adjust it as you want * system_Device.c, you can adjust it as you want
*/ */

View File

@ -105,7 +105,7 @@
* Based on the types of the four 8-bit arithmetic operations, the SIMD 8-bit add/subtract instructions * Based on the types of the four 8-bit arithmetic operations, the SIMD 8-bit add/subtract instructions
* can be classified into 2 main categories: Addition (four 8-bit addition), and Subtraction (four 8-bit * can be classified into 2 main categories: Addition (four 8-bit addition), and Subtraction (four 8-bit
* subtraction). * subtraction).
* Based on the way of how an overflow condition is handled for singed or unsigned operation, the * Based on the way of how an overflow condition is handled for signed or unsigned operation, the
* SIMD 8-bit add/subtract instructions can be classified into 5 groups: Wrap-around (dropping * SIMD 8-bit add/subtract instructions can be classified into 5 groups: Wrap-around (dropping
* overflow), Signed Halving (keeping overflow by dropping 1 LSB bit), Unsigned Halving, Signed * overflow), Signed Halving (keeping overflow by dropping 1 LSB bit), Unsigned Halving, Signed
* Saturation (clipping overflow), and Unsigned Saturation. * Saturation (clipping overflow), and Unsigned Saturation.

View File

@ -33,6 +33,7 @@
#define _LOS_ARCH_ATOMIC_H #define _LOS_ARCH_ATOMIC_H
#include "los_compiler.h" #include "los_compiler.h"
#include "los_interrupt.h"
#ifdef __cplusplus #ifdef __cplusplus
#if __cplusplus #if __cplusplus

View File

@ -332,7 +332,7 @@ VOID HalExcEntry(const LosExcContext *excBufAddr)
ExcInfoDisplay(excBufAddr); ExcInfoDisplay(excBufAddr);
if (LOS_TaskIsRunning()) { if (LOS_TaskIsRunning()) {
PRINTK("----------------All Task infomation ------------\n"); PRINTK("----------------All Task information ------------\n");
OsGetAllTskInfo(); OsGetAllTskInfo();
} }

View File

@ -52,8 +52,8 @@ extern "C" {
#define CODE_SECTION_NAME ".text" #define CODE_SECTION_NAME ".text"
/* The default C stack section name is CSTACK */ /* The default C stack section name is CSTACK */
#define CSTACK_SECTION_NAME "CSTACK" #define CSTACK_SECTION_NAME "CSTACK"
#pragma section=CODE_SECTION_NAME #pragma section = CODE_SECTION_NAME
#pragma section=CSTACK_SECTION_NAME #pragma section = CSTACK_SECTION_NAME
/* Default only one code section. In fact, there may be more than one. /* Default only one code section. In fact, there may be more than one.
You can define more than one and redefine the OsStackDataIsCodeAddr function You can define more than one and redefine the OsStackDataIsCodeAddr function

View File

@ -82,7 +82,7 @@ LITE_OS_SEC_TEXT_INIT UINT32 OsCpupInit()
/***************************************************************************** /*****************************************************************************
Function : OsTskCycleStart Function : OsTskCycleStart
Description: start task to get cycles count in current task begining Description: start task to get cycles count in current task beginning
Input : None Input : None
Return : None Return : None
*****************************************************************************/ *****************************************************************************/

21
components/dynlink/los_dynlink.c Executable file → Normal file
View File

@ -73,8 +73,8 @@ const SymInfo symTableEnd __attribute__((section(".table.end"))) = {
.name = "end", .name = "end",
.addr = 0 .addr = 0
}; };
#pragma section=".TABLE.START" #pragma section = ".TABLE.START"
#pragma section=".table.end" #pragma section = ".table.end"
#elif defined(__CLANG_ARM) || defined(__GNUC__) #elif defined(__CLANG_ARM) || defined(__GNUC__)
/** /**
* Place instructions below in rodata segment of .ld linker file: * Place instructions below in rodata segment of .ld linker file:
@ -796,13 +796,13 @@ VOID *LOS_SoLoad(const CHAR *fileName, VOID *pool)
return dso; return dso;
ERR2: ERR2:
LOS_MemFree(dso->pool, (VOID *)dso->loadBase); (VOID)LOS_MemFree(dso->pool, (VOID *)dso->loadBase);
ERR1: ERR1:
close(dso->fd); close(dso->fd);
(VOID)LOS_MuxPost(g_dynlinkMux); (VOID)LOS_MuxPost(g_dynlinkMux);
LOS_MemFree(OS_SYS_MEM_ADDR, dso->dlInfo->elfPhdr); (VOID)LOS_MemFree(OS_SYS_MEM_ADDR, dso->dlInfo->elfPhdr);
LOS_MemFree(OS_SYS_MEM_ADDR, dso->dlInfo); (VOID)LOS_MemFree(OS_SYS_MEM_ADDR, dso->dlInfo);
LOS_MemFree(OS_SYS_MEM_ADDR, dso); (VOID)LOS_MemFree(OS_SYS_MEM_ADDR, dso);
return NULL; return NULL;
} }
@ -902,9 +902,12 @@ INT32 LOS_SoUnload(VOID *handle)
LOS_ListDelete(&dso->dsoNode); LOS_ListDelete(&dso->dsoNode);
(VOID)LOS_MuxPost(g_dynlinkMux); (VOID)LOS_MuxPost(g_dynlinkMux);
LOS_MemFree(dso->pool, (VOID *)dso->loadBase); (VOID)LOS_MemFree(dso->pool, (VOID *)dso->loadBase);
LOS_MemFree(OS_SYS_MEM_ADDR, dso->dlInfo); if (dso->dlInfo != NULL) {
LOS_MemFree(OS_SYS_MEM_ADDR, dso); (VOID)LOS_MemFree(OS_SYS_MEM_ADDR, dso->dlInfo->elfPhdr);
}
(VOID)LOS_MemFree(OS_SYS_MEM_ADDR, dso->dlInfo);
(VOID)LOS_MemFree(OS_SYS_MEM_ADDR, dso);
return LOS_OK; return LOS_OK;
ERR: ERR:

2
components/dynlink/los_dynlink.h Executable file → Normal file
View File

@ -169,7 +169,7 @@ VOID *LOS_SoLoad(const CHAR *fileName, VOID *pool);
VOID *LOS_FindSym(VOID *handle, const CHAR *name); VOID *LOS_FindSym(VOID *handle, const CHAR *name);
/* /*
* @brief Decrement the reference count on the loaded shared library refered to by handle. * @brief Decrement the reference count on the loaded shared library referred to by handle.
* If the reference count drops to zero, then the library is unloaded. * If the reference count drops to zero, then the library is unloaded.
* *
* This function validates that the handle is valid. * This function validates that the handle is valid.

View File

@ -55,7 +55,7 @@ STATIC ExcInfoArray g_excArray[OS_EXC_TYPE_MAX];
STATIC UINT32 OsExcSaveIntStatus(UINT32 type, VOID *arg) STATIC UINT32 OsExcSaveIntStatus(UINT32 type, VOID *arg)
{ {
UINT32 ret; errno_t ret;
UINTPTR excContentEnd = (UINTPTR)MAX_INT_INFO_SIZE + (UINTPTR)g_excContent; UINTPTR excContentEnd = (UINTPTR)MAX_INT_INFO_SIZE + (UINTPTR)g_excContent;
(VOID)arg; (VOID)arg;

View File

@ -336,19 +336,19 @@ int LfsMount(const char *source, const char *target, const char *fileSystemType,
if (target == NULL || fileSystemType == NULL || data == NULL) { if (target == NULL || fileSystemType == NULL || data == NULL) {
errno = EFAULT; errno = EFAULT;
ret = VFS_ERROR; ret = VFS_ERROR;
goto errout; goto ERROUT;
} }
if (strcmp(fileSystemType, "littlefs") != 0) { if (strcmp(fileSystemType, "littlefs") != 0) {
errno = ENODEV; errno = ENODEV;
ret = VFS_ERROR; ret = VFS_ERROR;
goto errout; goto ERROUT;
} }
if (CheckPathIsMounted(target, &fileOpInfo)) { if (CheckPathIsMounted(target, &fileOpInfo)) {
errno = EBUSY; errno = EBUSY;
ret = VFS_ERROR; ret = VFS_ERROR;
goto errout; goto ERROUT;
} }
// select free mount resource // select free mount resource
@ -356,7 +356,7 @@ int LfsMount(const char *source, const char *target, const char *fileSystemType,
if (fileOpInfo == NULL) { if (fileOpInfo == NULL) {
errno = ENODEV; errno = ENODEV;
ret = VFS_ERROR; ret = VFS_ERROR;
goto errout; goto ERROUT;
} }
ret = lfs_mount(&(fileOpInfo->lfsInfo), (struct lfs_config*)data); ret = lfs_mount(&(fileOpInfo->lfsInfo), (struct lfs_config*)data);
@ -372,7 +372,7 @@ int LfsMount(const char *source, const char *target, const char *fileSystemType,
ret = VFS_ERROR; ret = VFS_ERROR;
} }
errout: ERROUT:
return ret; return ret;
} }
@ -483,23 +483,23 @@ DIR *LfsOpendir(const char *dirName)
if (dirName == NULL) { if (dirName == NULL) {
errno = EFAULT; errno = EFAULT;
goto errout; goto ERROUT;
} }
if (CheckPathIsMounted(dirName, &fileOpInfo) == FALSE || fileOpInfo == NULL) { if (CheckPathIsMounted(dirName, &fileOpInfo) == FALSE || fileOpInfo == NULL) {
errno = ENOENT; errno = ENOENT;
goto errout; goto ERROUT;
} }
if (CheckDirIsOpen(dirName)) { if (CheckDirIsOpen(dirName)) {
errno = EBUSY; errno = EBUSY;
goto errout; goto ERROUT;
} }
FileDirInfo *dirInfo = GetFreeDir(dirName); FileDirInfo *dirInfo = GetFreeDir(dirName);
if (dirInfo == NULL) { if (dirInfo == NULL) {
errno = ENFILE; errno = ENFILE;
goto errout; goto ERROUT;
} }
ret = lfs_dir_open(&(fileOpInfo->lfsInfo), (lfs_dir_t *)(&(dirInfo->dir)), dirName); ret = lfs_dir_open(&(fileOpInfo->lfsInfo), (lfs_dir_t *)(&(dirInfo->dir)), dirName);
@ -507,14 +507,14 @@ DIR *LfsOpendir(const char *dirName)
if (ret != 0) { if (ret != 0) {
FreeDirInfo(dirName); FreeDirInfo(dirName);
errno = LittlefsErrno(ret); errno = LittlefsErrno(ret);
goto errout; goto ERROUT;
} }
dirInfo->lfsHandle = &(fileOpInfo->lfsInfo); dirInfo->lfsHandle = &(fileOpInfo->lfsInfo);
return (DIR *)dirInfo; return (DIR *)dirInfo;
errout: ERROUT:
return NULL; return NULL;
} }
@ -584,23 +584,23 @@ int LfsOpen(const char *pathName, int openFlag, ...)
if (pathName == NULL) { if (pathName == NULL) {
errno = EFAULT; errno = EFAULT;
goto errout; goto ERROUT;
} }
if (CheckPathIsMounted(pathName, &fileOpInfo) == FALSE || fileOpInfo == NULL) { if (CheckPathIsMounted(pathName, &fileOpInfo) == FALSE || fileOpInfo == NULL) {
errno = ENOENT; errno = ENOENT;
goto errout; goto ERROUT;
} }
// if file is already open, return invalid fd // if file is already open, return invalid fd
if (CheckFileIsOpen(pathName)) { if (CheckFileIsOpen(pathName)) {
errno = EBUSY; errno = EBUSY;
goto errout; goto ERROUT;
} }
LittleFsHandleStruct *fsHandle = LfsAllocFd(pathName, &fd); LittleFsHandleStruct *fsHandle = LfsAllocFd(pathName, &fd);
if (fd == INVALID_FD) { if (fd == INVALID_FD) {
errno = ENFILE; errno = ENFILE;
goto errout; goto ERROUT;
} }
int lfsOpenFlag = ConvertFlagToLfsOpenFlag(openFlag); int lfsOpenFlag = ConvertFlagToLfsOpenFlag(openFlag);
@ -608,13 +608,13 @@ int LfsOpen(const char *pathName, int openFlag, ...)
if (err != 0) { if (err != 0) {
LfsFreeFd(fd); LfsFreeFd(fd);
errno = LittlefsErrno(err); errno = LittlefsErrno(err);
goto errout; goto ERROUT;
} }
g_handle[fd].lfsHandle = &(fileOpInfo->lfsInfo); g_handle[fd].lfsHandle = &(fileOpInfo->lfsInfo);
return fd; return fd;
errout: ERROUT:
return INVALID_FD; return INVALID_FD;
} }

View File

@ -54,7 +54,7 @@ void __DLIB_TLS_MEMORY *__iar_dlib_perthread_access(void _DLIB_TLS_MEMORY *symbp
} }
#else /* IAR version 8 or above. */ #else /* IAR version 8 or above. */
#pragma section="__iar_tls$$DATA" #pragma section = "__iar_tls$$DATA"
void *__aeabi_read_tp(void) void *__aeabi_read_tp(void)
{ {
if (!LOS_TaskIsRunning()) { if (!LOS_TaskIsRunning()) {
@ -211,4 +211,4 @@ void __iar_file_Mtxunlock(__iar_Rmtx *m)
if (LOS_TaskIsRunning()) { if (LOS_TaskIsRunning()) {
(void)LOS_MuxPost(muxInfo->muxID); (void)LOS_MuxPost(muxInfo->muxID);
} }
} }

View File

@ -128,7 +128,7 @@ typedef struct {
* @param lmkNode [IN] The LosLmkOpsNode node to be registered. * @param lmkNode [IN] The LosLmkOpsNode node to be registered.
* *
* @retval LOS_OK The LosLmkOpsNode node is registered successfully. * @retval LOS_OK The LosLmkOpsNode node is registered successfully.
* @retval LOS_ERRNO_LMK_INVALID_PARAMETER The paramter is invalid. * @retval LOS_ERRNO_LMK_INVALID_PARAMETER The parameter is invalid.
* @retval LOS_ERRNO_LMK_ALREADY_REGISTERED The LosLmkOpsNode node already registered. * @retval LOS_ERRNO_LMK_ALREADY_REGISTERED The LosLmkOpsNode node already registered.
* @par Dependency: * @par Dependency:
* <ul><li>los_lmk.h: the header file that contains the API declaration.</li></ul> * <ul><li>los_lmk.h: the header file that contains the API declaration.</li></ul>

0
components/lms/lms_libc.c Executable file → Normal file
View File

5
components/lms/los_lms.c Executable file → Normal file
View File

@ -182,11 +182,12 @@ VOID LOS_LmsCheckPoolDel(const VOID *pool)
LmsMemListNode *delNode = OsLmsGetPoolNode(pool); LmsMemListNode *delNode = OsLmsGetPoolNode(pool);
if (delNode == NULL) { if (delNode == NULL) {
PRINT_ERR("[LMS]pool %p is not on lms checklist !\n", pool); PRINT_ERR("[LMS]pool %p is not on lms checklist !\n", pool);
goto Release; goto REALEASE;
} }
delNode->used = LMS_POOL_UNUSED; delNode->used = LMS_POOL_UNUSED;
LOS_ListDelete(&(delNode->node)); LOS_ListDelete(&(delNode->node));
Release:
REALEASE:
LMS_UNLOCK(intSave); LMS_UNLOCK(intSave);
} }

0
components/lms/los_lms.h Executable file → Normal file
View File

0
components/lms/los_lms_pri.h Executable file → Normal file
View File

View File

@ -124,7 +124,7 @@ int ip6addr_aton(const char *cp, ip6_addr_t *addr)
u16_t *a16 = (u16_t *)addr->addr; u16_t *a16 = (u16_t *)addr->addr;
int squash_pos = ipv6_blocks; int squash_pos = ipv6_blocks;
int i; int i;
const char *sc = cp; const unsigned char *sc = (const unsigned char *)cp;
const char *ss = cp-1; const char *ss = cp-1;
for (; ; sc++) { for (; ; sc++) {

View File

@ -217,19 +217,11 @@ void lwip_ifconfig_show_internal(void *arg)
sys_sem_signal(&ifconfig_cmd->cb_completed); sys_sem_signal(&ifconfig_cmd->cb_completed);
} }
/*lint -e838 -e438*/
u32_t lwip_ifconfig(int argc, const char **argv) u32_t lwip_ifconfig(int argc, const char **argv)
{ {
static struct ifconfig_option ifconfig_cmd; static struct ifconfig_option ifconfig_cmd;
err_t ret; err_t ret;
#if LWIP_STATS
u32_t stat_err_cnt;
u32_t stat_drop_cnt;
u32_t stat_rx_or_tx_cnt;
u32_t stat_rx_or_tx_bytes;
#endif
(void)memset_s(&ifconfig_cmd, sizeof(ifconfig_cmd), 0, sizeof(ifconfig_cmd)); (void)memset_s(&ifconfig_cmd, sizeof(ifconfig_cmd), 0, sizeof(ifconfig_cmd));
if (sys_sem_new(&ifconfig_cmd.cb_completed, 0) != ERR_OK) { if (sys_sem_new(&ifconfig_cmd.cb_completed, 0) != ERR_OK) {
PRINTK("%s: sys_sem_new fail\n", __FUNCTION__); PRINTK("%s: sys_sem_new fail\n", __FUNCTION__);
@ -252,7 +244,6 @@ u32_t lwip_ifconfig(int argc, const char **argv)
return 0; return 0;
} }
/*lint +e838 +e438*/
#if LWIP_DNS #if LWIP_DNS
#ifndef LWIP_TESTBED #ifndef LWIP_TESTBED
@ -278,7 +269,7 @@ struct hostent *gethostnameinfo(const char *host, char *tmphstbuf, size_t hstbuf
LWIP_STATIC unsigned int get_hostip(const char *hname) LWIP_STATIC unsigned int get_hostip(const char *hname)
{ {
unsigned int ip = 0; unsigned int ip = 0;
int ret; errno_t ret;
const size_t hstbuflen = 1024; const size_t hstbuflen = 1024;
char *tmphstbuf = NULL; char *tmphstbuf = NULL;
@ -292,7 +283,7 @@ LWIP_STATIC unsigned int get_hostip(const char *hname)
return 0; return 0;
} }
ret = memcpy_s(&ip, sizeof(ip), pent->h_addr, 4); ret = memcpy_s(&ip, sizeof(ip), pent->h_addr, 4);
if (ret != 0) { if (ret != EOK) {
free(tmphstbuf); free(tmphstbuf);
return 0; return 0;
} }
@ -497,7 +488,7 @@ LWIP_STATIC int OsPingFunc(u32_t *parg)
PRINTK("\nPing: parameter problem ..."); PRINTK("\nPing: parameter problem ...");
break; break;
default: default:
PRINTK("\nPing: unknow error ..."); PRINTK("\nPing: unknown error ...");
break; break;
} }
i++; i++;
@ -527,7 +518,7 @@ static void ping_cmd(u32_t *parg)
if (ret < 0) { if (ret < 0) {
PRINTK("Ping cmd failed due to some errors\n"); PRINTK("Ping cmd failed due to some errors\n");
} }
free(parg);
ping_taskid = -1; ping_taskid = -1;
} }
@ -589,7 +580,6 @@ u32_t OsShellPing(int argc, const char **argv)
stPingTask.uwArg = (UINTPTR)parg; stPingTask.uwArg = (UINTPTR)parg;
ret = LOS_TaskCreate((UINT32 *)(&ping_taskid), &stPingTask); ret = LOS_TaskCreate((UINT32 *)(&ping_taskid), &stPingTask);
if (ret != LOS_OK) { if (ret != LOS_OK) {
free(parg);
PRINTK("ping_task create failed 0x%08x.\n", ret); PRINTK("ping_task create failed 0x%08x.\n", ret);
count = LWIP_SHELL_CMD_PING_RETRY_TIMES; count = LWIP_SHELL_CMD_PING_RETRY_TIMES;
} else { } else {
@ -605,6 +595,8 @@ u32_t OsShellPing(int argc, const char **argv)
PRINTK("Ping cmd failed due some errors\n"); PRINTK("Ping cmd failed due some errors\n");
} }
free(parg);
return LOS_OK; return LOS_OK;
ping_error: ping_error:
lwip_ping_usage(); lwip_ping_usage();

View File

@ -34,8 +34,6 @@
#include <lwip/snmp.h> #include <lwip/snmp.h>
#include <lwip/etharp.h> #include <lwip/etharp.h>
#include <lwip/sockets.h> #include <lwip/sockets.h>
#include <lwip/snmp.h>
#include <lwip/etharp.h>
#include <lwip/ethip6.h> #include <lwip/ethip6.h>
#define LWIP_NETIF_HOSTNAME_DEFAULT "default" #define LWIP_NETIF_HOSTNAME_DEFAULT "default"

View File

@ -33,11 +33,9 @@
#include <lwip/sys.h> #include <lwip/sys.h>
#include <lwip/debug.h> #include <lwip/debug.h>
#include <los_task.h> #include <los_task.h>
#include <los_tick.h>
#include <los_queue.h> #include <los_queue.h>
#include <los_sem.h> #include <los_sem.h>
#include <los_mux.h> #include <los_mux.h>
#include <los_tick.h>
#include <los_config.h> #include <los_config.h>
#ifndef LOSCFG_KERNEL_SMP #ifndef LOSCFG_KERNEL_SMP
@ -151,7 +149,7 @@ err_t sys_mbox_new(sys_mbox_t *mbox, int size)
} }
CHAR qName[] = "lwIP"; CHAR qName[] = "lwIP";
UINT32 ret = LOS_QueueCreate(qName, (UINT16)size, mbox, 0, sizeof(void *)); UINT32 ret = LOS_QueueCreate(qName, (UINT16)size, (UINT32 *)mbox, 0, sizeof(void *));
switch (ret) { switch (ret) {
case LOS_OK: case LOS_OK:
return ERR_OK; return ERR_OK;
@ -202,6 +200,8 @@ err_t sys_mbox_trypost(sys_mbox_t *mbox, void *msg)
err_t sys_mbox_trypost_fromisr(sys_mbox_t *mbox, void *msg) err_t sys_mbox_trypost_fromisr(sys_mbox_t *mbox, void *msg)
{ {
(void)mbox;
(void)msg;
return ERR_ARG; return ERR_ARG;
} }
@ -292,7 +292,7 @@ err_t sys_sem_new(sys_sem_t *sem, u8_t count)
return ERR_ARG; return ERR_ARG;
} }
UINT32 ret = LOS_SemCreate(count, sem); UINT32 ret = LOS_SemCreate(count, (UINT32 *)(sem));
if (ret != LOS_OK) { if (ret != LOS_OK) {
return ERR_ARG; return ERR_ARG;
} }
@ -367,7 +367,7 @@ err_t sys_mutex_new(sys_mutex_t *mutex)
return ERR_ARG; return ERR_ARG;
} }
UINT32 ret = LOS_MuxCreate(mutex); UINT32 ret = LOS_MuxCreate((UINT32 *)mutex);
if (ret != LOS_OK) { if (ret != LOS_OK) {
return ERR_ARG; return ERR_ARG;
} }

View File

@ -217,7 +217,6 @@ static void ParsePackageIpUdp(struct netif *netif, struct pbuf *btBuf)
ICUNIT_ASSERT_EQUAL(dataLen, strlen(MSG), 4); ICUNIT_ASSERT_EQUAL(dataLen, strlen(MSG), 4);
LogPrintln("================================="); LogPrintln("=================================");
// 回应udp报文
ReplayUdpTask(); ReplayUdpTask();
} }
@ -229,7 +228,6 @@ static void ParsePackageEthernet(struct netif *netif, struct pbuf *p)
ethhdr = (struct eth_hdr *)p->payload; ethhdr = (struct eth_hdr *)p->payload;
u16_t type = ethhdr->type; u16_t type = ethhdr->type;
LogPrintln("ParsePackageEthernet type is %d", type);
switch (type) { switch (type) {
#if LWIP_IPV4 && LWIP_ARP #if LWIP_IPV4 && LWIP_ARP
/* IP packet? */ /* IP packet? */
@ -322,7 +320,6 @@ static void UdpTestNetifTask(void *p)
struct ifreq nif; struct ifreq nif;
int ret; int ret;
// 注册网卡
btProxyNf = CreateBtNetIf(); btProxyNf = CreateBtNetIf();
/* socket creation */ /* socket creation */
@ -335,7 +332,6 @@ static void UdpTestNetifTask(void *p)
ret = bind(sfd, (struct sockaddr*)&srvAddr, sizeof(srvAddr)); ret = bind(sfd, (struct sockaddr*)&srvAddr, sizeof(srvAddr));
LWIP_ASSERT("socket invalid param.", ret == 0); LWIP_ASSERT("socket invalid param.", ret == 0);
/* 指定网卡接口 */
char *inface = NETIF_NAME_BT; char *inface = NETIF_NAME_BT;
(void)strcpy_s(nif.ifr_name, sizeof(nif.ifr_name), inface); (void)strcpy_s(nif.ifr_name, sizeof(nif.ifr_name), inface);
if (setsockopt(sfd, SOL_SOCKET, SO_BINDTODEVICE, (char *)&nif, sizeof(nif)) < 0) { if (setsockopt(sfd, SOL_SOCKET, SO_BINDTODEVICE, (char *)&nif, sizeof(nif)) < 0) {
@ -393,7 +389,6 @@ static void ArpPackageProc(struct netif *netif, struct pbuf *p)
return; return;
} }
// 回应arp报文
ReplayArpTask(); ReplayArpTask();
} }
@ -446,4 +441,4 @@ static void ReplayArpTask()
ret = sys_thread_new("replay_arp", ReplayArp, NULL, ret = sys_thread_new("replay_arp", ReplayArp, NULL,
STACK_TEST_SIZE, TCPIP_THREAD_PRIO); STACK_TEST_SIZE, TCPIP_THREAD_PRIO);
ICUNIT_ASSERT_NOT_EQUAL(ret, -1, 23); ICUNIT_ASSERT_NOT_EQUAL(ret, -1, 23);
} }

View File

@ -115,7 +115,7 @@ typedef enum {
/* /*
* Hook for user-defined debug function * Hook for user-defined debug function
* Unify differnt module's func for registration * Unify different module's func for registration
*/ */
typedef UINT32 (*CmdCallBackFunc)(UINT32 argc, const CHAR **argv); typedef UINT32 (*CmdCallBackFunc)(UINT32 argc, const CHAR **argv);

7
components/shell/src/base/shcmd.c Executable file → Normal file
View File

@ -69,10 +69,10 @@ CmdModInfo *OsCmdInfoGet(VOID)
} }
/* /*
* Description: Pass in the string and clear useless space ,which inlcude: * Description: Pass in the string and clear useless space ,which include:
* 1) The overmatch space which is not be marked by Quote's area * 1) The overmatch space which is not be marked by Quote's area
* Squeeze the overmatch space into one space * Squeeze the overmatch space into one space
* 2) Clear all space before first vaild charatctor * 2) Clear all space before first vaild character
* Input: cmdKey : Pass in the buff string, which is ready to be operated * Input: cmdKey : Pass in the buff string, which is ready to be operated
* cmdOut : Pass out the buffer string ,which has already been operated * cmdOut : Pass out the buffer string ,which has already been operated
* size : cmdKey length * size : cmdKey length
@ -98,6 +98,7 @@ LITE_OS_SEC_TEXT_MINOR UINT32 OsCmdKeyShift(const CHAR *cmdKey, CHAR *cmdOut, UI
PRINTK("malloc failure in %s[%d]", __FUNCTION__, __LINE__); PRINTK("malloc failure in %s[%d]", __FUNCTION__, __LINE__);
return (UINT32)OS_ERROR; return (UINT32)OS_ERROR;
} }
(VOID)memset_s(output, len + 1, 0, len + 1);
/* Backup the 'output' start address */ /* Backup the 'output' start address */
outputBak = output; outputBak = output;
/* Scan each charactor in 'cmdKey',and squeeze the overmuch space and ignore invaild charactor */ /* Scan each charactor in 'cmdKey',and squeeze the overmuch space and ignore invaild charactor */
@ -110,7 +111,7 @@ LITE_OS_SEC_TEXT_MINOR UINT32 OsCmdKeyShift(const CHAR *cmdKey, CHAR *cmdOut, UI
/* 1) Quotes matching status is FALSE (which said that the space is not been marked by double quotes) */ /* 1) Quotes matching status is FALSE (which said that the space is not been marked by double quotes) */
/* 2) Current charactor is a space */ /* 2) Current charactor is a space */
/* 3) Next charactor is a space too, or the string is been seeked to the end already(\0) */ /* 3) Next charactor is a space too, or the string is been seeked to the end already(\0) */
/* 4) Invaild charactor, such as single quotes */ /* 4) Invalid charactor, such as single quotes */
if ((*cmdKey == ' ') && ((*(cmdKey + 1) == ' ') || (*(cmdKey + 1) == '\0')) && QUOTES_STATUS_CLOSE(quotes)) { if ((*cmdKey == ' ') && ((*(cmdKey + 1) == ' ') || (*(cmdKey + 1) == '\0')) && QUOTES_STATUS_CLOSE(quotes)) {
continue; continue;
} }

0
components/shell/src/base/shcmdparse.c Executable file → Normal file
View File

View File

@ -96,7 +96,7 @@ CHAR *GetCmdName(const CHAR *cmdline, UINT32 len)
continue; continue;
} }
/* If detected a space which the quotes matching status is false */ /* If detected a space which the quotes matching status is false */
/* which said has detected the first space for seperator, finish this scan operation */ /* which said has detected the first space for separator, finish this scan operation */
if ((*tmpStr == ' ') && (QUOTES_STATUS_CLOSE(quotes))) { if ((*tmpStr == ' ') && (QUOTES_STATUS_CLOSE(quotes))) {
break; break;
} }

0
components/shell/src/base/show.c Executable file → Normal file
View File

0
components/shell/src/cmds/date_shell.c Executable file → Normal file
View File

4
components/shell/src/cmds/fullpath.c Executable file → Normal file
View File

@ -203,14 +203,14 @@ STATIC CHAR *VfsNormalizeFullpath(const CHAR *directory, const CHAR *filename, C
CHAR *fullpath = NULL; CHAR *fullpath = NULL;
if (filename[0] != '/') { if (filename[0] != '/') {
/* not a absolute path */ /* not an absolute path */
fullpath = VfsNotAbsolutePath(directory, filename, pathname, namelen); fullpath = VfsNotAbsolutePath(directory, filename, pathname, namelen);
if (fullpath == NULL) { if (fullpath == NULL) {
return (CHAR *)NULL; return (CHAR *)NULL;
} }
} else { } else {
/* it's a absolute path, use it directly */ /* it's an absolute path, use it directly */
fullpath = strdup(filename); /* copy string */ fullpath = strdup(filename); /* copy string */
if (fullpath == NULL) { if (fullpath == NULL) {

0
components/shell/src/cmds/mempt_shellcmd.c Executable file → Normal file
View File

0
components/shell/src/cmds/shell_shellcmd.c Executable file → Normal file
View File

0
components/shell/src/cmds/task_shellcmd.c Executable file → Normal file
View File

1
components/shell/src/cmds/vfs_shellcmd.c Executable file → Normal file
View File

@ -209,6 +209,7 @@ VOID OsLs(const CHAR *pathname)
} }
} while (pdirent != NULL); } while (pdirent != NULL);
free(path);
(VOID)closedir(d); (VOID)closedir(d);
} }
} }

View File

@ -106,7 +106,7 @@ STATIC VOID OsTraceSetFrame(TraceEventFrame *frame, UINT32 eventType, UINTPTR id
#if (LOSCFG_TRACE_FRAME_CORE_MSG == 1) #if (LOSCFG_TRACE_FRAME_CORE_MSG == 1)
frame->core.cpuId = ArchCurrCpuid(); frame->core.cpuId = ArchCurrCpuid();
frame->core.hwiActive = OS_INT_ACTIVE ? TRUE : FALSE; frame->core.hwiActive = OS_INT_ACTIVE ? TRUE : FALSE;
frame->core.taskLockCnt = MIN(OsPercpuGet()->taskLockCnt, 0xF); /* taskLockCnt is 4 bits, max vaule = 0xF */ frame->core.taskLockCnt = MIN(OsPercpuGet()->taskLockCnt, 0xF); /* taskLockCnt is 4 bits, max value = 0xF */
frame->core.paramCount = paramCount; frame->core.paramCount = paramCount;
#endif #endif

View File

@ -223,7 +223,7 @@ typedef struct {
/** /**
* @ingroup los_trace * @ingroup los_trace
* struct to store the event infomation * struct to store the event information
*/ */
typedef struct { typedef struct {
UINT32 eventType; /**< event type */ UINT32 eventType; /**< event type */
@ -304,9 +304,9 @@ extern TRACE_EVENT_HOOK g_traceEventHook;
* <li>The first param is treat as key, keep at least this param if you want trace this event.</li> * <li>The first param is treat as key, keep at least this param if you want trace this event.</li>
* <li>All parameters were treated as UINTPTR.</li> * <li>All parameters were treated as UINTPTR.</li>
* </ul> * </ul>
* eg. Trace a event as: * eg. Trace an event as:
* #define TASK_PRIOSET_PARAMS(taskId, taskStatus, oldPrio, newPrio) taskId, taskStatus, oldPrio, newPrio * #define TASK_PRIOSET_PARAMS(taskId, taskStatus, oldPrio, newPrio) taskId, taskStatus, oldPrio, newPrio
* eg. Not Trace a event as: * eg. Not Trace an event as:
* #define TASK_PRIOSET_PARAMS(taskId, taskStatus, oldPrio, newPrio) * #define TASK_PRIOSET_PARAMS(taskId, taskStatus, oldPrio, newPrio)
* eg. Trace only you need parmas as: * eg. Trace only you need parmas as:
* #define TASK_PRIOSET_PARAMS(taskId, taskStatus, oldPrio, newPrio) taskId * #define TASK_PRIOSET_PARAMS(taskId, taskStatus, oldPrio, newPrio) taskId

View File

@ -96,7 +96,7 @@ typedef struct {
/** /**
* @ingroup los_trace * @ingroup los_trace
* struct to store the event infomation * struct to store the event information
*/ */
typedef struct { typedef struct {
UINT32 cmd; /* trace start or stop cmd */ UINT32 cmd; /* trace start or stop cmd */

View File

@ -134,7 +134,7 @@ VOID OsTraceDataSend(UINT8 type, UINT16 len, UINT8 *data)
UINT32 intSave; UINT32 intSave;
UINT8 outBuf[LOSCFG_TRACE_TLV_BUF_SIZE] = {0}; UINT8 outBuf[LOSCFG_TRACE_TLV_BUF_SIZE] = {0};
if ((type > TRACE_MSG_MAX) || (len > LOSCFG_TRACE_TLV_BUF_SIZE)) { if ((type >= TRACE_MSG_MAX) || (len > LOSCFG_TRACE_TLV_BUF_SIZE)) {
return; return;
} }

View File

@ -186,7 +186,7 @@ STATIC VOID OsTraceInfoEventData(VOID)
UINT32 taskLockCnt = frame->core.taskLockCnt; UINT32 taskLockCnt = frame->core.taskLockCnt;
#if (LOSCFG_KERNEL_SMP == 1) #if (LOSCFG_KERNEL_SMP == 1)
/* /*
* For smp systems, TRACE_LOCK will requst taskLock, and this counter * For smp systems, TRACE_LOCK will request taskLock, and this counter
* will increase by 1 in that case. * will increase by 1 in that case.
*/ */
taskLockCnt -= 1; taskLockCnt -= 1;

View File

@ -1634,7 +1634,7 @@ uint32_t osMemoryPoolGetSpace(osMemoryPoolId_t mp_id)
if ((mp->status & MEM_POOL_VALID) != MEM_POOL_VALID) { if ((mp->status & MEM_POOL_VALID) != MEM_POOL_VALID) {
space = 0; space = 0;
} else { } else {
space = mp->poolInfo.uwBlkCnt - mp->poolInfo.uwBlkCnt; space = mp->poolInfo.uwBlkNum - mp->poolInfo.uwBlkCnt;
} }
LOS_IntRestore(intSave); LOS_IntRestore(intSave);

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2021-2021 Huawei Device Co., Ltd. All rights reserved. * Copyright (c) 2021-2022 Huawei Device Co., Ltd. All rights reserved.
* *
* Redistribution and use in source and binary forms, with or without modification, * Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met: * are permitted provided that the following conditions are met:
@ -37,7 +37,7 @@
int _isatty(int file) int _isatty(int file)
{ {
return file <= 2; return (int)(file <= 2); // 2: stderr
} }
int _kill(int i, int j) int _kill(int i, int j)
@ -52,7 +52,7 @@ int _getpid(void)
void _exit(int status) void _exit(int status)
{ {
write(1, "exit\n", 5); write(1, "exit\n", 5); // 1: stdout; 5: string length
(VOID)pthread_exit(&status); (VOID)pthread_exit(&status);
while (1) { while (1) {
} }

View File

@ -174,7 +174,7 @@ STATIC size_t PipeRingbufferRead(struct PipeDev *dev, VOID *buf, size_t len)
} }
} }
nbytes = (nbytes > len) ? len : nbytes; nbytes = (nbytes > len) ? len : nbytes;
(VOID)memcpy_s((char *)buf, len, dev->ringBuffer + dev->readIndex, nbytes); (VOID)memcpy_s(buf, len, dev->ringBuffer + dev->readIndex, nbytes);
dev->readIndex += nbytes; dev->readIndex += nbytes;
if (dev->readIndex >= dev->bufferSize) { if (dev->readIndex >= dev->bufferSize) {
dev->readIndex = 0; dev->readIndex = 0;
@ -184,7 +184,7 @@ STATIC size_t PipeRingbufferRead(struct PipeDev *dev, VOID *buf, size_t len)
return nbytes; return nbytes;
} }
STATIC size_t PipeRingbufferWrite(struct PipeDev *dev, VOID *buf, size_t len) STATIC size_t PipeRingbufferWrite(struct PipeDev *dev, const VOID *buf, size_t len)
{ {
size_t nbytes; size_t nbytes;
@ -220,7 +220,6 @@ STATIC INT32 PipeDevRegister(CHAR *devName, UINT32 len)
return -ENODEV; return -ENODEV;
} }
struct PipeDev *devTemp = NULL;
struct PipeDev *dev = LOS_MemAlloc(OS_SYS_MEM_ADDR, sizeof(struct PipeDev)); struct PipeDev *dev = LOS_MemAlloc(OS_SYS_MEM_ADDR, sizeof(struct PipeDev));
if (dev == NULL) { if (dev == NULL) {
ret = -ENOMEM; ret = -ENOMEM;
@ -230,7 +229,7 @@ STATIC INT32 PipeDevRegister(CHAR *devName, UINT32 len)
(VOID)snprintf_s(dev->devName, PIPE_DEV_NAME_MAX, PIPE_DEV_NAME_MAX - 1, "%s%d", PIPE_DEV_PATH, num); (VOID)snprintf_s(dev->devName, PIPE_DEV_NAME_MAX, PIPE_DEV_NAME_MAX - 1, "%s%d", PIPE_DEV_PATH, num);
(VOID)memcpy_s(devName, len, dev->devName, strlen(dev->devName)); (VOID)memcpy_s(devName, len, dev->devName, strlen(dev->devName));
devTemp = PipeDevFind(dev->devName); struct PipeDev *devTemp = PipeDevFind(dev->devName);
if (devTemp != NULL) { if (devTemp != NULL) {
ret = -EEXIST; ret = -EEXIST;
goto ERROR; goto ERROR;
@ -389,22 +388,15 @@ INT32 PipeOpen(const CHAR *path, INT32 openFlag, INT32 minFd)
dev->ringBuffer = LOS_MemAlloc(OS_SYS_MEM_ADDR, PIPE_DEV_BUF_SIZE); dev->ringBuffer = LOS_MemAlloc(OS_SYS_MEM_ADDR, PIPE_DEV_BUF_SIZE);
if (dev->ringBuffer == NULL) { if (dev->ringBuffer == NULL) {
PIPE_DEV_UNLOCK(dev->mutex); PIPE_DEV_UNLOCK(dev->mutex);
PipeDevFdFree(fd);
errno = ENOMEM; errno = ENOMEM;
goto ERROR; return -1;
} }
dev->bufferSize = PIPE_DEV_BUF_SIZE; dev->bufferSize = PIPE_DEV_BUF_SIZE;
} }
PIPE_DEV_UNLOCK(dev->mutex); PIPE_DEV_UNLOCK(dev->mutex);
return (fd + minFd); return (fd + minFd);
ERROR:
if (dev->ringBuffer != NULL) {
(VOID)LOS_MemFree(OS_SYS_MEM_ADDR, dev->ringBuffer);
dev->ringBuffer = NULL;
}
PipeDevFdFree(fd);
return -1;
} }
STATIC INLINE struct PipeFdDev *PipeFdDevGet(INT32 fd) STATIC INLINE struct PipeFdDev *PipeFdDevGet(INT32 fd)
@ -448,9 +440,7 @@ INT32 PipeClose(INT32 fd)
PIPE_DEV_LOCK(dev->mutex); PIPE_DEV_LOCK(dev->mutex);
if (openFlag == O_RDONLY) { if (openFlag == O_RDONLY) {
dev->readerCnt--; dev->readerCnt--;
} } else if (openFlag == O_WRONLY) {
if (openFlag == O_WRONLY) {
dev->writerCnt--; dev->writerCnt--;
} }
@ -676,8 +666,19 @@ int pipe(int filedes[2])
return -1; return -1;
} }
struct PipeDev *dev = PipeDevFind(devName);
filedes[0] = open(devName, O_RDONLY); filedes[0] = open(devName, O_RDONLY);
if (filedes[0] < 0) {
(VOID)PipeDevUnregister(dev);
return -1;
}
filedes[1] = open(devName, O_WRONLY); filedes[1] = open(devName, O_WRONLY);
if (filedes[1] < 0) {
(VOID)PipeDevUnregister(dev);
(VOID)close(filedes[0]);
return -1;
}
return 0; return 0;
} }

View File

@ -128,6 +128,10 @@ VOID PollNotify(struct PollWaitQueue *waitQueue, PollEvent event)
UINT32 intSave; UINT32 intSave;
struct PollWaitNode *waitNode = NULL; struct PollWaitNode *waitNode = NULL;
if (waitQueue == NULL) {
return;
}
intSave = LOS_IntLock(); intSave = LOS_IntLock();
LOS_DL_LIST_FOR_EACH_ENTRY(waitNode, &waitQueue->queue, struct PollWaitNode, node) { LOS_DL_LIST_FOR_EACH_ENTRY(waitNode, &waitQueue->queue, struct PollWaitNode, node) {
if (!event || (event & waitNode->table->event)) { if (!event || (event & waitNode->table->event)) {

View File

@ -35,7 +35,6 @@
#include "los_compiler.h" #include "los_compiler.h"
#include "los_mux.h" #include "los_mux.h"
#include "errno.h" #include "errno.h"
#include "los_mux.h"
#include "los_debug.h" #include "los_debug.h"
#include "los_hook.h" #include "los_hook.h"
#include "los_sched.h" #include "los_sched.h"

View File

@ -103,11 +103,11 @@ extern UINT32 LOS_MemDeInit(VOID *pool);
/** /**
* @ingroup los_memory * @ingroup los_memory
* @brief Print infomation about all pools. * @brief Print information about all pools.
* *
* @par Description: * @par Description:
* <ul> * <ul>
* <li>This API is used to print infomation about all pools.</li> * <li>This API is used to print information about all pools.</li>
* </ul> * </ul>
* *
* @retval #UINT32 The pool number. * @retval #UINT32 The pool number.
@ -394,11 +394,11 @@ extern UINT32 LOS_MemTotalUsedGet(VOID *pool);
/** /**
* @ingroup los_memory * @ingroup los_memory
* @brief Get the infomation of memory pool. * @brief Get the information of memory pool.
* *
* @par Description: * @par Description:
* <ul> * <ul>
* <li>This API is used to get the infomation of memory pool.</li> * <li>This API is used to get the information of memory pool.</li>
* </ul> * </ul>
* @attention * @attention
* <ul> * <ul>
@ -409,7 +409,7 @@ extern UINT32 LOS_MemTotalUsedGet(VOID *pool);
* @param poolStatus [IN] A pointer for storage the pool status * @param poolStatus [IN] A pointer for storage the pool status
* *
* @retval #LOS_NOK The incoming parameter pool is NULL or invalid. * @retval #LOS_NOK The incoming parameter pool is NULL or invalid.
* @retval #LOS_OK Success to get memory infomation. * @retval #LOS_OK Success to get memory information.
* @par Dependency: * @par Dependency:
* <ul><li>los_memory.h: the header file that contains the API declaration.</li></ul> * <ul><li>los_memory.h: the header file that contains the API declaration.</li></ul>
* @see None. * @see None.

View File

@ -323,7 +323,7 @@ extern "C" {
/** /**
* @ingroup los_queue * @ingroup los_queue
* Queue error code: The buffer size passed in during queue readding is smaller than the queue size. * Queue error code: The buffer size passed in during queue reading is smaller than the queue size.
* *
* Value: 0x0200061f * Value: 0x0200061f
* *
@ -333,7 +333,7 @@ extern "C" {
/** /**
* @ingroup los_queue * @ingroup los_queue
* Queue error code: The buffer size passed in during queue readding or writting is bigger than the biggest size. * Queue error code: The buffer size passed in during queue reading or writing is bigger than the biggest size.
* *
* Value: 0x02000620 * Value: 0x02000620
* *

View File

@ -342,7 +342,7 @@ extern UINT32 LOS_SwtmrStop(UINT32 swtmrID);
* specified by usSwTmrID. * specified by usSwTmrID.
* @attention * @attention
* <ul> * <ul>
* <li>The specific timer should be created and started successfully, error happends otherwise.</li> * <li>The specific timer should be created and started successfully, error happens otherwise.</li>
* </ul> * </ul>
* *
* @param swtmrID [IN] Software timer ID created by LOS_SwtmrCreate. * @param swtmrID [IN] Software timer ID created by LOS_SwtmrCreate.

View File

@ -120,7 +120,10 @@ LITE_OS_SEC_TEXT_INIT UINT32 LOS_QueueCreate(const CHAR *queueName,
/* Memory allocation is time-consuming, to shorten the time of disable interrupt, /* Memory allocation is time-consuming, to shorten the time of disable interrupt,
move the memory allocation to here. */ move the memory allocation to here. */
queue = (UINT8 *)LOS_MemAlloc(m_aucSysMem0, len * msgSize); if ((UINT32_MAX / msgSize) < len) {
return LOS_ERRNO_QUEUE_SIZE_TOO_BIG;
}
queue = (UINT8 *)LOS_MemAlloc(m_aucSysMem0, (UINT32)len * msgSize);
if (queue == NULL) { if (queue == NULL) {
return LOS_ERRNO_QUEUE_CREATE_NO_MEMORY; return LOS_ERRNO_QUEUE_CREATE_NO_MEMORY;
} }
@ -492,7 +495,7 @@ LITE_OS_SEC_TEXT VOID *OsQueueMailAlloc(UINT32 queueID, VOID *mailPool, UINT32 t
runTsk->taskStatus &= (~OS_TASK_STATUS_TIMEOUT); runTsk->taskStatus &= (~OS_TASK_STATUS_TIMEOUT);
goto END; goto END;
} else { } else {
/* When enters the current branch, means the current task already got a available membox, /* When enters the current branch, means the current task already got an available membox,
* so the runTsk->msg can not be NULL. * so the runTsk->msg can not be NULL.
*/ */
mem = runTsk->msg; mem = runTsk->msg;

View File

@ -87,7 +87,7 @@ STATIC INLINE VOID OsTimeSliceUpdate(LosTaskCB *taskCB, UINT64 currTime)
STATIC INLINE VOID OsSchedSetNextExpireTime(UINT32 responseID, UINT64 taskEndTime) STATIC INLINE VOID OsSchedSetNextExpireTime(UINT32 responseID, UINT64 taskEndTime)
{ {
UINT64 nextResponseTime = 0; UINT64 nextResponseTime;
BOOL isTimeSlice = FALSE; BOOL isTimeSlice = FALSE;
UINT64 currTime = OsGetCurrSchedTimeCycle(); UINT64 currTime = OsGetCurrSchedTimeCycle();

Some files were not shown because too many files have changed in this diff Show More