5353#include "module/utils/devmq.h"
5454#include "module/workqueue/workqueue_manager.h"
5555
56-
5756static const struct dfs_mount_tbl mnt_table [] = {
5857 { "sd0" , "/" , "elm" , 0 , NULL },
5958 { NULL } /* NULL indicate the end */
6059};
6160
62-
6361#ifdef RT_USING_FINSH
64- #include <finsh.h>
65- static void reboot (uint8_t argc , char * * argv )
62+ #include <finsh.h>
63+ static void reboot (uint8_t argc , char * * argv )
6664{
6765 rt_hw_cpu_reset ();
6866}
@@ -74,13 +72,70 @@ MSH_CMD_EXPORT(reboot, Reboot System);
7472 * @param none
7573 * @retval none
7674 */
77- void _Error_Handler (char * s , int num )
75+ void _Error_Handler (char * s , int num )
7876{
7977 /* User can add his own implementation to report the HAL error return state */
8078 LOG_E ("Error_Handler at file:%s num:%d" , s , num );
8179
82- while (1 )
83- {
80+ while (1 ) {
81+ }
82+ }
83+
84+ static void banner_item (const char * name , const char * content , char pad , uint32_t len )
85+ {
86+ int pad_len ;
87+
88+ if (content == NULL ) {
89+ content = "NULL" ;
90+ }
91+
92+ pad_len = len - strlen (name ) - strlen (content );
93+
94+ if (pad_len < 1 ) {
95+ pad_len = 1 ;
96+ }
97+ // e.g, name..............content
98+ console_printf ("%s" , name );
99+ while (pad_len -- ) {
100+ console_write (& pad , 1 );
101+ }
102+
103+ console_printf ("%s\n" , content );
104+ }
105+
106+ #define BANNER_ITEM_LEN 42
107+ static void bsp_show_information (void )
108+ {
109+ char buffer [50 ];
110+
111+ console_printf ("\n" );
112+ console_println (" _____ __ " );
113+ console_println (" / __(_)_____ _ ___ ___ _ ___ ___ / /_" );
114+ console_println (" / _// / __/ ' \\/ _ `/ ' \\/ -_) _ \\/ __/" );
115+ console_println ("/_/ /_/_/ /_/_/_/\\_,_/_/_/_/\\__/_//_/\\__/ " );
116+
117+ sprintf (buffer , "FMT FW %s" , FMT_VERSION );
118+ banner_item ("Firmware" , buffer , '.' , BANNER_ITEM_LEN );
119+ sprintf (buffer , "RT-Thread v%ld.%ld.%ld" , RT_VERSION , RT_SUBVERSION , RT_REVISION );
120+ banner_item ("Kernel" , buffer , '.' , BANNER_ITEM_LEN );
121+ sprintf (buffer , "%d KB" , IFX_SRAM_SIZE );
122+ banner_item ("RAM" , buffer , '.' , BANNER_ITEM_LEN );
123+ banner_item ("Target" , TARGET_NAME , '.' , BANNER_ITEM_LEN );
124+ banner_item ("Vehicle" , STR (VEHICLE_TYPE ), '.' , BANNER_ITEM_LEN );
125+ banner_item ("Airframe" , STR (AIRFRAME ), '.' , BANNER_ITEM_LEN );
126+ banner_item ("INS Model" , ins_model_info .info , '.' , BANNER_ITEM_LEN );
127+ banner_item ("FMS Model" , fms_model_info .info , '.' , BANNER_ITEM_LEN );
128+ banner_item ("Control Model" , control_model_info .info , '.' , BANNER_ITEM_LEN );
129+ #ifdef FMT_USING_SIH
130+ banner_item ("Plant Model" , plant_model_info .info , '.' , BANNER_ITEM_LEN );
131+ #endif
132+
133+ console_println ("Task Initialize:" );
134+ fmt_task_desc_t task_tab = get_task_table ();
135+ for (uint32_t i = 0 ; i < get_task_num (); i ++ ) {
136+ sprintf (buffer , " %s" , task_tab [i ].name );
137+ /* task status must be okay to reach here */
138+ banner_item (buffer , get_task_status (task_tab [i ].name ) == TASK_READY ? "OK" : "Fail" , '.' , BANNER_ITEM_LEN );
84139 }
85140}
86141
@@ -90,7 +145,7 @@ void bsp_early_initialize(void)
90145 cy_bsp_all_init ();
91146
92147 /* heap initialization */
93- rt_system_heap_init ((void * )HEAP_BEGIN , (void * )HEAP_END );
148+ rt_system_heap_init ((void * )HEAP_BEGIN , (void * )HEAP_END );
94149
95150 /* gpio driver init */
96151 RT_CHECK (drv_gpio_init ());
@@ -106,7 +161,7 @@ void bsp_early_initialize(void)
106161
107162 /* i2c driver init */
108163 RT_CHECK (drv_i2c_init ());
109-
164+
110165 /* spi driver init */
111166 RT_CHECK (drv_spi_init ());
112167
@@ -145,7 +200,7 @@ void bsp_initialize(void)
145200
146201 /* init storage devices */
147202 RT_CHECK (drv_sdio_init ());
148- /* init file system */
203+ /* init file system */
149204 FMT_CHECK (file_manager_init (mnt_table ));
150205
151206 /* init parameter system */
@@ -157,29 +212,29 @@ void bsp_initialize(void)
157212 /* init usbd_cdc */
158213 RT_CHECK (drv_usb_cdc_init ());
159214
160- // #if defined(FMT_USING_SIH) || defined(FMT_USING_HIL)
161- // FMT_CHECK(advertise_sensor_imu(0));
162- // FMT_CHECK(advertise_sensor_mag(0));
163- // FMT_CHECK(advertise_sensor_baro(0));
164- // FMT_CHECK(advertise_sensor_gps(0));
165- // FMT_CHECK(advertise_sensor_airspeed(0));
166- // #else
167- // /* init onboard sensors */
168- // RT_CHECK(drv_bmi088_init("spi4_dev1", "spi4_dev2", "gyro0", "accel0", 0));
169- // RT_CHECK(drv_icm42688_init("spi4_dev3", "gyro1", "accel1", 0));
170- // RT_CHECK(drv_bmm150_init("spi4_dev4", "mag0", 0));
171- // // RT_CHECK(drv_qmc5883l_init("i2c1_dev2", "mag0", EXTERNAL_DEV | 0));
172- // RT_CHECK(drv_spl06_init("spi1_dev1", "barometer"));
173- // RT_CHECK(gps_ubx_init("serial3", "gps"));
174- // // RT_CHECK(gps_nmea_init("serial3", "gps"));
175- // // RT_CHECK(drv_tofsense_init("serial5"));
176-
177- // FMT_CHECK(register_sensor_imu("gyro0", "accel0", 0));
178- // FMT_CHECK(register_sensor_mag("mag0", 0));
179- // FMT_CHECK(register_sensor_barometer("barometer"));
180- // FMT_CHECK(advertise_sensor_optflow(0));
181- // FMT_CHECK(advertise_sensor_rangefinder(0));
182- // #endif
215+ // #if defined(FMT_USING_SIH) || defined(FMT_USING_HIL)
216+ // FMT_CHECK(advertise_sensor_imu(0));
217+ // FMT_CHECK(advertise_sensor_mag(0));
218+ // FMT_CHECK(advertise_sensor_baro(0));
219+ // FMT_CHECK(advertise_sensor_gps(0));
220+ // FMT_CHECK(advertise_sensor_airspeed(0));
221+ // #else
222+ // /* init onboard sensors */
223+ // RT_CHECK(drv_bmi088_init("spi4_dev1", "spi4_dev2", "gyro0", "accel0", 0));
224+ // RT_CHECK(drv_icm42688_init("spi4_dev3", "gyro1", "accel1", 0));
225+ // RT_CHECK(drv_bmm150_init("spi4_dev4", "mag0", 0));
226+ // // RT_CHECK(drv_qmc5883l_init("i2c1_dev2", "mag0", EXTERNAL_DEV | 0));
227+ // RT_CHECK(drv_spl06_init("spi1_dev1", "barometer"));
228+ // RT_CHECK(gps_ubx_init("serial3", "gps"));
229+ // // RT_CHECK(gps_nmea_init("serial3", "gps"));
230+ // // RT_CHECK(drv_tofsense_init("serial5"));
231+
232+ // FMT_CHECK(register_sensor_imu("gyro0", "accel0", 0));
233+ // FMT_CHECK(register_sensor_mag("mag0", 0));
234+ // FMT_CHECK(register_sensor_barometer("barometer"));
235+ // FMT_CHECK(advertise_sensor_optflow(0));
236+ // FMT_CHECK(advertise_sensor_rangefinder(0));
237+ // #endif
183238
184239 /* init finsh */
185240 finsh_system_init ();
@@ -227,8 +282,8 @@ void bsp_post_initialize(void)
227282 // /* initialize power management unit */
228283 // FMT_CHECK(pmu_init());
229284
230- // / * show system information */
231- // bsp_show_information();
285+ /* show system information */
286+ bsp_show_information ();
232287
233288 // /* execute init script */
234289 // msh_exec_script(SYS_INIT_SCRIPT, strlen(SYS_INIT_SCRIPT));
0 commit comments