GithubHelp home page GithubHelp logo

optimize digitalWrite about ch55xduino HOT 3 CLOSED

deqingsun avatar deqingsun commented on July 20, 2024
optimize digitalWrite

from ch55xduino.

Comments (3)

DeqingSun avatar DeqingSun commented on July 20, 2024

I checked the map file, the lookup tables take 160 bytes, no matter if we use digitalWrite or not. When wiring_digital is linked, an additional of 395 bytes will be used.

I think it makes sense to use macros to replace lookup tables, no code space will be used when wiring_digital is not linked. Instead, there can be a wiring_digital_fast file that uses a lot of macros to reduce code space.

from ch55xduino.

DeqingSun avatar DeqingSun commented on July 20, 2024

I tried to use Marco to do so. However, the code gets significantly bigger.

#define digitalPinToPort(P) ( ((P%10)<8) ? (P0PORT+(P/10)) : NOT_A_PORT )
#define digitalPinToBitMask(P) ( ((P%10)<8) ? (1<<(P%10)) : 0 )

Seems we need to find a way to make SDCC not link the array if not needed.

from ch55xduino.

DeqingSun avatar DeqingSun commented on July 20, 2024

fixed

f8a01ef

If you don't use any wire analog or digital functions. The LUT won't be linked.

from ch55xduino.

Related Issues (20)

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.