PA0

写在前面的话

如果您对该系列感兴趣的话,推荐您先看一下南京大学的计算机组成原理实验(也就是PA)的讲义,然后再来看这篇文章可能有更多地收获。如果您是要完成该作业的学生,我推荐你先看讲义,或者好好听老师的讲课,然后自己独立完成这个作业,但是如果你没有听懂,或者你无论如何也无法理解讲义上面的字,又或者说对讲义上面的某点知识某个问题不了解而又觉得太简单不好意思问老师,那么您可能会从这篇文章里面获得一些你需要的信息。本篇文章将会包括笔者自己做PA的所有经过,希望你并不将该文章当成抄袭的根源,而是成为你思考的源泉。

PA系列传送门

PA0:https://blog.csdn.net/qq_41983842/article/details/88921427
PA1.1:https://blog.csdn.net/qq_41983842/article/details/88934779
PA1.2:https://blog.csdn.net/qq_41983842/article/details/89714479
PA1.3:https://blog.csdn.net/qq_41983842/article/details/89714689
PA2.1:https://blog.csdn.net/qq_41983842/article/details/95232055
PA2.2&2.3:https://blog.csdn.net/qq_41983842/article/details/101164495
PA3.1:https://blog.csdn.net/qq_41983842/article/details/103094859
PA3.2:https://blog.csdn.net/qq_41983842/article/details/103843093
PA4:https://blog.csdn.net/qq_41983842/article/details/104667951

思考题

  1. Linux and Linux?
    不同Linux系统之间有什么区别?可能你现在说不出来任何区别,因为你可能仅仅接触了Debian这一个东西,而在PA0的实验里面并没有怎么了解他,只是执行了一些简单的命令,希望你百度这个问题并总结来获得答案,日后你在使用多种Linux系统的时候可能会有更深的体验。

  2. Can’t memory be larger?

    内存大小不可以尽可能大,因为32位系统可以支配32根地址线,其内存寻址能力是2^32,也就是他内存寻址能力的极限就是4Gb。

  3. Why Windows is quite ‘fat’?

    Windows有很多东西是一次性下好,但是debian默认安装的东西比Windows要少很多,很多东西都要之后自己去装。而且Windows有图形界面,占很大空间。

  4. 为什么关机需要超级用户权限?

    防止发生意外,比如说关机的时候别的用户有文档没有保存,这时候直接关机就会导致别的用户丢失文档,但是如果是root用户,整个机器都一个人控制,所以就可以关机。

  5. make期间一堆信息输出到屏幕的时候会发生什么?

    请自己好好思考一下这个问题,提示:(编译)

  6. 如何做一个模拟的计算机运行helloworld?

    这个问题贯穿整个PA,大概说下自己的感想,什么都可以,等到做完整个PA之后你就会有更深的体验。

实验内容

安装debian双系统

我准备在mac上面安装debian双系统,而不是装虚拟机,首先下载debian映像并且制作启动u盘
开始安装第一步啊大大大啊大大大
输入用户名
在这里插入图片描述
设置密码
在这里插入图片描述
从mac的128g存储空间里面分出来30g
在这里插入图片描述
留出来6g的交换空间
在这里插入图片描述
选择安装的软件(记得勾上GNOME
在这里插入图片描述
安装成功

至此双系统安装完成。

进入Linux的第一步

进行poweroff命令
在这里插入图片描述

安装必要的工具

换成国内163的源
当你无法进行sudo或者apt-get update之后发现并不能解决你的问题的时候,就是你换源的时候了,推荐阿里源、163源等等,换源之后你会发现爽的一批。具体换源步骤百度。
在这里插入图片描述
apt-get update并且安装sudo
在这里插入图片描述
在这里插入图片描述
安装vim
在这里插入图片描述
vim test
在这里插入图片描述

安装更多的工具

尝试连接网络(因为我是安装的双系统,由于debian不支持mac的网卡,所以我选购了rt2800架构的网卡插在电脑上来使用无线网络,所以我能够直接连接上网络而不需要配置,装虚拟机的同学们请按照讲义一步一步来)
在这里插入图片描述
接下来安装了更多的工具,由于数量众多,所以没有一一截图,一般来讲只要你换了一个好一点的源,这些都是对着讲义输入指令就完全OK的事情。

更多的发现

进入vimrc并且进行调试,按照我的习惯设置的vim
在这里插入图片描述
helloworld程序
在这里插入图片描述
对他进行调试,设置断点
在这里插入图片描述
使用make指令
在这里插入图片描述
校准时间
在这里插入图片描述

用SSH连接虚拟机

这部分我没有做相应的实验,双系统直接从终端打开,用虚拟机的小伙伴一定要认真对着讲义做这块,后期好多的问题都容易发生在这个地方。

提交pa实验的代码

使用git工具
在这里插入图片描述
添加环境变量
在这里插入图片描述
更换STU_ID
在这里插入图片描述
切换到pa0分支
在这里插入图片描述使用git log查看更改
在这里插入图片描述
使用make命令进行编译
在这里插入图片描述
上传到coding.net代码仓库
在这里插入图片描述
在这里插入图片描述
上传成功!
在这里插入图片描述

遇到的问题及解决办法

写出你所遇到的比较让人头疼的问题

实验心得

PA0已经到此结束,PA0是整个PA系列最简单也是最基础的一步,只有把环境配置好,将来写代码才不会出现奇奇怪怪的问题,不知你有何体验?

在STM32微控制器上,要使用PA0引脚作为唤醒源,你需要进行以下步骤: 1. 配置PA0引脚为唤醒输入模式。这可以通过设置GPIO寄存器来实现。例如,对于PA0引脚,你可以使用以下代码将其配置为唤醒输入模式: ```c RCC->IOPENR |= RCC_IOPENR_GPIOAEN; // 使能GPIOA时钟 GPIOA->MODER &= ~(GPIO_MODER_MODE0); // 清除MODER寄存器中PA0位的设置 GPIOA->PUPDR &= ~(GPIO_PUPDR_PUPD0); // 清除PUPDR寄存器中PA0位的设置 ``` 2. 配置唤醒源。你可以选择将PA0设置为上升沿、下降沿或边沿触发的唤醒源。以下是一个示例代码,将PA0配置为上升沿触发的唤醒源: ```c PWR->CR1 &= ~(PWR_CR1_LPMS); // 清除CR1寄存器中的低功耗模式设置 PWR->CR3 &= ~(PWR_CR3_EWUP1); // 清除CR3寄存器中的事件唤醒源设置 PWR->CR3 |= PWR_CR3_EWUP1_0; // 将PA0配置为上升沿触发的唤醒源 ``` 3. 设置低功耗模式。你需要选择适当的低功耗模式,并根据需要配置其他相关设置。以下是一个示例代码,将STM32设置为待机模式: ```c PWR->CR1 |= PWR_CR1_LPMS_0; // 将待机模式设置为低功耗模式 PWR->CR1 |= PWR_CR1_PDDS; // 启用待机模式 ``` 4. 进入低功耗模式。使用以下代码将STM32进入低功耗模式: ```c __WFI(); // 执行等待进入低功耗模式的指令 ``` 请注意,以上代码只是一个示例,实际使用时需要根据你的具体需求进行适当的修改。还需要确保你正确配置了时钟和其他相关设置。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值