Giter Club home page Giter Club logo

urboot.hex's People

Contributors

stefanrueger avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

urboot.hex's Issues

New directory structure and file name convention

Carried over from stefanrueger/urboot#19
@MCUdude @mcuee @SpenceKonde feel free to comment

[edited to remove _fr frills from options by making them automatically included if there is space]

Some thoughts about what to offer below the mcus/<mcu> level. Note I plan a slightly different structure/naming for cores (will comment later, but basically to make it easier to cope with boards.txt file).

  • Would like to have WDTO as first directory level (not sure I want to populate that, but at least conceptionally it should be there); max three directory names would be
    • watchdog_timeout_+512 ms
    • watchdog_timeout_1024 ms
    • watchdog_timeout_2048 ms
  • Next directory level with up to 21 different oscillator modes (again, probably only populate autobaud, external and internal-4%, ... internal+4%). Is it OK to use % in directory names?
    • autobaud
    • external_oscillator_x
    • internal_oscillator_a-9%
      ...
    • internal_oscillator_h-1%
    • internal_oscillator_i
    • internal_oscillator_j+1%
      ...
    • internal_oscillator_q+9%
  • Next directory level would be FCPU (unless it's autobaud); here only nominal values for internal oscillators (8 MHz, 1 MHz and 128 kHz for ordinary parts or 9.6 MHz, 4.8 MHz, ... for ATtiny13); the deviation has been selected in the level above
    • fcpu_+0m1250
    • fcpu_+0m2304
    • fcpu_+0m2500
    • fcpu_+0m4608
    • fcpu_+0m5000
    • fcpu_+0m9216
    • fcpu_+1m0000
    • fcpu_+1m3824
    • fcpu_+1m5000
    • fcpu_+1m8432
    • fcpu_+2m0000
    • fcpu_+2m3040
    • fcpu_+2m5000
    • fcpu_+2m7648
    • fcpu_+3m0000
    • fcpu_+3m6864
    • fcpu_+4m0000
    • fcpu_+4m6080
    • fcpu_+5m0000
    • fcpu_+5m5296
    • fcpu_+6m0000
    • fcpu_+7m3728
    • fcpu_+8m0000
    • fcpu_+9m2160
    • fcpu_10m0000
    • fcpu_11m0592
    • fcpu_12m0000
    • fcpu_14m7456
    • fcpu_16m0000
    • fcpu_18m4320
    • fcpu_20m0000
    • fcpu_22m1184
    • fcpu_24m0000
  • Next level baud rates (unless it's autobaud), eg,
    • br_++19k2
    • br_++28k8
    • br_++38k4
    • br_++57k6
    • br_++76k8
    • br_+115k2
    • br_+125k0
    • br_+230k4
    • br_+250k0
    • br_+460k8
    • br_+500k0
    • br_+576k0
    • br_1000k0
  • Next level would be the I/O port; it would be either a list of UARTs (for parts that have UARTs) or a list of SWIO combos (for parts that don't) but always with rx/tx line, eg, for the ATtiny841 below (the thing is that some fcpu/br combos can only be implemented with SWIO, but the "I/O port" name would still be UART...)
    • uart0_alt1_rxb2_txa7
    • uart0_rxa2_txa1
    • uart1_rxa4_txa5
  • Next level would be the board configuration (LED Pin, LED polarity, CS line of external SPI flash for dual boot)
    • no-led (actually not board/core specific, just a bootloader for the part, but every board/core will have that)
    • lednop
    • template
    • led-b5
    • led+b7
    • led+b5_csd5_dual
  • Then, finally phew, the bootloaders; their name would be unique, even without the directory structures and they would look sth like urboot_m328p_w1_8m0x_115k2_swio_rxd0_txd1_no-led_ee_ce_hw_stk500.hex, urboot_t167_autobaud__uart0_rxa0_txa1_p.hex or urboot_t13a_4m8h_38k4_swio_rxb1_txb0_led+b2_p_ee_ce.hex; notice the padding + form the directories are gone, the AVRDUDE short name of the part us used and the letter after the frequency that indicates oscillator type and whether external or internal and if so how much it's above or below the nominal value (h is internal oscillator - 1%); notice also that the method to create the baud rate for UART0 for the ATmega329P could be swio
    • p reset vector protection for vector bootloader
    • ee EEPROM r/w
    • ce can emulate chip erase (and does so from top to bottom)
    • dual dual boot
    • hw hardware supported bootloader
    • stk500 old STK500v1 protocol, compatible with avrdude -c arduino, not recommended will be deprecated
  • There are a number of frills, non-essential properties of a bootloader, eg, quicker exit on errors, that will secretly be compiled in if there is space within the current page limit. Also only planning on certain combinations
    • (nothing) for the space conscious
    • p
    • p_ce
    • p_ee
    • p_ee_ce
    • p_ee_ce_dual
    • hw (only in parts with 256 byte bootsection)
    • ce_hw (only in parts with 256 byte bootsection, may not be available as too big for 256 bytes)
    • ee_ce_hw
    • ee_ce_hw_stk500 ("drop-in replacement" for optiboot)
    • ee_ce_dual_hw

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.