jsp 做网站需要什么软件汽车网站的建设方向

张小明 2026/1/19 21:14:20
jsp 做网站需要什么软件,汽车网站的建设方向,广州商城网站开发,南京建设网站维护上一期我们搞懂了yield-os.c的原理如何#xff0c;我们理解 玩上下文切换的核心细节之后#xff0c;我们可以把这些原理迁移到RT-Thread这个更大的操作系统中。 RT-Thread中有两个抽象层, 一个是BSP(Board Support Package), 另一个是libcpu。 负责把 RT-Thread 的线程结构我们理解 玩上下文切换的核心细节之后我们可以把这些原理迁移到RT-Thread这个更大的操作系统中。RT-Thread中有两个抽象层, 一个是BSP(Board Support Package), 另一个是libcpu。负责把 RT-Thread 的线程结构PCB和抽象机器AM的上下文切换接口连接起来调用处把目标/来源上下文地址临时放到线程的 user_data触发 yield()AM 回调读出这些信息并完成实际的上下文切换另外还准备线程首次运行时的栈/参数通过 kcontext。对于上下文的创建需要先实现rt_uint8_t *rt_hw_stack_init(void *tentry, void *parameter, rt_uint8_t *stack_addr, void *texit)函数。rt_uint8_t* rt_hw_stack_init(void* tentry, void* parameter, rt_uint8_t* stack_addr, void* texit) {stack_addr (rt_uint8_t*)(((uintptr_t)stack_addr sizeof(uintptr_t) - 1) ~(sizeof(uintptr_t) - 1));stack_addr - sizeof(temp_args);temp_args* args (temp_args*)stack_addr; // 在栈上保存 入口 参数 出口 等信息// 设置参数args-tentry (void (*)(void*))tentry; // tentry是“接受一个 void* 参数、返回 void 的函数指针”args-parameter parameter;args-texit (void (*)(void))texit; // texit是“不接受参数、返回 void 的函数指针”rt_uint8_t* c (rt_uint8_t*)kcontext((Area){ stack_addr - sizeof(Area) , stack_addr }, (void*)wrap, args);return c;}一开始先对齐然后拉出栈的位置在栈上保存 入口 参数 出口 等信息然后使用kcontext函数(详情见之前的随笔)将控制状态寄存器mepc设置为函数的地址当你执行mret指令的时候就会跳转到该函数中去因此会跳转到wrap中附带参数args。这个wrap()函数如下,这个是包裹函数讲义中提到让包裹函数来调用tentry, 并在tentry返回后调用texitT-Thread会保证代码不会从texit中返回因此我这个代码这么写。执行入口函数并附带上参数执行完之后执行退出函数。void wrap(temp_args* args) {args-tentry(args-parameter);args-texit();// 不应该执行于此RT-Thread会保证代码不会从texit中返回while (1);}接下来来看main函数main函数代码如下int main() {ioe_init();#ifdef __ISA_NATIVE__// trigger the real initialization of IOE to// perform SDL initialization int this main thread with large stackio_read(AM_TIMER_CONFIG);#endifextern void __am_cte_init();__am_cte_init();extern int entry(void);entry();return 0;}先初始化一下ioe外设在调用__am_cte_init()函数初始化cte。void __am_cte_init() {cte_init(ev_handler);}意思就是把__am_asm_trap赋值给mtvec方便后面ecall的时候直接跳进去__am_asm_trap函数。然后把ev_handler函数注册进回调函数中。ev_handler函数如下定义一个当前的线程可以通过rt_thread_self()这个函数获取当前线程再使用这个线程中的user_data可以用current-user_data来使用他为什么用这个呢因为这个user_data它用于存放线程的私有数据, 这意味着RT-Thread中调度相关的代码必定不会使用这个成员, 因此它很适合我们用来传递from和to的信息这里的from是当前线程这个to是你要跳往的线程这里的ev_handler是回调函数当系统陷入yield的时候执行完一些列操作(看以前的随笔)后会执行这个回调函数了。这个函数主要作用就是把当前上下文保存到from中然后利用to作为下一个上下文进行跳转。static Context* ev_handler(Event e, Context* c) {rt_thread_t current;rt_ubase_t* para;switch (e.event) {case EVENT_YIELD:current rt_thread_self();para (rt_ubase_t*)current-user_data;rt_ubase_t from para[0];rt_ubase_t to para[1];if (from) {*((Context**)from) c; //保存上下文到from中}c *(Context**)to; // 返回to作为下一个上下文break;case EVENT_IRQ_TIMER:return c;default:printf(Unhandled event ID %d\n, e.event);assert(0);}return c;}具体怎么上下文的切换呢看这两个函数void rt_hw_context_switch_to(rt_ubase_t to)//切换到to的上下文void rt_hw_context_switch(rt_ubase_t from, rt_ubase_t to)//切换到to的上下文又要保存当前上下文到from上。void rt_hw_context_switch_to(rt_ubase_t to) {rt_ubase_t data[2];rt_thread_t current rt_thread_self();rt_ubase_t temp_ud current-user_data; //保存原来的 from 和 todata[1] to;current-user_data (rt_ubase_t)data;yield();current-user_data temp_ud;}void rt_hw_context_switch(rt_ubase_t from, rt_ubase_t to) {rt_ubase_t data[2];rt_thread_t current rt_thread_self();rt_ubase_t temp_ud current-user_data; //保存原来的 from 和 todata[0] from;data[1] to;current-user_data (rt_ubase_t)data;yield();current-user_data temp_ud;}这两个函数实现起来基本差不多使用刚刚的user_data保存完from和to之后将切换线程然后切换完之后再将原先的user_data数据还回去。然后启动rt-thread成功但是很奇怪我每次输入完一行命令下次那一行命令会多一个/之前貌似不会不知道改了什么之后就会了。image
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

为什么不能自己做网站沪佳装修口碑怎么样

一:当代码开始“自省”:AI在IT领域的渗透现状 清晨,硅谷某科技公司的开发团队正在使用AI辅助编程工具。只需用自然语言描述需求,系统便能生成基础代码框架,自动检测漏洞,甚至优化算法效率。这一幕正日益普遍…

张小明 2026/1/17 22:35:35 网站建设

众美商务公馆做网站怎么在网站做直播间

LangFlow能否用于构建AI辅助决策系统?风险评估模型 在金融风控、项目投资和企业并购等高决策密度的场景中,一个核心挑战始终存在:如何快速整合多源信息、进行逻辑推理,并输出结构化、可解释的风险判断?传统方法依赖专家…

张小明 2026/1/17 22:35:36 网站建设

自己可以建设网站卖东西吗wordpress 调用文章分类

LangFlow镜像会话隔离机制:保障多用户数据独立 在AI应用快速普及的今天,越来越多团队开始尝试通过可视化工具构建大语言模型(LLM)工作流。LangChain作为主流框架,虽然功能强大,但其代码驱动的方式对非专业开…

张小明 2026/1/17 22:35:38 网站建设

宁波模板建站哪家服务专业wordpress 比分插件

Excalidraw 制定 SOP 流程:标准化作业模板 在企业运营中,一个清晰、可执行的标准化作业程序(SOP)往往是流程效率与执行一致性的关键保障。然而现实中,许多团队仍在用冗长的文字文档描述复杂流程,导致理解成…

张小明 2026/1/17 22:35:37 网站建设

织梦网站模板视频教程营销网站建设公司推荐

12.5 精准控制技巧:基于ComfyUI的高级图像生成 在前面的章节中,我们学习了Stable Diffusion的基础原理和LoRA模型的使用与训练。今天,我们将深入探讨ComfyUI这一强大的图像生成工具,它通过可视化的工作流编排,为用户提供前所未有的精确控制能力。 ComfyUI概述 ComfyUI是…

张小明 2026/1/17 22:35:42 网站建设

温州做网站哪家好网站制作的评价指标

永磁同步电机(PMSM)龙伯格(luenberger)观测器模型 控制:采用的是STM32的龙贝格无感控制方案 建模推导:b站搜索欧拉电子有详细公式推导及建模视频 参考文档:附2019年参考文献一篇永磁同步电机的无感控制就像在玩一场"盲人摸象"的游戏…

张小明 2026/1/17 22:35:39 网站建设