This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
ln -fs /dev/serial/by-id/usb-*Black*Magic*-if00 .bmp.tmp | |
# Replace arm-zephyr-eabi-gdb with the correct toolchain prefix. | |
# Update the end address depending on the SRAM size. | |
arm-zephyr-eabi-gdb --batch -ex 'tar ext .bmp.tmp' -ex 'mon swdp_scan' -ex 'attach 1' -ex 'dump bin mem ram.bin 0x20000000 0x20008000' | |
# To read all Cortex-M4 core peripheral registers: | |
# mem 0xE000E000 0xE000F000 rw 32 # This is not necessary if "set mem inaccessible-by-default off" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This script will disable most of the Windows security-related features. | |
# It is mostly intended for use in disposable VMs, such as simulation and CI/CD runners. | |
# Read the source to see what exactly is done. | |
# Author: Pavel Kirienko <[email protected]> | |
# Relaunch elevated if needed | |
$IsAdmin = ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent() | |
).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator) | |
if (-not $IsAdmin) { |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <cassert> | |
#include <cstdint> | |
#include <cstdlib> | |
namespace stack_canary | |
{ | |
/// Do not use this directly; see the StackCanary definition below. | |
template <std::size_t n_bytes, std::uint8_t seed = 0xC9> | |
class StackCanary_Impl final |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/// A numerically controlled oscillator (NCO) that outputs a sawtooth wave, whose frequency is a function of | |
/// clk rate and frequency_control_word, and the amplitude spans the range [0, 2**OUTPUT_WIDTH). | |
/// The output frequency is defined as: | |
/// | |
/// f_out = (f_clk * frequency_control_word) / (2**PHASE_ACCUMULATOR_WIDTH) | |
/// | |
/// Solve for frequency_control_word: | |
/// | |
/// frequency_control_word = ((2**PHASE_ACCUMULATOR_WIDTH) * f_out) / f_clk | |
/// |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/// Stateless, purely combinational sin(x) look-up table. Can be used as the phase-to-amplitude converter of an NCO. | |
/// It stores 256 9-bit items in a look-up table representing the first quarter of the wave. | |
/// The input x is expected to be normalized into [0, 1024) that maps to [0, 2 pi). | |
/// The signed output is normalized into [-511, +511] (sic! -512 not used). | |
module sine_lookup_1024( | |
input wire [9:0] x, | |
output wire signed [9:0] out | |
); | |
reg [8:0] entry; // Not an actual register, just a wire assignable from the always block. | |
assign out = x[9] ? -$signed({1'b0, entry}) : $signed({1'b0, entry}); // The MSb represents the half-wave index. |
OlderNewer