Bash Script to find discrepancies in BSP file organization

Gedare Bloom gedare at rtems.org
Sun Sep 8 13:41:51 UTC 2013


You can add the script to rtems-testing.git (there is already check_bsp
there i think). Check for using internal rtems functions versus defining
them, e.g. by checking for a semicolon. Some of the uses you flag like the
_CPU_Cache_xxx are defining those functions, which i think is ok.. Joel?

-Gedare
On Sep 8, 2013 5:59 AM, "Vipul Nayyar" <nayyar_vipul at yahoo.com> wrote:

> Hello Gedare,
>
> I reviewed the current documentation for bsp development as you suggested.  I
> didn't find any major discrepancies present already, but will look again
> closely. As far I think, the part about the PIC support which is available
> to every BSP is currently not present in the documentation, so I'll submit
> the addition to docs regarding this if you also agree to it.
>
> My current script gives results on a per bsp basis. However, as you
> requested to classify the problems, I've done that by tweaking it a little.
> I've added the functionality to search for RTEMS internal functions being
> used in the bsp. From what I understood, these internal functions I've
> looked for in BSPs are taken from libcpu & cpukit.
>
> My aim in developing this bash script was to identify flaws in BSPs , and
> also to provide a simple tool for future BSP developers so that they can
> check the file organization for their BSP. So, is it fine if I submit a
> patch to add this script to the RTEMS tree ??
>
> Following, you'll find discrepancies found in current RTEMS tree regarding
> some serious flaws. The attached file all_warnings.txt classifies the flaws
> found in all bsps, either it being serious or not. The attached file
> 'per_bsp_observation.txt' contains result of the script showing serious
> flaws in all the bsps.
>
>
> **** RTEMS Internal functions being used in BSPs ****
> arm/csb336 : _BSP_poll_char()
>
> arm/edb7312 : _CPU_ISR_install_vector()
>
> arm/gp32 : _BSP_put_char()
>
> arm/lpc24xx : _CPU_ISR_install_vector() _Heap_Extend()
>
> arm/rtl22xx : _BSP_put_char()
>
> m68k/av5282 : _CPU_cache_disable_instruction()
> _CPU_cache_enable_instruction() _CPU_cache_invalidate_entire_instruction()
> _CPU_cache_disable_data() _CPU_cache_enable_data()
> _CPU_cache_invalidate_entire_data() _CPU_cache_flush_entire_data()
> _CPU_cache_unfreeze_instruction() _CPU_cache_freeze_instruction()
> _CPU_cache_invalidate_1_instruction_line() _CPU_cache_unfreeze_data()
> _CPU_cache_freeze_data() _CPU_cache_invalidate_1_data_line()
> _CPU_cache_flush_1_data_line()
>
> m68k/gen68340 : _CPU_ISR_install_raw_handler()
>
> m68k/genmcf548x : _CPU_cache_disable_instruction()
> _CPU_cache_enable_instruction() _CPU_cache_invalidate_entire_instruction()
> _CPU_cache_disable_data() _CPU_cache_enable_data()
> _CPU_cache_invalidate_entire_data() _CPU_cache_flush_entire_data()
> _CPU_cache_unfreeze_instruction() _CPU_cache_freeze_instruction()
> _CPU_cache_invalidate_1_instruction_line() _CPU_cache_unfreeze_data()
> _CPU_cache_freeze_data() _CPU_cache_invalidate_1_data_line()
> _CPU_cache_flush_1_data_line() _Thread_Start_multitasking()
>
> m68k/mcf5225x : _CPU_cache_disable_instruction()
> _CPU_cache_enable_instruction() _CPU_cache_invalidate_entire_instruction()
> _CPU_cache_disable_data() _CPU_cache_enable_data()
> _CPU_cache_invalidate_entire_data() _CPU_cache_flush_entire_data()
> _CPU_cache_unfreeze_instruction() _CPU_cache_freeze_instruction()
> _CPU_cache_invalidate_1_instruction_line() _CPU_cache_unfreeze_data()
> _CPU_cache_freeze_data() _CPU_cache_invalidate_1_data_line()
> _CPU_cache_flush_1_data_line()
>
> m68k/mrm332 : _CPU_ISR_Set_level() _CPU_Fatal_halt()
>
> m68k/uC5282 : _CPU_cache_disable_instruction()
> _CPU_cache_enable_instruction() _CPU_cache_invalidate_entire_instruction()
> _CPU_cache_disable_data() _CPU_cache_enable_data()
> _CPU_cache_invalidate_entire_data() _CPU_cache_flush_entire_data()
> _CPU_cache_unfreeze_instruction() _CPU_cache_freeze_instruction()
> _CPU_cache_invalidate_1_instruction_line() _CPU_cache_unfreeze_data()
> _CPU_cache_freeze_data() _CPU_cache_invalidate_1_data_line()
> _CPU_cache_flush_1_data_line()
>
> powerpc/gen5200 : _Heap_Free() _Heap_Initialize() _Heap_Allocate()
>
> powerpc/qoriq : _CPU_SMP_Send_interrupt()
>
> sparc/erc32 : _BSP_Exception_frame_print() _CPU_ISR_install_raw_handler()
>
> sparc/leon2 : _BSP_Exception_frame_print() _CPU_ISR_install_raw_handler()
>
> sparc/leon3 : _BSP_Exception_frame_print() _CPU_ISR_install_raw_handler()
> _CPU_SMP_Send_interrupt()
>
> **** bsggetworkarea not compiled ****
> powerpc/mpc55xxevb
>
> **** bspreset.c not compiled ****
> arm/gumstix
> avr/avrtest
> bfin/bf537Stamp
> bfin/eZKit533
> bfin/TLL6527M
> h8300/h8sim
> lm32/milkymist
> m32c/m32cbsp
> m68k/av5282
> m68k/csb360
> m68k/gen68302
> m68k/gen68340
> m68k/gen68360
> m68k/genmcf548x
> m68k/idp
> m68k/mcf5206elite
> m68k/mcf52235
> m68k/mcf5225x
> m68k/mcf5235
> m68k/mcf5329
> m68k/mrm332
> m68k/mvme136
> m68k/mvme147
> m68k/mvme147s
> m68k/mvme162
> m68k/mvme167
> m68k/ods68302
> m68k/sim68000
> mips/genmongoosev
> mips/hurricane
> mips/jmr3904
> mips/rbtx4925
> mips/rbtx4938
> moxie/moxiesim
> nios2/nios2_iss
> powerpc/beatnik
> powerpc/ep1a
> powerpc/haleakala
> powerpc/mbx8xx
> powerpc/mpc55xxevb
> powerpc/mpc8260ads
> powerpc/mvme3100
> powerpc/psim
> powerpc/qemuppc
> powerpc/score603e
> powerpc/ss555
> powerpc/tqm8xx
> powerpc/virtex4
> powerpc/virtex5
> powerpc/virtex
> sh/gensh1
> sh/gensh2
> sh/gensh4
> sh/shsim
> sparc64/niagara
> sparc64/usiii
> sparc/erc32
> sparc/leon2
> sparc/leon3
>
> **** start.S not compiled ****
> m68k/ods68302
> powerpc/haleakala
>
> **** bsppredriverhook.c not compiled ****
> lm32/lm32_evr
> lm32/milkymist
> powerpc/mvme3100
> powerpc/score603e
> powerpc/virtex4
> powerpc/virtex5
> sparc/erc32
> sparc/leon2
> sparc/leon3
>
> **** PIC Support not included *****
> arm/gdbarmsim
> avr/avrtest
> bfin/bf537Stamp
> bfin/eZKit533
> bfin/TLL6527M
> h8300/h8sim
> lm32/lm32_evr
> lm32/milkymist
> m32c/m32cbsp
> m32r/m32rsim
> m68k/av5282
> m68k/csb360
> m68k/gen68302
> m68k/gen68340
> m68k/gen68360
> m68k/genmcf548x
> m68k/idp
> m68k/mcf5206elite
> m68k/mcf52235
> m68k/mcf5225x
> m68k/mcf5235
> m68k/mcf5329
> m68k/mrm332
> m68k/mvme136
> m68k/mvme147
> m68k/mvme147s
> m68k/mvme162
> m68k/mvme167
> m68k/ods68302
> m68k/sim68000
> m68k/uC5282
> moxie/moxiesim
> nios2/nios2_iss
> powerpc/beatnik
> powerpc/ep1a
> powerpc/haleakala
> powerpc/motorola_powerpc
> powerpc/mvme3100
> powerpc/mvme5500
> powerpc/score603e
> powerpc/ss555
> powerpc/virtex4
> powerpc/virtex5
> sh/gensh1
> sh/gensh2
> sh/gensh4
> sh/shsim
> sparc64/niagara
> sparc64/usiii
> v850/gdbv850sim
>
> Hoping to hear from you soon !!
>
>
> Regards
> Vipul Nayyar
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20130908/eb53d00e/attachment-0001.html>


More information about the devel mailing list