profile.h 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. /* ----------------------------------------------------------------------
  2. * Project: TinyEngine
  3. * Title: profile.h
  4. *
  5. * Reference papers:
  6. * - MCUNet: Tiny Deep Learning on IoT Device, NeurIPS 2020
  7. * - MCUNetV2: Memory-Efficient Patch-based Inference for Tiny Deep Learning, NeurIPS 2021
  8. * - MCUNetV3: On-Device Training Under 256KB Memory, NeurIPS 2022
  9. * Contact authors:
  10. * - Wei-Ming Chen, wmchen@mit.edu
  11. * - Wei-Chen Wang, wweichen@mit.edu
  12. * - Ji Lin, jilin@mit.edu
  13. * - Ligeng Zhu, ligeng@mit.edu
  14. * - Song Han, songhan@mit.edu
  15. *
  16. * Target ISA: ARMv7E-M
  17. * -------------------------------------------------------------------- */
  18. #include "stm32f7xx_hal.h"
  19. #include <stdio.h>
  20. #include <string.h>
  21. static UART_HandleTypeDef UART;
  22. #define RUNS 1
  23. static int profile_i;
  24. static int start, end;
  25. static char buf[100];
  26. void printLog(const char *s) {
  27. static int is_initialized = 0;
  28. if (!is_initialized) {
  29. UART.Instance = USART1;
  30. UART.Init.BaudRate = 115200;
  31. UART.Init.WordLength = UART_WORDLENGTH_8B;
  32. UART.Init.StopBits = UART_STOPBITS_1;
  33. UART.Init.Parity = UART_PARITY_NONE;
  34. UART.Init.Mode = UART_MODE_TX_RX;
  35. UART.Init.HwFlowCtl = UART_HWCONTROL_NONE;
  36. UART.Init.OverSampling = UART_OVERSAMPLING_16;
  37. UART.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
  38. UART.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
  39. if (HAL_UART_Init(&UART) != HAL_OK) {
  40. //Error handling
  41. }
  42. is_initialized = 1;
  43. }
  44. HAL_UART_Transmit(&UART, (uint8_t*) s, strlen(s), 10);
  45. }
  46. void recieveChar(char *s) {
  47. static int is_initialized = 0;
  48. if (!is_initialized) {
  49. UART.Instance = USART1;
  50. UART.Init.BaudRate = 115200;
  51. UART.Init.WordLength = UART_WORDLENGTH_8B;
  52. UART.Init.StopBits = UART_STOPBITS_1;
  53. UART.Init.Parity = UART_PARITY_NONE;
  54. UART.Init.Mode = UART_MODE_TX_RX;
  55. UART.Init.HwFlowCtl = UART_HWCONTROL_NONE;
  56. UART.Init.OverSampling = UART_OVERSAMPLING_16;
  57. UART.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
  58. UART.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
  59. if (HAL_UART_Init(&UART) != HAL_OK) {
  60. //Error handling
  61. }
  62. is_initialized = 1;
  63. }
  64. HAL_UART_Receive(&UART, (uint8_t*) s, 1, 10);
  65. }