open source – Software licensing in academic work


I am a Ph.D. student working in the combined fields of software, electronics, and control engineering. During my research, I have been developing some code that I am considering publishing later as a precompiled library. I made some tests on STM32H7 MCUs using the STM32CubeMX generator. In some parts of the code, to speed-up the computations on a specific core, I use dependencies to CMSIS and HAL. Since I don’t want to go fully into open-source yet (but don’t sell the library either) I don’t plan to redistribute CMSIS and HAL in any way. I would like to inform a potential user in a manual or paper that there is a dependency on some specific methods from CMSIS and HAL and that he needs to obtain and link those libraries on his own. So I came up with the following questions:


  1. Is commercial usage different than academic usage? Are there any specific licenses from STMicroelectronics and Arm about using their libraries, including Cube, CMSIS, HAL, etc. for academic research? Am I allowed to use those tools to focus on experiments if I need to check any specific algorithms or shall I reinvent the wheel every time to blink a LED?
  2. Is calling a specific method (API reference) in my code, namely usage, treated as redistribution? Let’s say if in my library myLib I call the method void B:A(void);from the library B which has the viral-type license, does it mean I also need to release myLib under the same license, or only if I attach the source code of B in myLib
  3. Similarily to (2.) if I put and publish some example code snippets e.g. about the usage in an article, presentation or training materials? There is no problem for me reducing the snippets but perhaps it might be less undestandable for a reader what is going on. Is this a place where a citation in a comment could be considered, e.g. “This method is a part of library A which is available at (1)”

Thank you for all the answers.