Skip to content

Commit

Permalink
update readme.
Browse files Browse the repository at this point in the history
  • Loading branch information
Repeerc committed Mar 14, 2022
1 parent 77c3169 commit 177f2d1
Show file tree
Hide file tree
Showing 18 changed files with 56 additions and 12 deletions.
Binary file added Image/1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Image/10.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Image/11.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Image/12.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Image/13.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Image/14.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Image/15.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Image/16.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Image/17.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Image/18.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Image/2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Image/3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Image/4.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Image/5.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Image/6.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Image/7.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Image/8.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
68 changes: 56 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

[![GPL Licence](https://badges.frapsoft.com/os/gpl/gpl.png?v=103)](https://opensource.org/licenses/GPL-3.0/)

本固件项目由一群计算器爱好者始创,使用了[FreeRTOS kernel](https://github.com/FreeRTOS/FreeRTOS)[TinyUSB](https://github.com/hathach/tinyusb)[FatFs](http://elm-chan.org/fsw/ff/00index_e.html)[dhara](https://github.com/dlbeer/dhara)等库。我们非常欢迎同好试用和改善本项目的代码,也非常乐意听取您的宝贵意见。期待您的参与!
本固件项目由一群计算器爱好者始创,使用了[FreeRTOS kernel](https://github.com/FreeRTOS/FreeRTOS)[TinyUSB](https://github.com/hathach/tinyusb)[FatFs](http://elm-chan.org/fsw/ff/00index_e.html)[dhara](https://github.com/dlbeer/dhara)[giac](http://www-fourier.ujf-grenoble.fr/~parisse/giac.html)等库。我们非常欢迎同好试用和改善本项目的代码,也非常乐意听取您的宝贵意见。期待您的参与!
## 目前工作进展
- [x] Boot
- [x] 调试串口
Expand All @@ -17,27 +17,27 @@
- [x] 键盘驱动(GPIO轮询)
- [x] 定时器驱动
- [x] CPU频率设定
- [x] RTC时钟
- [ ] RTC时钟
- [x] USB大容量存储模式
- [x] USB串口控制台
- [x] USB模拟键盘鼠标
- [ ] USB串口控制台
- [ ] USB模拟键盘鼠标
- [x] USB功能动态配置
- [x] FLASH驱动
- [x] FATFS文件系统
- [x] 多任务
- [ ] 多任务
- [x] 虚拟内存
- [x] 进程、ELF加载
- [x] 最小化MicroPython实现
- [ ] 进程切换、进程结束、ELF卸载
- [ ] 用户界面GUI
- [ ] ~~进程、ELF加载~~
- [ ] 最小化MicroPython实现
- [ ] ~~进程切换、进程结束、ELF卸载~~
- [x] 用户界面GUI
- [ ] 电源管理
- [ ] Linux 5.4 半虚拟化双内核实现
- [ ] ~~Linux 5.4 半虚拟化双内核实现~~
- [ ] 完全脱离官方刷机工具的固件升级

目前工作进展:已经完成了操作系统大部分内核和一些必要的硬件驱动。但由于未弄清STMP3770固件刷入机制,因此需要在Win7\WinXP环境下用计算器官方的固件升级软件刷入本固件。同时还没有用户界面,现在的工作重心是实现虚拟内存管理和进程加载。关于用户界面GUI等还在讨论中,如有宝贵意见可于Issues提出。


## 固件编译/安装
## 固件编译

### CMake

Expand All @@ -62,11 +62,55 @@
cd ./build
cmake .. (或cmake .. -G Ninja)
make (或ninja) #编译固件
make flash (或ninja flash) #将固件刷入RAM (刷入前请将计算器完全断电(抠电池), 之后在按住ON/C按键的同时插入USB线,即可进入刷写模式)
```


## 固件安装

注意:HP39GII的相关驱动程序请自行安装。

代码编译完成后,执行以下命令将引导程序刷入计算器的RAM中 (刷入前请将计算器完全断电(抠电池), 之后在按住ON/C按键的同时插入USB线,即可进入刷写模式)
```
make flash (或ninja flash)
```
等待命令提示符窗口中进度条走完之后,引导程序会开始执行,此时计算器应显示如下界面:
![Loader1](Image/1.png)
由于本固件的底层驱动以及闪存的存储结构与原始固件不同,因此在这里会提示磁盘格式错误,因此需要对闪存进行低级格式化之后才可继续安装固件。(注意,接下来的操作将会抹除掉计算器上的所有数据,请先备份好相关文件)

![loader2](Image/2.png)
使用方向键将进入`Format Flash`菜单,该菜单下有两个选项,`Erase`选项仅会将Flash全片擦除,之后不会写入任何数据,该选项主要用于恢复官方的系统镜像。
为了安装新固件,需要进行分区并格式化,故此处选中`Format`选项之后,按下`Enter`键,将开始执行格式化操作,该过程需要1~2分钟。

![Loader3](Image/3.png)
闪存格式化完成之后,将菜单切换至`Mount USB MSC`界面,通过这个界面可以将计算器刚刚分区并格式化完成后的分区挂载到USB上,以便用电脑直接操作内部Flash并拷贝系统。
在这里选中`SYS`并按下`Enter`键挂载计算器的系统分区。

![Loader4](Image/4.png)
![Loader5](Image/5.png)
挂载`SYS`分区之后,电脑上会多出一个10MB左右的U盘,接着将刚刚编译出的`OSLoader.sb`引导文件和`ExistOS.sys`系统文件拷贝至计算器中。拷贝完成后安全弹出U盘,或者在计算器上将挂载选项设置为`None`
![Loader6](Image/6.png)
(弹出磁盘或卸载磁盘之后的某些情况下计算器界面可能会卡住1分钟左右,不用担心,请坐和放宽,此时引导程序正在对磁盘执行Trim操作进行垃圾回收,以加快往后系统运行时的IO速度)
![Loader7](Image/7.png)
接下来将菜单移动至`Install System`选项,并按下`ENTER`键,引导程序会将自己本体给写入计算器的引导扇区中完成最后的安装。
![Loader8](Image/8.png)
出现以上界面时表示系统已经安装完成,此时可以选中`Boot ExistOS`直接引导或`Reboot`重启进入系统。
![Loader10](Image/10.png)
## 固件基本使用
系统编译和安装完成后,开机将会见到如下系统界面(默认开启4MB虚拟内存)。
![Sys1](Image/11.png)
目前的版本中设置了两个输入界面,按下`F1`进入系统自带的Shell,可以执行系统控制相关的命令(目前暂无)。按下`F2`将切换至CAS计算模式,进入CAS模式之前系统会对giac运行环境进行初始化,需要几秒钟的时间。
![Sys2](Image/12.png)
初始化完成后便可以进行一些相关的计算。
![Sys3](Image/13.png)
![Sys4](Image/14.png)
![Sys5](Image/15.png)
计算的结果会保存在上方的历史记录框内,可以通过上下光标键进行选择,选择需要的表达式按下COPY(`F4`)键可将该表达式复制到输入框中,并可对其进行修改作为下一次计算的输入。
![Sys6](Image/16.png)
![Sys7](Image/17.png)
计算过程中可按下`ON`键中断正在计算的表达式。
![Sys8](Image/18.png)
由于使用的giac代数运算系统体积相对来说较为庞大(约6MB),而该计算器仅有500KB左右的运行内存,因此在进行计算时需要频繁的IO操作,从而导致其在某些复杂问题求解时会出现计算十分缓慢的问题。

## 代码提交规范

**如果您想贡献代码,请遵守以下规范**
Expand Down

0 comments on commit 177f2d1

Please sign in to comment.