This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

creating commercial library

Hi,
I am working on a compression algorithm for embedded systems. I wish to sell my algorithm as a closed source proprietary library specially for ARM7, ARM8, Cortex M3 architectures. Also I plan to implement it in 8-bit MCUs as well. I don't have much idea on building a library.

My questions are-
1. How can I build a closed source proprietary library for ARM7, ARM9 and Cortex series ?

2. How safe the library will be in terms of disassembly and hack proof. Also is there any built in compiler support for protection of my algorithm?

3. What will be most secured possible solution to sell my library which can be bought and implemented by systems designers in different MCUs?

4. Is it possible to build MCU architecture independent or compiler independent library (as my algorithm only uses core CPU functionalities like addition, shifting, multiplication etc).

5. How can I build an external library to use in Keil CARM or RVCT? Is there any API type to integrate a library?

Please also suggest me some links, books and resources to study more on this.

Thank you.

Parents
  • The documentation for each tool chain will tell you how to build a library. Note that a library is basically a collection of object files stored in a single file.

    Of course there are no compiler options to create hack-proof libraries. A compiler is intended to generate efficient (size and/or speed) code. Any attempts you do to make it harder to disassemble will make it slower and/or harder to maintain. But why bother? Have you invented a magic compression? The people who know how to disassemble already know about good compression algorithms.

    The library must be compatible with the relevant toolchain. That means that you can't mix ARM and 8051. And the ABI (how to pass arguments, return values and store data in structs, ...) must be identical so you will need one library for each memory model - and for the different settings of some specific compiler flags.

    Still nothing magic with a library - just a collection of object data.

    What type of compression where you planning?

    Compression of initialized data?
    Compression of runnable code?
    Compression of transmitted data on serial port?
    ...

Reply
  • The documentation for each tool chain will tell you how to build a library. Note that a library is basically a collection of object files stored in a single file.

    Of course there are no compiler options to create hack-proof libraries. A compiler is intended to generate efficient (size and/or speed) code. Any attempts you do to make it harder to disassemble will make it slower and/or harder to maintain. But why bother? Have you invented a magic compression? The people who know how to disassemble already know about good compression algorithms.

    The library must be compatible with the relevant toolchain. That means that you can't mix ARM and 8051. And the ABI (how to pass arguments, return values and store data in structs, ...) must be identical so you will need one library for each memory model - and for the different settings of some specific compiler flags.

    Still nothing magic with a library - just a collection of object data.

    What type of compression where you planning?

    Compression of initialized data?
    Compression of runnable code?
    Compression of transmitted data on serial port?
    ...

Children