GithubHelp home page GithubHelp logo

cs107e / cs107e.github.io Goto Github PK

View Code? Open in Web Editor NEW
142.0 24.0 123.0 551.66 MB

Backing repository for CS107e site. Don't commit here (automatically managed). Read content on website

Home Page: https://cs107e.github.io

License: Other

HTML 0.08% Ruby 0.01% C 99.57% CSS 0.01% Assembly 0.01% Python 0.03% JavaScript 0.10% Makefile 0.03% SCSS 0.18% Shell 0.01% TypeScript 0.01%

cs107e.github.io's Introduction

Public repo of materials for CS107e course. Do not commit here (automatically managed)

cs107e.github.io's People

Contributors

didikamalova avatar ishi-gupta avatar kenny1g avatar liana-keesing avatar tofergregg avatar yogi-the-curious avatar zelenski avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cs107e.github.io's Issues

Could you please create a branch for the autumn 2020 ?

I am a student from China, and I am studying with your courses in autumn 2020. Just now, due to the update of your courses, my learning process has been affected to some extent. Could you please create a branch for the courses in autumn 2020

Assignment 1 question

Hi,

A rule of thumb for style is that if your code is well-designed, it should take little additional code to extend it from 4 to 8 LEDs, ideally just changing a constant.

The scanning frequency should be around 1Hz (that is, the light should bounce back and force about once per second).

Does the assignment need to change a constant to extend LEDs and keep the frequency at 1Hz at the same time?

Kit inventory specifications

Hi,

Will you be able to advise on the part specifications/ where to get these parts?

In particular, I'm interested in the USB to serial breakout board. Is there a specific model or place where I can get a similar copy? I have only found boards with female micro usb to vcc, ID, D+, D-, and ground breakouts.

Other than that, if I wish to follow along the curriculum, the other parts should be able to work even if sourced elsewhere and have no specific model dependencies? (Other than BJT and raspberry pi which from the other issues, I understand to be a pi 1 A+)

Thank you so much for your time and I hope this helps those trying to follow along this interesting and exciting looking class on their own!

Lab 1 exercise 9, possible error?

Hi,

I noticed that under exercise 9. Add a button! (optional) in Lab 1 the comment for branching was that the LEV register for the input button goes LOW after pressing it. At that point, the code branches to on:

beq on // when the button is pressed (goes LOW), turn on LED

However, upon looking at the prior code, it is noted that the branching to on only happens when there's a 1 in the position of the input pin's LEV register, or HIGH.

// read GPIO 10 
    ldr r0, LEV0
    ldr r1, [r0] 
    tst r1, r2 // r2 has value #(1 << 10)

In that case, wouldn't the LED be on whenever the button is not pressed?

Am I missing or misunderstanding something? Any and all clarifications will be greatly appreciated!

Warmest Regards,
ElasticBottle

A heartfelt appeal: please make lecture videos or transcripts available

Dear CS107E team,

I'd like to commend you on how awesome the site and course is. This is a really special course. I love the fact that everything is online and open: I have been working through the course myself and am having a lot of fun and learning a lot.

Something that would really help would be the lecture videos, however: the lecture slides themselves don't provide enough context to understand them without some accompanying annotation.
I have previously spoken to Prof Levin who said that lecture videos couldn't be made public for privacy reasons:

Unfortunately, I can’t make the class videos we have public. The videos are a recording of my presenting material over Zoom to the students. The students are in the videos, when they ask questions or discuss the material. They were intended to be “as close to being there” for students whose time zones or other considerations made in-person attendance of lecture difficult. But since the students are in the videos, I can’t make them public: I didn’t ask students to sign a waiver, and Stanford’s position on student privacy is that it includes their in-class attendance.

I completely understand the privacy concerns, and of course I would not presume to ask you to get your students to sign a waiver.
I have a suggestion, however: would it be possible to run the lecture videos through some speech recognition software and get the transcript of the lectures (and, if needed, to redact students' questions and your answers if privacy is still a concern even with the transcript)? Additionally, it would be really helpful to get access to any of the grader/grader code.

Thanks very much once again for building and sharing such a wonderful course. Those of us not lucky enough to study at Stanford can only offer our sincere gratitude.

Best,
Zhenghong

Problem encountered during install arm-none-eabi on macOS

I install arm-none-eabi by following the installation guide.

arm-none-eabi --version
zsh: command not found: arm-none-eabi

But I can run command like this:

/usr/local/Cellar/arm-none-eabi/cs107e/bin/arm-none-eabi-gcc-4.8.3 --version
arm-none-eabi-gcc-4.8.3 (GCC) 4.8.3
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

I think its bin directory is already in path variable.
My path:

echo $PATH
/Users/allen/opt/miniconda3/bin:/opt/miniconda3/bin:/opt/miniconda3/condabin:/usr/local/Cellar/qt/bin:/usr/local/Cellar/arm-none-eabi/cs107e/bin:some-other-path
whence -a -m 'arm-none-eabi*'
/usr/local/Cellar/arm-none-eabi/cs107e/bin/arm-none-eabi-addr2line
/usr/local/Cellar/arm-none-eabi/cs107e/bin/arm-none-eabi-addr2line
/usr/local/Cellar/arm-none-eabi/cs107e/bin/arm-none-eabi-ar
/usr/local/Cellar/arm-none-eabi/cs107e/bin/arm-none-eabi-ar
/usr/local/Cellar/arm-none-eabi/cs107e/bin/arm-none-eabi-as
/usr/local/Cellar/arm-none-eabi/cs107e/bin/arm-none-eabi-as
/usr/local/Cellar/arm-none-eabi/cs107e/bin/arm-none-eabi-c++filt
/usr/local/Cellar/arm-none-eabi/cs107e/bin/arm-none-eabi-c++filt
/usr/local/Cellar/arm-none-eabi/cs107e/bin/arm-none-eabi-cpp
/usr/local/Cellar/arm-none-eabi/cs107e/bin/arm-none-eabi-cpp
/usr/local/Cellar/arm-none-eabi/cs107e/bin/arm-none-eabi-elfedit
/usr/local/Cellar/arm-none-eabi/cs107e/bin/arm-none-eabi-elfedit
/usr/local/Cellar/arm-none-eabi/cs107e/bin/arm-none-eabi-gcc
/usr/local/Cellar/arm-none-eabi/cs107e/bin/arm-none-eabi-gcc
/usr/local/Cellar/arm-none-eabi/cs107e/bin/arm-none-eabi-gcc-4.8.3
/usr/local/Cellar/arm-none-eabi/cs107e/bin/arm-none-eabi-gcc-4.8.3
/usr/local/Cellar/arm-none-eabi/cs107e/bin/arm-none-eabi-gcc-ar
/usr/local/Cellar/arm-none-eabi/cs107e/bin/arm-none-eabi-gcc-ar
/usr/local/Cellar/arm-none-eabi/cs107e/bin/arm-none-eabi-gcc-nm
/usr/local/Cellar/arm-none-eabi/cs107e/bin/arm-none-eabi-gcc-nm
/usr/local/Cellar/arm-none-eabi/cs107e/bin/arm-none-eabi-gcc-ranlib
/usr/local/Cellar/arm-none-eabi/cs107e/bin/arm-none-eabi-gcc-ranlib
/usr/local/Cellar/arm-none-eabi/cs107e/bin/arm-none-eabi-gcov
/usr/local/Cellar/arm-none-eabi/cs107e/bin/arm-none-eabi-gcov
/usr/local/Cellar/arm-none-eabi/cs107e/bin/arm-none-eabi-gdb
/usr/local/Cellar/arm-none-eabi/cs107e/bin/arm-none-eabi-gdb
/usr/local/Cellar/arm-none-eabi/cs107e/bin/arm-none-eabi-gprof
/usr/local/Cellar/arm-none-eabi/cs107e/bin/arm-none-eabi-gprof
/usr/local/Cellar/arm-none-eabi/cs107e/bin/arm-none-eabi-ld
/usr/local/Cellar/arm-none-eabi/cs107e/bin/arm-none-eabi-ld
/usr/local/Cellar/arm-none-eabi/cs107e/bin/arm-none-eabi-ld.bfd
/usr/local/Cellar/arm-none-eabi/cs107e/bin/arm-none-eabi-ld.bfd
/usr/local/Cellar/arm-none-eabi/cs107e/bin/arm-none-eabi-nm
/usr/local/Cellar/arm-none-eabi/cs107e/bin/arm-none-eabi-nm
/usr/local/Cellar/arm-none-eabi/cs107e/bin/arm-none-eabi-objcopy
/usr/local/Cellar/arm-none-eabi/cs107e/bin/arm-none-eabi-objcopy
/usr/local/Cellar/arm-none-eabi/cs107e/bin/arm-none-eabi-objdump
/usr/local/Cellar/arm-none-eabi/cs107e/bin/arm-none-eabi-objdump
/usr/local/Cellar/arm-none-eabi/cs107e/bin/arm-none-eabi-ranlib
/usr/local/Cellar/arm-none-eabi/cs107e/bin/arm-none-eabi-ranlib
/usr/local/Cellar/arm-none-eabi/cs107e/bin/arm-none-eabi-readelf
/usr/local/Cellar/arm-none-eabi/cs107e/bin/arm-none-eabi-readelf
/usr/local/Cellar/arm-none-eabi/cs107e/bin/arm-none-eabi-run
/usr/local/Cellar/arm-none-eabi/cs107e/bin/arm-none-eabi-run
/usr/local/Cellar/arm-none-eabi/cs107e/bin/arm-none-eabi-size
/usr/local/Cellar/arm-none-eabi/cs107e/bin/arm-none-eabi-size
/usr/local/Cellar/arm-none-eabi/cs107e/bin/arm-none-eabi-strings
/usr/local/Cellar/arm-none-eabi/cs107e/bin/arm-none-eabi-strings
/usr/local/Cellar/arm-none-eabi/cs107e/bin/arm-none-eabi-strip
/usr/local/Cellar/arm-none-eabi/cs107e/bin/arm-none-eabi-strip

Not able to use bootloader.bin on Raspberry Pi 3B

Hi,

Is it known if bootloader.bin should work on Raspberry Pi 3B?

I'm able to run other kernel.img files using the supplied start.elf and bootcode.bin, but when I copy bootloader.bin to kernel.img, I see the ACT LED flash once or twice, but I have the Raspberry PI "rainbow" splash screen via HDMI display. The ACT LED does not continue to flash after the first couple of flashes, so I believe the problem lies on the RPi side of the bootloader process, rather than from the client that initiates the kernel upload.

My SD card drive looks like this:

$ md5 /Volumes/RPI/*
MD5 (/Volumes/RPI/bootcode.bin) = fd01b240fcc5d4c83560676415081508
MD5 (/Volumes/RPI/kernel.img) = 9cd7bb9062f8c77dc47610794fde0163
MD5 (/Volumes/RPI/start.elf) = cf4b634e9e6eb2dab81b4c2d94eb5ff6

I experimented by adding a config.txt file with the single entry enable_uart=1 to see if this would resolve the issue, but alas it did not seem to change the behaviour in any noticeable way.

Replacing kernel.img with this kernel7.img file and adding this config.txt file worked for me, suggesting that bootcode.bin and start.elf are working fine, and the SD card is properly formatted etc. This is how the root directory looked in this successful arrangement:

$ md5 /Volumes/RPI/*
MD5 (/Volumes/RPI/bootcode.bin) = fd01b240fcc5d4c83560676415081508
MD5 (/Volumes/RPI/config.txt) = 34d4125b8f0b6d0b78afdaa9f163cba9
MD5 (/Volumes/RPI/kernel7.img) = a297d606caf1ff1cb45902f489bd8641
MD5 (/Volumes/RPI/start.elf) = cf4b634e9e6eb2dab81b4c2d94eb5ff6

As you see, I have taken the bootcode.bin and start.elf from the cs107e firmware folder and simply added the config.txt and kernel7.img from Peter Lemon's repository. I share this simply to demonstrate that the Raspberry Pi 3B indeed functions correctly and can boot a custom kernel on the SD card I created.

Note, the output I see from the client side is:

Found serial port: /dev/cu.SLAB_USBtoUART
Sending `/Users/pmoore/RPiDev/kernel.img` (460 bytes): xxxxxx
./rpi-install.py: Send failed (bootloader not listening?)

I waited a few seconds for an acknowledgement from the bootloader
and didn't hear anything. Do you need to reset your Pi?

Further help at http://cs107e.github.io/guides/bootloader/#troubleshooting

Many thanks in advance, and I hope this may help others that hit the same problem! :-)

Not able to blink ACT LED, Step 5 of Lab 1

I'm doing this course independently and purchased all of the material, but stuck on step 5 of the first lab. I've transferred the 1st lab's files to my 8GB SanDisk SDHC (FAT32 formatted), renamed the
blink-actled.bin to kernel.img, inserted into the raspberry pi (A+ v1.1) and connected as instructed. But the ACT Led does not blink, it simply lights up the same way as it does without the SD inserted.

I'm working on a Mac OS Mojave.
I've got the 5V from the USB-Serial adapter connected to Pin2 (5V) and Ground to Pin9.

Would love some pointers. Thank you.

whatsapp image 2018-11-29 at 21 07 09

Could you please provide a public link for downloading starter files?

First, I want to say that I have always been interested in OS and low-level stuff and this course is just amazing and awesome!

I am a software engineer in China and I enjoy so much self-studying this course when I am off work.

But since I am not an official student I can't get access to the starter files of each assignment. So I want to know can you provide a public link for downloading these materials? It will be a great help for people like me to self-study this excellent course.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.