登录
首页 » 嵌入式芯片 » 这是一个不到2000行的操作系统,巧妙地利用ARM9 CPU的内存管理单元(MMU)实现进程的切换。ARM9的4G虚拟地址可分成128个进程空间,每个32M。虽...

这是一个不到2000行的操作系统,巧妙地利用ARM9 CPU的内存管理单元(MMU)实现进程的切换。ARM9的4G虚拟地址可分成128个进程空间,每个32M。虽...

于 2023-01-15 发布 文件大小:74.88 kB
0 139
下载积分: 2 下载次数: 1

代码说明:

这是一个不到2000行的操作系统,巧妙地利用ARM9 CPU的内存管理单元(MMU)实现进程的切换。ARM9的4G虚拟地址可分成128个进程空间,每个32M。虽然它们的虚拟地址(VA)都是0-(32M-1),但是对应的MVA(Modified vitual address,由虚拟地址VA和进程号PID组合而来)不一样,设置MVA对应的页表指向不同物理地址就可以很方便地让各进程运行空间相互隔开。代码很少,注释丰富,希望能对想理解操作系统、了解ARM体系结构的朋友有所帮助。 -This is a trip of less than 2000 operating system, cleverly using ARM9 CPU memory management unit (MMU) to achieve the switching process. ARM9 4G virtual address can be divided into 128 process space, each 32M. While their virtual address (VA) are 0- (32M-1), but the corresponding MVA (Modified Virtual address, and by the virtual address VA and the process of portfolio from PID) not the same, set MVA corresponding page table at the different physical address can be very easy to let the the process of separating the mutual operation of space. Code rarely Notes rich, in hopes of understanding the operating system, understanding the ARM architecture friends help.

下载说明:请别用迅雷下载,失败请重下,重下不扣分!

发表评论

0 个回复

  • ARMA model
    matlab时间序列信号处理,自回归滑动平均模型-ARMA model
    2022-05-20 02:31:28下载
    积分:1
  • This is a very good preparation Verilog 8
    这是一个很好的Verilog 编写的8位RISC CPU源码(可做为MCU),并且包括完整的C 语言的测试代码。-This is a very good preparation Verilog 8-bit RISC CPU source (available as MCU), and includes a complete C language test code.
    2022-07-04 18:32:56下载
    积分:1
  • 这个是三星arm9的PLL源码,不可多得啊
    这个是三星arm9芯片的PLL源码,不可多得啊-This is a Samsung ARM9 chip PLL source, rare ah
    2023-06-29 08:10:04下载
    积分:1
  • PS2键盘程序
    包含键盘扫描,和PS2键盘通讯的程序,51内核单片机驱动PS2接口的实现程序,可以使单片机具有接插PS2接口设备(例如鼠标,键盘)的能力,大家可以借鉴一下!
    2022-03-23 21:46:55下载
    积分:1
  • ARM ADS 外设仿真的一个例子
    ARM ADS 外设仿真的一个例子-ARM ADS peripherals example of a simulation
    2023-01-19 13:50:03下载
    积分:1
  • 基于UART的加法器的实现
    应用串口调试工具作为外部输入与输出的接口,实现多位数的相加。即通过UART串口分别输入需要相加的多位数A与B,最后把A和B两个多位数相加的过程和结果,回显给用户。具体实现方法:应用UART中断。
    2022-03-26 18:52:25下载
    积分:1
  • 绝对原创,开源一STM32项目,CAN,UART,Input检测 原创相对高效性能与代码重用平衡思路(缓冲队列加软中断),可直接做工程模板
    1、CAN收发队列   使用内存FIFO缓冲CAN帧,适合大数据量通信;并使用内部软中断处理CAN数据,相当于事件响应,综合应该比查询方式节省不少时间,也应该比OS调度省点时间。Can.C:底层处理,Communi.C:与应用层高相关。 应用层处理流程用函数指针表的方式调用减少代码量及阅读整齐;实现CAN各种错误记录机制。已初步测试,该机制可用。   CAN处理流程:     接收:CAN1_RX0_IRQHandler_Name (void), CAN1_RX1_IRQHandler(void)           接收中断,CAN_QueueWriteQuick()将当前的有效报文压入内存FIFO,压入的数据为整个CAN邮箱数据,所以后续的处理函数可以分辨出完整的数据。 void CAN1_RX0_IRQHandler_Name (void) // CAN1_RX0_IRQHandler_Name { /* FIFO从空状态开始,在接收到第一个有效的报文后,FIFO状态变为挂号_1(pending_1), 硬件相应地把CAN_RFR寄存器的FMP[1:0]设置为’01’(二进制01b)。 软件可以读取FIFO输出邮箱来读出邮箱中的报文,然后通过对CAN_RFR寄存器的RFOM位 设置’1’来释放邮箱,这样FIFO又变为空状态了。如果在释放邮箱的同时, 又收到了一个有效的报文,那么FIFO仍然保留在挂号_1状态,软件可以读取FIFO 输出邮箱来读出新收到的报文。 如果应用程序不释放邮箱,在接收到下一个有效的报文后,FIFO状态变为 挂号_2(pending_2),硬件相应地把FMP[1:0]设置为’10’(二进制10b)。 重复上面的过程,第三个有效的报文把FIFO变为挂号_3状态(FMP[1:0]=11b)。 此时,软件必须对RFOM位设置1来释放邮箱,以便FIFO
    2022-03-21 07:31:29下载
    积分:1
  • DSP2812的AD采集 采用的是中断的方 用EV出发中断
    DSP2812的AD采集 采用的是中断的方式 用EV出发中断-DSP2812 s AD collect。it is interrupt ,use EV
    2022-01-28 05:50:23下载
    积分:1
  • MAX038 的中文资料及说明
    MAX038 的中文资料及说明-Chinese MAX038 information and explanations
    2022-05-18 17:40:47下载
    积分:1
  • DC motor contro use Pic18f4431
    DC motor contro use Pic18f4431
    2022-08-14 01:51:48下载
    积分:1
  • 696516资源总数
  • 106914会员总数
  • 0今日下载