Edge浏览器检查更新时出错: 无法创建该组件(错误代码 3: 0x80004002 -- system level)如何更新

win7系统下微软Edge浏览器检查更新时出错: 无法创建该组件(错误代码 3: 0x80004002 -- system level),错误信息如下所示:

原因好像和我们伟大的GFW有关,

出现这种情况,如果不能翻 墙,可以使用360或者腾讯电脑管家里的软件管理进行更新

转自:https://www.fengjunzi.com/blog-726510.html

### S32K3 Microcontroller FreeRTOS Interrupt Handling Implementation In the context of configuring interrupts on an S32K3 microcontroller with FreeRTOS, it is essential to understand how priority levels are managed within the operating system framework. The configuration parameters `configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY` and `configMAX_SYSCALL_INTERRUPT_PRIORITY`, defined in `FreeRTOSConfig.h`, play a critical role in ensuring that certain high-priority tasks can preempt lower ones without causing issues such as priority inversion or deadlocks. For instance, setting `configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY = 0x01` indicates that any interrupt at this level or below will be allowed to execute while the scheduler lock is held[^1]. This means these interrupts won&#39;t cause delays when performing operations like task switching. Additionally, defining `configPRIO_BITS = 4` specifies four bits used for encoding priorities across all available hardware interrupt lines. To implement proper interrupt handling under FreeRTOS: #### Configuring NVIC Priorities The Nested Vectored Interrupt Controller (NVIC) must have its priorities configured according to the values set by FreeRTOS configurations mentioned above. Here’s an example code snippet demonstrating how one might configure an external line interrupt using CMSIS functions provided specifically for S32 devices: ```c #include "fsl_common.h" #include "FreeRTOS.h" void setup_interrupt(void){ /* Enable clock gate */ CLOCK_EnableClock(kCLOCK_PortA); PORT_SetPinInterruptConfig(PORTA, kPORT_IntFallingEdge); /* Set Priority Level */ NVIC_SetPriority(EXTI_IRQn, configLIBRARY_LOWEST_INTERRUPT_PRIORITY); /* Unmask IRQ Channel */ NVIC_ClearPendingIRQ(EXTI_IRQn); NVIC_EnableIRQ(EXTI_IRQn); } ``` This function sets up port A pin interrupts where falling edges trigger events. It also assigns the lowest possible priority value (`configLIBRARY_LOWEST_INTERRUPT_PRIORITY`) which ensures compatibility with other higher-level ISRs already running inside FreeRTOS environment. #### Implementing ISR Functions When writing actual Interrupt Service Routines (ISR), care should be taken not only about what happens during execution but also regarding reentrancy into RTOS APIs from within those routines. Below shows a typical way to handle GPIO edge-triggered interrupts safely alongside FreeRTOS: ```c extern void EXTI_IRQHandler(void) { BaseType_t xHigherPriorityTaskWoken; if ((GPIO_GetPinsInterruptFlags(GPIOA)) != 0U ) { // Clear flag first before doing anything else. GPIO_ClearPinsInterruptFlags(GPIOA, 1 << 17); // Post event to queue/task/semaphore etc., potentially waking another thread. xQueueSendFromISR(my_queue_handle, &data_to_send, &xHigherPriorityTaskWoken); // Ensure correct scheduling after returning control back to OS kernel. portYIELD_FROM_ISR(xHigherPriorityTaskWoken); } } ``` Here, once triggered, the handler clears pending flags immediately followed by sending data through queues or semaphores depending upon application needs. Finally, calling `portYIELD_FROM_ISR()` allows immediate rescheduling based on updated states caused due to received messages. --related questions-- 1. How does changing `configPRIO_BITS` affect overall system performance? 2. What precautions need consideration when integrating third-party libraries requiring their own ISRs? 3. Can you provide more details on best practices concerning nested interrupts management? 4. Is there any specific toolchain support required for implementing safe ISR programming patterns?
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值