embeded/i.mx 8m plus2025. 8. 18. 15:01

i.mx8의 selfie_segmentrer.py 에서 발췌

        # Set backend and delegates
        if self.backend == "CPU":
            if self.platform == "i.MX8MP":
                backend = "true:CPU custom=NumThreads:4"
            else:
                backend = "true:CPU custom=NumThreads:2"
        else:
            if self.platform == "i.MX8MP":
                os.environ["USE_GPU_INFERENCE"] = "0"
                backend = (
                    "true:npu custom=Delegate:External,ExtDelegateLib:libvx_delegate.so"
                )
            else:
                backend = "true:npu custom=Delegate:External,ExtDelegateLib:libethosu_delegate.so"



                + " ! videoconvert ! video/x-raw,format=RGB ! tensor_converter ! "
                + "tensor_transform mode=arithmetic option=typecast:float32,div:255.0 ! "
                + "tensor_filter framework=tensorflow-lite model="
                + self.tflite_model
                + " accelerator="
                + backend
                + " name=tensor_filter latency=1 ! tensor_sink name=tensor_sink "

 

gsteramer의 엘리먼트를 기본으로 NN에 맞춰서 몇개 추가한 것 같은데

[링크 : https://nnstreamer.github.io/gst/nnstreamer/tensor_converter/README.html]

[링크 : https://nnstreamer.github.io/gst/nnstreamer/tensor_transform/README.html]

[링크 : https://nnstreamer.github.io/gst/nnstreamer/tensor_decoder/README.html]

[링크 : https://nnstreamer.github.io/gst/nnstreamer/tensor_filter/README.html]

[링크 : https://nnstreamer.github.io/gst/nnstreamer/tensor_sink/README.html]

   [링크 : https://nnstreamer.github.io/gst/nnstreamer/elements/gsttensor_sink.html]

 

사용예에서 보면 converter / transform / filter / sink 순으로 쓰는 듯

[CAM] - [videoconvert] - [videoscale] - [tee] -+- [queue] - [videoconvert] - [cairooverlay] - [ximagesink]
                                               +- [queue] - [videoscale] - [tensor_converter] - [tensor_transform] - [tensor_filter] - [tensor_sink]

[링크 : https://nnstreamer.github.io/how-to-run-examples.html]

 

 

+

gst-inspector tensor_converter

더보기
root@imx8mpevk:~# gst-inspect-1.0 tensor_converter
Factory Details:
  Rank                     none (0)
  Long-name                TensorConverter
  Klass                    Converter/Tensor
  Description              Converts an audio, video, text, or arbitrary stream to a tensor stream of C-Array for neural network framework filters
  Author                   MyungJoo Ham <myungjoo.ham@samsung.com></myungjoo.ham@samsung.com>

Plugin Details:
  Name                     nnstreamer
  Description              nnstreamer plugin library
  Filename                 /usr/lib/gstreamer-1.0/libnnstreamer.so
  Version                  2.4.0
  License                  LGPL
  Source module            nnstreamer
  Binary package           nnstreamer
  Origin URL               https://github.com/nnstreamer/nnstreamer

GObject
 +----GInitiallyUnowned
       +----GstObject
             +----GstElement
                   +----GstTensorConverter

Pad Templates:
  SINK template: 'sink'
    Availability: Always
    Capabilities:
      video/x-raw
                 format: { (string)RGB, (string)BGR, (string)RGBx, (string)BGRx, (string)xRGB, (string)xBGR, (string)RGBA, (string)BGRA, (string)ARGB, (string)ABGR, (string)GRAY8, (string)GRAY16_BE, (string)GRAY16_LE }
                  width: [ 1, 2147483647 ]
                 height: [ 1, 2147483647 ]
              framerate: [ 0/1, 2147483647/1 ]
         interlace-mode: progressive
      audio/x-raw
                 format: { (string)S8, (string)U8, (string)S16LE, (string)S16BE, (string)U16LE, (string)U16BE, (string)S32LE, (string)S32BE, (string)U32LE, (string)U32BE, (string)F32LE, (string)F32BE, (string)F64LE, (string)F64BE }
                   rate: [ 1, 2147483647 ]
               channels: [ 1, 2147483647 ]
                 layout: interleaved
      text/x-raw
                 format: utf8
      application/octet-stream
      other/tensors
                 format: flexible
              framerate: [ 0/1, 2147483647/1 ]
      application/octet-stream
      other/protobuf-tensor
              framerate: [ 0/1, 2147483647/1 ]
  
  SRC template: 'src'
    Availability: Always
    Capabilities:
      other/tensor
              framerate: [ 0/1, 2147483647/1 ]
      other/tensors
                 format: { (string)static, (string)flexible }
              framerate: [ 0/1, 2147483647/1 ]

Element has no clocking capabilities.
Element has no URI handling capabilities.

Pads:
  SINK: 'sink'
    Pad Template: 'sink'
  SRC: 'src'
    Pad Template: 'src'

Element Properties:

  frames-per-tensor   : The number of frames in output tensor
                        flags: readable, writable
                        Unsigned Integer. Range: 1 - 4294967295 Default: 1 
  
  input-dim           : Input tensor dimension from inner array
                        flags: readable, writable
                        String. Default: ""
  
  input-type          : Type of each element of the input tensor
                        flags: readable, writable
                        String. Default: ""
  
  mode                : Converter mode. e.g., mode=custom-code:. For detail, refer to </registered callback name>https://github.com/nnstreamer/nnstreamer/blob/main/gst/nnstreamer/elements/gsttensor_converter.md#custom-converter
                        flags: readable, writable
                        String. Default: ""
  
  name                : The name of the object
                        flags: readable, writable
                        String. Default: "tensorconverter0"
  
  parent              : The parent of the object
                        flags: readable, writable
                        Object of type "GstObject"
  
  set-timestamp       : The flag to set timestamp when received a buffer with invalid timestamp
                        flags: readable, writable
                        Boolean. Default: true
  
  silent              : Produce verbose output
                        flags: readable, writable
                        Boolean. Default: true
  
  sub-plugins         : Registrable sub-plugins list
                        flags: readable
                        String. Default: "python3,protobuf"

 

gst-inspector tensor_transform

더보기
root@imx8mpevk:~# gst-inspect-1.0 tensor_transform
Factory Details:
  Rank                     none (0)
  Long-name                TensorTransform
  Klass                    Filter/Tensor
  Description              Transforms other/tensor dimensions for different models or frameworks
  Author                   MyungJoo Ham <myungjoo.ham@samsung.com>

Plugin Details:
  Name                     nnstreamer
  Description              nnstreamer plugin library
  Filename                 /usr/lib/gstreamer-1.0/libnnstreamer.so
  Version                  2.4.0
  License                  LGPL
  Source module            nnstreamer
  Binary package           nnstreamer
  Origin URL               https://github.com/nnstreamer/nnstreamer

GObject
 +----GInitiallyUnowned
       +----GstObject
             +----GstElement
                   +----GstBaseTransform
                         +----GstTensorTransform

Pad Templates:
  SINK template: 'sink'
    Availability: Always
    Capabilities:
      other/tensor
              framerate: [ 0/1, 2147483647/1 ]
      other/tensors
                 format: { (string)static, (string)flexible }
              framerate: [ 0/1, 2147483647/1 ]
  
  SRC template: 'src'
    Availability: Always
    Capabilities:
      other/tensor
              framerate: [ 0/1, 2147483647/1 ]
      other/tensors
                 format: { (string)static, (string)flexible }
              framerate: [ 0/1, 2147483647/1 ]

Element has no clocking capabilities.
Element has no URI handling capabilities.

Pads:
  SINK: 'sink'
    Pad Template: 'sink'
  SRC: 'src'
    Pad Template: 'src'

Element Properties:

  acceleration        : Orc acceleration
                        flags: readable, writable
                        Boolean. Default: true
  
  apply               : Select tensors to apply, separated with ',' in case of multiple tensors. Default to apply all tensors.
                        flags: readable, writable
                        String. Default: ""
  
  mode                : Mode used for transforming tensor
                        flags: readable, writable
                        Enum "gtt_mode_type" Default: -1, "unknown"
                           (0): dimchg           - Mode for changing tensor dimensions, option=FROM_DIM:TO_DIM (with a regex, ^([0-9]|1[0-5]):([0-9]|1[0-5])$, where NNS_TENSOR_RANK_LIMIT is 16)
                           (1): typecast         - Mode for casting type of tensor, option=(^[u]?int(8|16|32|64)$|^float(16|32|64)$)
                           (2): arithmetic       - Mode for arithmetic operations with tensor, option=[typecast:TYPE,][per-channel:(false|true@DIM),]add|mul|div:NUMBER[@CH_IDX], ...
                           (3): transpose        - Mode for transposing shape of tensor, option=D1':D2':D3':D4 (fixed to 3)
                           (4): stand            - Mode for statistical standardization of tensor, option=(default|dc-average)[:TYPE][,per-channel:(false|true)]
                           (5): clamp            - Mode for clamping all elements of tensor into the range, option=CLAMP_MIN:CLAMP_MAX
                           (-1): unknown          - Unknown or not-implemented-yet mode
  
  name                : The name of the object
                        flags: readable, writable
                        String. Default: "tensortransform0"
  
  option              : Option for the tensor transform mode ?
                        flags: readable, writable
                        String. Default: null
  
  parent              : The parent of the object
                        flags: readable, writable
                        Object of type "GstObject"
  
  qos                 : Handle Quality-of-Service events
                        flags: readable, writable
                        Boolean. Default: false
  
  silent              : Produce verbose output ?
                        flags: readable, writable
                        Boolean. Default: true
  
  transpose-rank-limit: The rank limit of transpose, which varies per version of nnstreamer and may be lower than the global rank limit if it is over 4.
                        flags: readable
                        Unsigned Integer. Range: 0 - 16 Default: 4 

 

 

gst-inspector tensor_decoder

더보기
root@imx8mpevk:~# gst-inspect-1.0 tensor_decoder  
Factory Details:
  Rank                     none (0)
  Long-name                TensorDecoder
  Klass                    Converter/Tensor
  Description              Converts tensor stream of C-Array for neural network framework filters to audio or video stream
  Author                   Jijoong Moon <jijoong.moon@samsung.com>

Plugin Details:
  Name                     nnstreamer
  Description              nnstreamer plugin library
  Filename                 /usr/lib/gstreamer-1.0/libnnstreamer.so
  Version                  2.4.0
  License                  LGPL
  Source module            nnstreamer
  Binary package           nnstreamer
  Origin URL               https://github.com/nnstreamer/nnstreamer

GObject
 +----GInitiallyUnowned
       +----GstObject
             +----GstElement
                   +----GstBaseTransform
                         +----GstTensorDecoder

Pad Templates:
  SINK template: 'sink'
    Availability: Always
    Capabilities:
      other/tensor
              framerate: [ 0/1, 2147483647/1 ]
      other/tensors
                 format: static
            num_tensors: [ 1, 16 ]
              framerate: [ 0/1, 2147483647/1 ]
      other/tensors
                 format: flexible
              framerate: [ 0/1, 2147483647/1 ]
  
  SRC template: 'src'
    Availability: Always
    Capabilities:
      ANY

Element has no clocking capabilities.
Element has no URI handling capabilities.

Pads:
  SINK: 'sink'
    Pad Template: 'sink'
  SRC: 'src'
    Pad Template: 'src'

Element Properties:

  config-file         : sets config file path which contains plugins properties
                        flags: 
** (gst-inspect-1.0:1706): WARNING **: 05:54:08.872: /usr/src/debug/nnstreamer/2.4.0/gst/nnstreamer/elements/gsttensor_decoder.c:592: invalid property id 13 for "config-file" of type 'GParamString' in 'GstTensorDecoder'
readable, writable
                        String. Default: null
  
  mode                : Decoder mode
                        flags: readable, writable
                        String. Default: ""
  
  name                : The name of the object
                        flags: readable, writable
                        String. Default: "tensordecoder0"
  
  option1             : option for specific decoder modes, 1st one.
                        flags: readable, writable
                        String. Default: null
  
  option2             : option for specific decoder modes, 2nd one.
                        flags: readable, writable
                        String. Default: null
  
  option3             : option for specific decoder modes, 3rd one.
                        flags: readable, writable
                        String. Default: null
  
  option4             : option for specific decoder modes, 4th one.
                        flags: readable, writable
                        String. Default: null
  
  option5             : option for specific decoder modes, 5th one.
                        flags: readable, writable
                        String. Default: null
  
  option6             : option for specific decoder modes, 6th one.
                        flags: readable, writable
                        String. Default: null
  
  option7             : option for specific decoder modes, 7th one.
                        flags: readable, writable
                        String. Default: null
  
  option8             : option for specific decoder modes, 8th one.
                        flags: readable, writable
                        String. Default: null
  
  option9             : option for specific decoder modes, 9th one.
                        flags: readable, writable
                        String. Default: null
  
  parent              : The parent of the object
                        flags: readable, writable
                        Object of type "GstObject"
  
  qos                 : Handle Quality-of-Service events
                        flags: readable, writable
                        Boolean. Default: false
  
  silent              : Produce verbose output
                        flags: readable, writable
                        Boolean. Default: true
  
  sub-plugins         : Registrable sub-plugins list
                        flags: readable
                        String. Default: "protobuf,direct_video,bounding_boxes,image_segment,python3,octet_stream,pose_estimation,tensor_region,image_labeling"

 

 

gst-inspector tensor_filter

더보기
root@imx8mpevk:~# gst-inspect-1.0 tensor_filter 
Factory Details:
  Rank                     none (0)
  Long-name                TensorFilter
  Klass                    Filter/Tensor
  Description              Handles NN Frameworks (e.g., tensorflow) as Media Filters with other/tensor type stream
  Author                   MyungJoo Ham <myungjoo.ham@samsung.com>

Plugin Details:
  Name                     nnstreamer
  Description              nnstreamer plugin library
  Filename                 /usr/lib/gstreamer-1.0/libnnstreamer.so
  Version                  2.4.0
  License                  LGPL
  Source module            nnstreamer
  Binary package           nnstreamer
  Origin URL               https://github.com/nnstreamer/nnstreamer

GObject
 +----GInitiallyUnowned
       +----GstObject
             +----GstElement
                   +----GstBaseTransform
                         +----GstTensorFilter

Pad Templates:
  SINK template: 'sink'
    Availability: Always
    Capabilities:
      other/tensor
              framerate: [ 0/1, 2147483647/1 ]
      other/tensors
                 format: { (string)static, (string)flexible }
              framerate: [ 0/1, 2147483647/1 ]
  
  SRC template: 'src'
    Availability: Always
    Capabilities:
      other/tensor
              framerate: [ 0/1, 2147483647/1 ]
      other/tensors
                 format: { (string)static, (string)flexible }
              framerate: [ 0/1, 2147483647/1 ]

Element has no clocking capabilities.
Element has no URI handling capabilities.

Pads:
  SINK: 'sink'
    Pad Template: 'sink'
  SRC: 'src'
    Pad Template: 'src'

Element Properties:

  accelerator         : Set accelerator for the subplugin with format (true/false):(comma separated ACCELERATOR(s)). true/false determines if accelerator is to be used. list of accelerators determines the backend (ignored with false). Example, if GPU, NPU can be used but not CPU - true:npu,gpu,!cpu. The full list of accelerators can be found in nnstreamer_plugin_api_filter.h. Note that only a few subplugins support this property.
                        flags: readable, writable
                        String. Default: ""
  
  custom              : Custom properties for subplugins ?
                        flags: readable, writable
                        String. Default: ""
  
  framework           : Neural network framework
                        flags: readable, writable
                        String. Default: "auto"
  
  input               : Input tensor dimension from inner array, up to 4 dimensions ?
                        flags: readable, writable
                        String. Default: ""
  
  input-combination   : Select the input tensor(s) to invoke the models
                        flags: readable, writable
                        String. Default: ""
  
  inputlayout         : Set channel first (NCHW) or channel last layout (NHWC) or None for input data. Layout of the data can be any or NHWC or NCHW or none for now. 
                        flags: readable, writable
                        String. Default: ""
  
  inputname           : The Name of Input Tensor
                        flags: readable, writable
                        String. Default: ""
  
  inputranks          : The Rank of the Input Tensor, which is separated with ',' in case of multiple Tensors
                        flags: readable
                        String. Default: ""
  
  inputtype           : Type of each element of the input tensor ?
                        flags: readable, writable
                        String. Default: ""
  
  invoke-dynamic      : Flexible tensors whose memory size changes can be used asinput and output of the tensor filter. With this option, the output caps is always in the format of flexible tensors.
                        flags: readable, writable
                        Boolean. Default: false
  
  is-updatable        : Indicate whether a given model to this tensor filter is updatable in runtime. (e.g., with on-device training)
                        flags: readable, writable
                        Boolean. Default: false
  
  latency             : Turn on performance profiling for the average latency over the recent 10 inferences in microseconds. Currently, this accepts either 0 (OFF) or 1 (ON).
                        flags: readable, writable
                        Integer. Range: 0 - 1 Default: -1 
  
  latency-report      : Report to the pipeline the estimated tensor-filter element latency.
                        flags: readable, writable
                        Boolean. Default: false
  
  model               : File path to the model file. Separated with ',' in case of multiple model files(like caffe2)
                        flags: readable, writable
                        String. Default: ""
  
  name                : The name of the object
                        flags: readable, writable
                        String. Default: "tensorfilter0"
  
  output              : Output tensor dimension from inner array, up to 4 dimensions ?
                        flags: readable, writable
                        String. Default: ""
  
  output-combination  : Select the output tensor(s) from the input tensor(s) and/or model output
                        flags: readable, writable
                        String. Default: ""
  
  outputlayout        : Set channel first (NCHW) or channel last layout (NHWC) or None for output data. Layout of the data can be any or NHWC or NCHW or none for now. 
                        flags: readable, writable
                        String. Default: ""
  
  outputname          : The Name of Output Tensor
                        flags: readable, writable
                        String. Default: ""
  
  outputranks         : The Rank of the Out Tensor, which is separated with ',' in case of multiple Tensors
                        flags: readable
                        String. Default: ""
  
  outputtype          : Type of each element of the output tensor ?
                        flags: readable, writable
                        String. Default: ""
  
  parent              : The parent of the object
                        flags: readable, writable
                        Object of type "GstObject"
  
  qos                 : Handle Quality-of-Service events
                        flags: readable, writable
                        Boolean. Default: false
  
  shared-tensor-filter-key: Multiple element instances of tensor-filter in a pipeline may share a single resource instance if they share the same framework (subplugin) and neural network model. Designate "shared-tensor-filter-key" to declare and share such instances. If it is NULL, it means the model representations is not shared.
                        flags: readable, writable
                        String. Default: ""
  
  silent              : Produce verbose output
                        flags: readable, writable
                        Boolean. Default: true
  
  sub-plugins         : Registrable sub-plugins list
                        flags: readable
                        String. Default: "custom,custom-easy,cpp,python3,tvm,tensorflow2-lite"
  
  throughput          : Turn on performance profiling for the average throughput in the number of outputs per seconds (i.e., FPS), multiplied by 1000 to represent a floating point using an integer. Currently, this accepts either 0 (OFF) or 1 (ON).
                        flags: readable, writable
                        Integer. Range: 0 - 1 Default: -1 

 

 

gst-inspector tensor_sink

더보기
root@imx8mpevk:~# gst-inspect-1.0 tensor_sink  
Factory Details:
  Rank                     none (0)
  Long-name                TensorSink
  Klass                    Sink/Tensor
  Description              Sink element to handle tensor stream
  Author                   Samsung Electronics Co., Ltd.

Plugin Details:
  Name                     nnstreamer
  Description              nnstreamer plugin library
  Filename                 /usr/lib/gstreamer-1.0/libnnstreamer.so
  Version                  2.4.0
  License                  LGPL
  Source module            nnstreamer
  Binary package           nnstreamer
  Origin URL               https://github.com/nnstreamer/nnstreamer

GObject
 +----GInitiallyUnowned
       +----GstObject
             +----GstElement
                   +----GstBaseSink
                         +----GstTensorSink

Pad Templates:
  SINK template: 'sink'
    Availability: Always
    Capabilities:
      other/tensor
              framerate: [ 0/1, 2147483647/1 ]
      other/tensors
                 format: { (string)static, (string)flexible, (string)sparse }
              framerate: [ 0/1, 2147483647/1 ]

Element has no clocking capabilities.
Element has no URI handling capabilities.

Pads:
  SINK: 'sink'
    Pad Template: 'sink'

Element Properties:

  async               : Go asynchronously to PAUSED
                        flags: readable, writable
                        Boolean. Default: true
  
  blocksize           : Size in bytes to pull per buffer (0 = default)
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 4294967295 Default: 4096 
  
  emit-signal         : Emit signal for new data, stream start, eos
                        flags: readable, writable
                        Boolean. Default: true
  
  enable-last-sample  : Enable the last-sample property
                        flags: readable, writable
                        Boolean. Default: true
  
  last-sample         : The last sample received in the sink
                        flags: readable
                        Boxed pointer of type "GstSample"
  
  max-bitrate         : The maximum bits per second to render (0 = disabled)
                        flags: readable, writable
                        Unsigned Integer64. Range: 0 - 18446744073709551615 Default: 0 
  
  max-lateness        : Maximum number of nanoseconds that a buffer can be late before it is dropped (-1 unlimited)
                        flags: readable, writable
                        Integer64. Range: -1 - 9223372036854775807 Default: -1 
  
  name                : The name of the object
                        flags: readable, writable
                        String. Default: "tensorsink0"
  
  parent              : The parent of the object
                        flags: readable, writable
                        Object of type "GstObject"
  
  processing-deadline : Maximum processing time for a buffer in nanoseconds
                        flags: readable, writable
                        Unsigned Integer64. Range: 0 - 18446744073709551615 Default: 20000000 
  
  qos                 : Generate Quality-of-Service events upstream
                        flags: readable, writable
                        Boolean. Default: true
  
  render-delay        : Additional render delay of the sink in nanoseconds
                        flags: readable, writable
                        Unsigned Integer64. Range: 0 - 18446744073709551615 Default: 0 
  
  signal-rate         : New data signals per second (0 for unlimited, max 500)
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 500 Default: 0 
  
  silent              : Produce verbose output
                        flags: readable, writable
                        Boolean. Default: true
  
  stats               : Sink Statistics
                        flags: readable
                        Boxed pointer of type "GstStructure"
                                                        average-rate: 0
                                                             dropped: 0
                                                            rendered: 0

  
  sync                : Sync on the clock
                        flags: readable, writable
                        Boolean. Default: false
  
  throttle-time       : The time to keep between rendered buffers (0 = disabled)
                        flags: readable, writable
                        Unsigned Integer64. Range: 0 - 18446744073709551615 Default: 0 
  
  ts-offset           : Timestamp offset in nanoseconds
                        flags: readable, writable
                        Integer64. Range: -9223372036854775808 - 9223372036854775807 Default: 0 
  

Element Signals:

  "eos" :  void user_function (GstElement * object,
                               gpointer user_data);

  "stream-start" :  void user_function (GstElement * object,
                                        gpointer user_data);

  "new-data" :  void user_function (GstElement * object,
                                    GstBuffer * arg0,
                                    gpointer user_data);

 

'embeded > i.mx 8m plus' 카테고리의 다른 글

openVX, verisilicon(vivante)  (0) 2025.08.14
gstreamer pipeline / appsink  (0) 2025.08.14
nxp eiq 우분투 실행 실패  (0) 2025.07.31
nxp g2d_blit  (0) 2025.04.01
sounddevice on arm i.mx8 evk  (0) 2024.05.14
Posted by 구차니
embeded/i.mx 8m plus2025. 8. 14. 16:42

영상처리의 가속을 위한 크로스 플랫폼.

Portable, Power-efficient Vision Processing
OpenVX™ is an open, royalty-free standard for cross platform acceleration of computer vision applications. OpenVX enables performance and power-optimized computer vision processing, especially important in embedded and real-time use cases such as face, body and gesture tracking, smart video surveillance, advanced driver assistance systems (ADAS), object and scene reconstruction, augmented reality, visual inspection, robotics and more.

[링크 : https://www.khronos.org/openvx/]

[링크 : https://cho001.tistory.com/224]

 

소스 뒤져보다 보니 so 파일 두개가 보이는데

        if os.path.exists("/usr/lib/libtim-vx.so"):
            backends_available = ["NPU", "CPU"]
            
            ext_delegate = tflite.load_delegate("/usr/lib/libvx_delegate.so")

 

libtim-vx.so는 openVX를 통해 가속받는 VeriSilicon 사의 Tensor Interface Module 을 위한 라이브러리이고

[링크 : https://github.com/VeriSilicon/TIM-VX]

 

libvx_delegate.so 는 openVX 함수를 위한 것인듯 한데..

[링크 : https://github.com/nxp-imx/tflite-vx-delegate-imx]

 

verisilicon 으로 검색하면 vivante NPU IP 를 소유하고 있는 것으로 보인다.

NXP 에서 vivante GPU를 구매해서 GC7000UL을 i.mx8mp에 넣은것 같다.

그러다 보니 gpu / npu를 통일 업체걸로 구매한 듯.

[링크 : https://www.verisilicon.com/en/IPPortfolio/VivanteNPUIP]

'embeded > i.mx 8m plus' 카테고리의 다른 글

NNstreamer - tensor*  (0) 2025.08.18
gstreamer pipeline / appsink  (0) 2025.08.14
nxp eiq 우분투 실행 실패  (0) 2025.07.31
nxp g2d_blit  (0) 2025.04.01
sounddevice on arm i.mx8 evk  (0) 2024.05.14
Posted by 구차니
embeded/i.mx 8m plus2025. 8. 14. 15:07

nxp i.mx8mp 예제를 뜯어 보다가 신기한 걸 발견. 저렇게 해서 성능이 잘 나왔던건가?

            cam_pipeline = cv2.VideoCapture(
                "v4l2src device=" + cam + " ! imxvideoconvert_g2d ! "
                "video/x-raw,format=RGBA,width="
                + str(self.width)
                + ",height="
                + str(self.height)
                + " ! "
                + "videoconvert ! appsink"
            )

        status, org_img = cam_pipeline.read()

[링크 : https://gstreamer.freedesktop.org/documentation/applib/gstappsink.html?gi-language=c]

 


+

i.mx8mp 에서 해보니 비디오 받아오는게 느린게 아니라서 위의 파이프라인을 넣어도 느린건 여전하다.

+

 

cv::VideoCapture::VideoCapture ( const String &  filename, int  apiPreference)

Open video file or a capturing device or a IP video stream for video capturing with API Preference.
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters
filename it can be:
name of video file (eg. video.avi)
or image sequence (eg. img_%02d.jpg, which will read samples like img_00.jpg, img_01.jpg, img_02.jpg, ...)
or URL of video stream (eg. protocol://host:port/script_name?script_params|auth)
or GStreamer pipeline string in gst-launch tool format in case if GStreamer is used as backend Note that each video stream or IP camera feed has its own URL scheme. Please refer to the documentation of source stream to know the right URL.
apiPreference preferred Capture API backends to use. Can be used to enforce a specific reader implementation if multiple are available: e.g. cv::CAP_FFMPEG or cv::CAP_IMAGES or cv::CAP_DSHOW.

See also
cv::VideoCaptureAPIs

[링크 : https://docs.opencv.org/3.4/d8/dfe/classcv_1_1VideoCapture.html#a949d90b766ba42a6a93fe23a67785951]

 

camSet='v4l2src device=/dev/video0 ! video/x-raw,width=640,height=360 ! nvvidconv flip-method='+str(flip)+' \
        ! video/x-raw(memory:NVMM), format=I420, width=640, height=360 ! nvvidconv ! video/x-raw, format=BGRx ! videoconvert \
        ! video/x-raw, format=BGR enable-max-performance=1 ! appsink '
cam=cv2.VideoCapture(camSet,cv2.CAP_GSTREAMER)

[링크 : https://stackoverflow.com/questions/71816725/streaming-opencv-videocapture-frames-using-gstreamer-in-python-for-webcam]

 

CAP_GSTREAMER 
Python: cv.CAP_GSTREAMER
GStreamer.

[링크 : https://docs.opencv.org/3.4/d4/d15/group__videoio__flags__base.html#gga023786be1ee68a9105bf2e48c700294da38dcac6866f7608675dd35ba0b9c3c07]

 

appsink 예제

[링크 : https://makepluscode.tistory.com/entry/Gstreamer-Python-Appsink-구현하기] python

[링크 : https://ralpioxxcs.github.io/post/gstreamer/1_gst/] cpp

'embeded > i.mx 8m plus' 카테고리의 다른 글

NNstreamer - tensor*  (0) 2025.08.18
openVX, verisilicon(vivante)  (0) 2025.08.14
nxp eiq 우분투 실행 실패  (0) 2025.07.31
nxp g2d_blit  (0) 2025.04.01
sounddevice on arm i.mx8 evk  (0) 2024.05.14
Posted by 구차니
embeded/odroid2025. 8. 13. 21:08

pip 로 face-recognition 패키지를 멀티코어 빌드 하다가

버벅하더니 맛이 가버림.. 리부팅 몇번해도 안살아 나서 화면 달아서 해보니 영 시원찮아짐

 

메모리가 2GB 밖에 안되는데 4개 코어 돌려서 죽었나..

아니면 다이소 5천원 32GB axxen 중국산 sd라 망가졌나(class 10이라 sandisk보다 선호)

어느쪽이려나..

 

Bus error

real    11m49.128s
user    27m32.299s
sys     1m0.566s

Broadcast message from systemd-journald@odroidc2 (Wed 2025-08-13 20:37:57 KST):

systemd[1]: Caught <BUS> from PID -1445126080.


Broadcast message from systemd-journald@odroidc2 (Wed 2025-08-13 20:37:57 KST):

systemd[1]: Caught <BUS>, core dump failed (child 9885, code=killed, status=7/BUS).


Broadcast message from systemd-journald@odroidc2 (Wed 2025-08-13 20:37:57 KST):

systemd[1]: Freezing execution.
Posted by 구차니
embeded/odroid2025. 8. 12. 10:16

haarcascade_frontalface_default.xml 와

haarcascade_eye.xml 를 이용해서 odroid c2 에서 돌릴 경우 cpu 점유율

 

face recognition 라이브러리를 이용하여 돌릴때의 cpu 점유율

dlib를 멀티 코어로 못쓰나?

[링크 : https://pypi.org/project/face-recognition/]

Posted by 구차니
embeded/odroid2025. 8. 11. 23:21

먼가 되는것 같으면서도

원격지로 뜨는건지 mobaxterm을 통해 뜨지 않는다. 머지?

 

$ sudo apt-get install xauth

[링크 : https://forum.armbian.com/topic/26672-what-do-i-need-to-set-on-armbian-for-x11-forwarding-on-remote-osx-xserver/]

[링크 : https://serverfault.com/questions/12198/how-can-i-enable-x11-forwarding-to-a-debian-server-box]

 

+

wayland 에서 x.org로 바꾸면 해결.

어우.. 이놈의 wayland은 어떻게 해결이 안되는게 많아

2022.07.11 - [프로그램 사용/ssh scp sftp] - ubuntu ssh x11 forwarding시 gnome 화면 끌어오기

Posted by 구차니
embeded/odroid2025. 8. 11. 15:54

어우.. 빡세다

 

일단~~~은 cmake 가 필요하고

Building wheels for collected packages: dlib, face-recognition-models
  Building wheel for dlib (pyproject.toml) ... error
  error: subprocess-exited-with-error

  × Building wheel for dlib (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [41 lines of output]
      running bdist_wheel
      running build
      running build_ext

      ================================================================================
      ================================================================================
      ================================================================================

                         CMake is not installed on your system!

          Or it is possible some broken copy of cmake is installed on your system.
          It is unfortunately very common for python package managers to include
          broken copies of cmake.  So if the error above this refers to some file
          path to a cmake file inside a python or anaconda or miniconda path then you
          should delete that broken copy of cmake from your computer.

          Instead, please get an official copy of cmake from one of these known good
          sources of an official cmake:
              - cmake.org (this is how windows users should get cmake)
              - apt install cmake (for Ubuntu or Debian based systems)
              - yum install cmake (for Redhat or CenOS based systems)

          On a linux machine you can run `which cmake` to see what cmake you are
          actually using.  If it tells you it's some cmake from any kind of python
          packager delete it and install an official cmake.

          More generally, cmake is not installed if when you open a terminal window
          and type
             cmake --version
          you get an error.  So you can use that as a very basic test to see if you
          have cmake installed.  That is, if cmake --version doesn't run from the
          same terminal window from which you are reading this error message, then
          you have not installed cmake.  Windows users should take note that they
          need to tell the cmake installer to add cmake to their PATH.  Since you
          can't run commands that are not in your PATH.  This is how the PATH works
          on Linux as well, but failing to add cmake to the PATH is a particularly
          common problem on windows and rarely a problem on Linux.

      ================================================================================
      ================================================================================
      ================================================================================
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for dlib
  Building wheel for face-recognition-models (setup.py) ... -

 

이단~~~(?) 헤멘건 gpt 조언으로 dlib 설치시 안되는 문제는 python3-dev를 깔고 해결되었다.

잘 읽어보니 개발용 패키지에 설치되는 python 헤더가 없다고 아무 지나가듯(?) 써있네

에러는 전혀 연관없이 나오니 될리가 있나 ㅠㅠ

      CMake Error in CMakeLists.txt:
        Imported target "pybind11::module" includes non-existent path
      
          "/usr/include/python3.12"
      
        in its INTERFACE_INCLUDE_DIRECTORIES.  Possible reasons include:
      
        * The path was deleted, renamed, or moved to another location.
      
        * An install or uninstall procedure did not complete successfully.
      
        * The installation package was faulty and references files it does not
        provide.
      
      
      
      -- Generating done (0.1s)
      CMake Generate step failed.  Build files cannot be regenerated correctly.
      Traceback (most recent call last):
        File "/usr/lib/python3/dist-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in <module>
          main()
        File "/usr/lib/python3/dist-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 335, in main
          json_out['return_val'] = hook(**hook_input['kwargs'])
                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/usr/lib/python3/dist-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 251, in build_wheel
          return _build_backend().build_wheel(wheel_directory, config_settings,
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/tmp/pip-build-env-m2v2cjv_/overlay/local/lib/python3.12/dist-packages/setuptools/build_meta.py", line 435, in build_wheel
          return _build(['bdist_wheel', '--dist-info-dir', str(metadata_directory)])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/tmp/pip-build-env-m2v2cjv_/overlay/local/lib/python3.12/dist-packages/setuptools/build_meta.py", line 423, in _build
          return self._build_with_temp_dir(
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/tmp/pip-build-env-m2v2cjv_/overlay/local/lib/python3.12/dist-packages/setuptools/build_meta.py", line 404, in _build_with_temp_dir
          self.run_setup()
        File "/tmp/pip-build-env-m2v2cjv_/overlay/local/lib/python3.12/dist-packages/setuptools/build_meta.py", line 317, in run_setup
          exec(code, locals())
        File "<string>", line 243, in <module>
        File "/tmp/pip-build-env-m2v2cjv_/overlay/local/lib/python3.12/dist-packages/setuptools/__init__.py", line 115, in setup
          return distutils.core.setup(**attrs)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/tmp/pip-build-env-m2v2cjv_/overlay/local/lib/python3.12/dist-packages/setuptools/_distutils/core.py", line 186, in setup
          return run_commands(dist)
                 ^^^^^^^^^^^^^^^^^^
        File "/tmp/pip-build-env-m2v2cjv_/overlay/local/lib/python3.12/dist-packages/setuptools/_distutils/core.py", line 202, in run_commands
          dist.run_commands()
        File "/tmp/pip-build-env-m2v2cjv_/overlay/local/lib/python3.12/dist-packages/setuptools/_distutils/dist.py", line 1002, in run_commands
          self.run_command(cmd)
        File "/tmp/pip-build-env-m2v2cjv_/overlay/local/lib/python3.12/dist-packages/setuptools/dist.py", line 1102, in run_command
          super().run_command(command)
        File "/tmp/pip-build-env-m2v2cjv_/overlay/local/lib/python3.12/dist-packages/setuptools/_distutils/dist.py", line 1021, in run_command
          cmd_obj.run()
        File "/tmp/pip-build-env-m2v2cjv_/overlay/local/lib/python3.12/dist-packages/setuptools/command/bdist_wheel.py", line 370, in run
          self.run_command("build")
        File "/tmp/pip-build-env-m2v2cjv_/overlay/local/lib/python3.12/dist-packages/setuptools/_distutils/cmd.py", line 357, in run_command
          self.distribution.run_command(command)
        File "/tmp/pip-build-env-m2v2cjv_/overlay/local/lib/python3.12/dist-packages/setuptools/dist.py", line 1102, in run_command
          super().run_command(command)
        File "/tmp/pip-build-env-m2v2cjv_/overlay/local/lib/python3.12/dist-packages/setuptools/_distutils/dist.py", line 1021, in run_command
          cmd_obj.run()
        File "/tmp/pip-build-env-m2v2cjv_/overlay/local/lib/python3.12/dist-packages/setuptools/_distutils/command/build.py", line 135, in run
          self.run_command(cmd_name)
        File "/tmp/pip-build-env-m2v2cjv_/overlay/local/lib/python3.12/dist-packages/setuptools/_distutils/cmd.py", line 357, in run_command
          self.distribution.run_command(command)
        File "/tmp/pip-build-env-m2v2cjv_/overlay/local/lib/python3.12/dist-packages/setuptools/dist.py", line 1102, in run_command
          super().run_command(command)
        File "/tmp/pip-build-env-m2v2cjv_/overlay/local/lib/python3.12/dist-packages/setuptools/_distutils/dist.py", line 1021, in run_command
          cmd_obj.run()
        File "<string>", line 168, in run
        File "<string>", line 206, in build_extension
        File "/usr/lib/python3.12/subprocess.py", line 413, in check_call
          raise CalledProcessError(retcode, cmd)
      subprocess.CalledProcessError: Command '['cmake', '/tmp/pip-install-s3fay2b6/dlib_ef2badcad50f402ebee63ad6986a540e/tools/python', '-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/tmp/pip-install-s3fay2b6/dlib_ef2badcad50f402ebee63ad6986a540e/build/lib.linux-aarch64-cpython-312', '-DPYTHON_EXECUTABLE=/usr/bin/python3', '-DDLIB_USE_FFMPEG=OFF', '-DCMAKE_BUILD_TYPE=Release']' returned non-zero exit status 1.
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for dlib
Failed to build dlib
ERROR: Could not build wheels for dlib, which is required to install pyproject.toml-based projects

 

[링크 : https://pypi.org/project/face-recognition/]

 

+

2025.08.12

어우.. 강제로 1코어 빌드하게 되어있어서 71분 걸렸네..

여전히 멀티코어 빌드 하는 옵션을 못 찾음..

$ time pip3 install --break-system-packages face-recognition 
real 71m7.101s
user 67m55.042s
sys 1m33.850s

 

 

+

2025.08.12

i.mx8mp evk 에서 돌리니 -j3가 뜬다. 머야머야?! 무슨 차이야!?

그 와중에 시간이 반으로 줄었네

  Invoking CMake build: 'cmake --build . --config Release -- -j3'


real 31m9.576s
user 83m15.457s
sys 2m41.699s

'embeded > odroid' 카테고리의 다른 글

odroid c2 opencv haar cascade / face_recognition  (0) 2025.08.12
armbian X11-forwarding 활성화 하기  (0) 2025.08.11
armbian on odroid c2  (0) 2025.08.10
ordroid c2 - mrs 명령어 고찰  (0) 2023.09.05
wayland on odroid-c2  (0) 2021.11.22
Posted by 구차니
embeded/odroid2025. 8. 10. 23:05

으아아아 terminator가 기본이다!

그런데 먼진 모르겠지만.. desktop으로 했는데 gnome-terminal이 이상하리 만치 느리게 뜬다.

xfce 계열인가?

 

 

'embeded > odroid' 카테고리의 다른 글

armbian X11-forwarding 활성화 하기  (0) 2025.08.11
python face-recognition on armbian / odroid c2  (0) 2025.08.11
ordroid c2 - mrs 명령어 고찰  (0) 2023.09.05
wayland on odroid-c2  (0) 2021.11.22
odroid c2 gpio 와 wiringpi  (0) 2021.09.29
Posted by 구차니
embeded/Cortex-M3 STM2025. 8. 8. 23:35

오.. c만 되는줄 알았는데 cpp가 되네?

그나저나 crt0.a 인가 말고 그럼 어떤 cpp runtime을 링크하려나?

 

[링크 : https://igotit.tistory.com/m/entry/STM32CubeIDE-임베디드-코드에서-C-클래스-활용]

 

 

+

2025.08.12

생성시에 C++로 해줘도 된다.

 

아직 main.c 일 때

16:01:47 **** Build of configuration Debug for project cpptest ****
make -j8 all 
arm-none-eabi-gcc "../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c" -mcpu=cortex-m3 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F103xE -c -I../Core/Inc -I../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I../Drivers/STM32F1xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.d" -MT"Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o" --specs=nano.specs -mfloat-abi=soft -mthumb -o "Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o"
arm-none-eabi-gcc "../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c" -mcpu=cortex-m3 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F103xE -c -I../Core/Inc -I../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I../Drivers/STM32F1xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.d" -MT"Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o" --specs=nano.specs -mfloat-abi=soft -mthumb -o "Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o"
arm-none-eabi-gcc "../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c" -mcpu=cortex-m3 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F103xE -c -I../Core/Inc -I../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I../Drivers/STM32F1xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.d" -MT"Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o" --specs=nano.specs -mfloat-abi=soft -mthumb -o "Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o"
arm-none-eabi-gcc "../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c" -mcpu=cortex-m3 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F103xE -c -I../Core/Inc -I../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I../Drivers/STM32F1xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.d" -MT"Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o" --specs=nano.specs -mfloat-abi=soft -mthumb -o "Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o"
arm-none-eabi-gcc "../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c" -mcpu=cortex-m3 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F103xE -c -I../Core/Inc -I../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I../Drivers/STM32F1xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.d" -MT"Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o" --specs=nano.specs -mfloat-abi=soft -mthumb -o "Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o"
arm-none-eabi-gcc "../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c" -mcpu=cortex-m3 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F103xE -c -I../Core/Inc -I../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I../Drivers/STM32F1xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.d" -MT"Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o" --specs=nano.specs -mfloat-abi=soft -mthumb -o "Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o"
arm-none-eabi-gcc "../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c" -mcpu=cortex-m3 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F103xE -c -I../Core/Inc -I../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I../Drivers/STM32F1xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.d" -MT"Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o" --specs=nano.specs -mfloat-abi=soft -mthumb -o "Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o"
arm-none-eabi-gcc "../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c" -mcpu=cortex-m3 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F103xE -c -I../Core/Inc -I../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I../Drivers/STM32F1xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.d" -MT"Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o" --specs=nano.specs -mfloat-abi=soft -mthumb -o "Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o"
arm-none-eabi-gcc "../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c" -mcpu=cortex-m3 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F103xE -c -I../Core/Inc -I../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I../Drivers/STM32F1xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.d" -MT"Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o" --specs=nano.specs -mfloat-abi=soft -mthumb -o "Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o"
arm-none-eabi-gcc "../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c" -mcpu=cortex-m3 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F103xE -c -I../Core/Inc -I../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I../Drivers/STM32F1xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.d" -MT"Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o" --specs=nano.specs -mfloat-abi=soft -mthumb -o "Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o"
arm-none-eabi-gcc "../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c" -mcpu=cortex-m3 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F103xE -c -I../Core/Inc -I../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I../Drivers/STM32F1xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.d" -MT"Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o" --specs=nano.specs -mfloat-abi=soft -mthumb -o "Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o"
arm-none-eabi-gcc -mcpu=cortex-m3 -g3 -DDEBUG -c -x assembler-with-cpp -MMD -MP -MF"Core/Startup/startup_stm32f103retx.d" -MT"Core/Startup/startup_stm32f103retx.o" --specs=nano.specs -mfloat-abi=soft -mthumb -o "Core/Startup/startup_stm32f103retx.o" "../Core/Startup/startup_stm32f103retx.s"
arm-none-eabi-gcc "../Core/Src/main.c" -mcpu=cortex-m3 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F103xE -c -I../Core/Inc -I../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I../Drivers/STM32F1xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Core/Src/main.d" -MT"Core/Src/main.o" --specs=nano.specs -mfloat-abi=soft -mthumb -o "Core/Src/main.o"
arm-none-eabi-gcc "../Core/Src/stm32f1xx_hal_msp.c" -mcpu=cortex-m3 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F103xE -c -I../Core/Inc -I../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I../Drivers/STM32F1xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Core/Src/stm32f1xx_hal_msp.d" -MT"Core/Src/stm32f1xx_hal_msp.o" --specs=nano.specs -mfloat-abi=soft -mthumb -o "Core/Src/stm32f1xx_hal_msp.o"
arm-none-eabi-gcc "../Core/Src/stm32f1xx_it.c" -mcpu=cortex-m3 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F103xE -c -I../Core/Inc -I../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I../Drivers/STM32F1xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Core/Src/stm32f1xx_it.d" -MT"Core/Src/stm32f1xx_it.o" --specs=nano.specs -mfloat-abi=soft -mthumb -o "Core/Src/stm32f1xx_it.o"
arm-none-eabi-gcc "../Core/Src/syscalls.c" -mcpu=cortex-m3 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F103xE -c -I../Core/Inc -I../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I../Drivers/STM32F1xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Core/Src/syscalls.d" -MT"Core/Src/syscalls.o" --specs=nano.specs -mfloat-abi=soft -mthumb -o "Core/Src/syscalls.o"
arm-none-eabi-gcc "../Core/Src/sysmem.c" -mcpu=cortex-m3 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F103xE -c -I../Core/Inc -I../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I../Drivers/STM32F1xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Core/Src/sysmem.d" -MT"Core/Src/sysmem.o" --specs=nano.specs -mfloat-abi=soft -mthumb -o "Core/Src/sysmem.o"
arm-none-eabi-gcc "../Core/Src/system_stm32f1xx.c" -mcpu=cortex-m3 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F103xE -c -I../Core/Inc -I../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I../Drivers/STM32F1xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Core/Src/system_stm32f1xx.d" -MT"Core/Src/system_stm32f1xx.o" --specs=nano.specs -mfloat-abi=soft -mthumb -o "Core/Src/system_stm32f1xx.o"
arm-none-eabi-g++ -o "cpptest.elf" @"objects.list"   -mcpu=cortex-m3 -T"/home/user/STM32CubeIDE/workspace_1.15.0_cpp/cpptest/STM32F103RETX_FLASH.ld" --specs=nosys.specs -Wl,-Map="cpptest.map" -Wl,--gc-sections -static --specs=nano.specs -mfloat-abi=soft -mthumb -Wl,--start-group -lc -lm -lstdc++ -lsupc++ -Wl,--end-group
Finished building target: cpptest.elf
 
arm-none-eabi-size  cpptest.elf 
arm-none-eabi-objdump -h -S cpptest.elf  > "cpptest.list"
   text    data     bss     dec     hex filename
   3728      12    1572    5312    14c0 cpptest.elf
Finished building: default.size.stdout
 
Finished building: cpptest.list
 

16:01:48 Build Finished. 0 errors, 0 warnings. (took 1s.50ms)

 

STM32F103RETX_FLASH.ld

/*
******************************************************************************
**
** @file        : LinkerScript.ld
**
** @author      : Auto-generated by STM32CubeIDE
**
** @brief       : Linker script for STM32F103RETx Device from STM32F1 series
**                      512KBytes FLASH
**                      64KBytes RAM
**
**                Set heap size, stack size and stack location according
**                to application requirements.
**
**                Set memory bank area and size if external memory is used
**
**  Target      : STMicroelectronics STM32
**
**  Distribution: The file is distributed as is, without any warranty
**                of any kind.
**
******************************************************************************
** @attention
**
** Copyright (c) 2025 STMicroelectronics.
** All rights reserved.
**
** This software is licensed under terms that can be found in the LICENSE file
** in the root directory of this software component.
** If no LICENSE file comes with this software, it is provided AS-IS.
**
******************************************************************************
*/

/* Entry Point */
ENTRY(Reset_Handler)

/* Highest address of the user mode stack */
_estack = ORIGIN(RAM) + LENGTH(RAM); /* end of "RAM" Ram type memory */

_Min_Heap_Size = 0x200; /* required amount of heap */
_Min_Stack_Size = 0x400; /* required amount of stack */

/* Memories definition */
MEMORY
{
  RAM    (xrw)    : ORIGIN = 0x20000000,   LENGTH = 64K
  FLASH    (rx)    : ORIGIN = 0x8000000,   LENGTH = 512K
}

/* Sections */
SECTIONS
{
  /* The startup code into "FLASH" Rom type memory */
  .isr_vector :
  {
    . = ALIGN(4);
    KEEP(*(.isr_vector)) /* Startup code */
    . = ALIGN(4);
  } >FLASH

  /* The program code and other data into "FLASH" Rom type memory */
  .text :
  {
    . = ALIGN(4);
    *(.text)           /* .text sections (code) */
    *(.text*)          /* .text* sections (code) */
    *(.glue_7)         /* glue arm to thumb code */
    *(.glue_7t)        /* glue thumb to arm code */
    *(.eh_frame)

    KEEP (*(.init))
    KEEP (*(.fini))

    . = ALIGN(4);
    _etext = .;        /* define a global symbols at end of code */
  } >FLASH

  /* Constant data into "FLASH" Rom type memory */
  .rodata :
  {
    . = ALIGN(4);
    *(.rodata)         /* .rodata sections (constants, strings, etc.) */
    *(.rodata*)        /* .rodata* sections (constants, strings, etc.) */
    . = ALIGN(4);
  } >FLASH

  .ARM.extab (READONLY) : /* The "READONLY" keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
  {
    . = ALIGN(4);
    *(.ARM.extab* .gnu.linkonce.armextab.*)
    . = ALIGN(4);
  } >FLASH

  .ARM (READONLY) : /* The "READONLY" keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
  {
    . = ALIGN(4);
    __exidx_start = .;
    *(.ARM.exidx*)
    __exidx_end = .;
    . = ALIGN(4);
  } >FLASH

  .preinit_array (READONLY) : /* The "READONLY" keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
  {
    . = ALIGN(4);
    PROVIDE_HIDDEN (__preinit_array_start = .);
    KEEP (*(.preinit_array*))
    PROVIDE_HIDDEN (__preinit_array_end = .);
    . = ALIGN(4);
  } >FLASH

  .init_array (READONLY) : /* The "READONLY" keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
  {
    . = ALIGN(4);
    PROVIDE_HIDDEN (__init_array_start = .);
    KEEP (*(SORT(.init_array.*)))
    KEEP (*(.init_array*))
    PROVIDE_HIDDEN (__init_array_end = .);
    . = ALIGN(4);
  } >FLASH

  .fini_array (READONLY) : /* The "READONLY" keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
  {
    . = ALIGN(4);
    PROVIDE_HIDDEN (__fini_array_start = .);
    KEEP (*(SORT(.fini_array.*)))
    KEEP (*(.fini_array*))
    PROVIDE_HIDDEN (__fini_array_end = .);
    . = ALIGN(4);
  } >FLASH

  /* Used by the startup to initialize data */
  _sidata = LOADADDR(.data);

  /* Initialized data sections into "RAM" Ram type memory */
  .data :
  {
    . = ALIGN(4);
    _sdata = .;        /* create a global symbol at data start */
    *(.data)           /* .data sections */
    *(.data*)          /* .data* sections */
    *(.RamFunc)        /* .RamFunc sections */
    *(.RamFunc*)       /* .RamFunc* sections */

    . = ALIGN(4);
    _edata = .;        /* define a global symbol at data end */

  } >RAM AT> FLASH

  /* Uninitialized data section into "RAM" Ram type memory */
  . = ALIGN(4);
  .bss :
  {
    /* This is used by the startup in order to initialize the .bss section */
    _sbss = .;         /* define a global symbol at bss start */
    __bss_start__ = _sbss;
    *(.bss)
    *(.bss*)
    *(COMMON)

    . = ALIGN(4);
    _ebss = .;         /* define a global symbol at bss end */
    __bss_end__ = _ebss;
  } >RAM

  /* User_heap_stack section, used to check that there is enough "RAM" Ram  type memory left */
  ._user_heap_stack :
  {
    . = ALIGN(8);
    PROVIDE ( end = . );
    PROVIDE ( _end = . );
    . = . + _Min_Heap_Size;
    . = . + _Min_Stack_Size;
    . = ALIGN(8);
  } >RAM

  /* Remove information from the compiler libraries */
  /DISCARD/ :
  {
    libc.a ( * )
    libm.a ( * )
    libgcc.a ( * )
  }

  .ARM.attributes 0 : { *(.ARM.attributes) }
}

 

 

$ arm-linux-gnueabihf-readelf -a cpptest.elf
ELF Header:
  Magic:   7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 
  Class:                             ELF32
  Data:                              2's complement, little endian
  Version:                           1 (current)
  OS/ABI:                            UNIX - System V
  ABI Version:                       0
  Type:                              EXEC (Executable file)
  Machine:                           ARM
  Version:                           0x1
  Entry point address:               0x8000361
  Start of program headers:          52 (bytes into file)
  Start of section headers:          706172 (bytes into file)
  Flags:                             0x5000200, Version5 EABI, soft-float ABI
  Size of this header:               52 (bytes)
  Size of program headers:           32 (bytes)
  Number of program headers:         3
  Size of section headers:           40 (bytes)
  Number of section headers:         26
  Section header string table index: 25

Section Headers:
  [Nr] Name              Type            Addr     Off    Size   ES Flg Lk Inf Al
  [ 0]                   NULL            00000000 000000 000000 00      0   0  0
  [ 1] .isr_vector       PROGBITS        08000000 001000 0001e4 00   A  0   0  1
  [ 2] .text             PROGBITS        080001e4 0011e4 000c80 00  AX  0   0  4
  [ 3] .rodata           PROGBITS        08000e64 001e64 000024 00   A  0   0  4
  [ 4] .ARM.extab        PROGBITS        08000e88 00200c 000000 00   W  0   0  1
  [ 5] .ARM              PROGBITS        08000e88 00200c 000000 00   W  0   0  1
  [ 6] .preinit_array    PREINIT_ARRAY   08000e88 00200c 000000 04  WA  0   0  1
  [ 7] .init_array       INIT_ARRAY      08000e88 001e88 000004 04   A  0   0  4
  [ 8] .fini_array       FINI_ARRAY      08000e8c 001e8c 000004 04   A  0   0  4
  [ 9] .data             PROGBITS        20000000 002000 00000c 00  WA  0   0  4
  [10] .bss              NOBITS          2000000c 00200c 000020 00  WA  0   0  4
  [11] ._user_heap_stack NOBITS          2000002c 00202c 000604 00  WA  0   0  1
  [12] .ARM.attributes   ARM_ATTRIBUTES  00000000 00200c 000029 00      0   0  1
  [13] .debug_info       PROGBITS        00000000 002035 00217c 00      0   0  1
  [14] .debug_abbrev     PROGBITS        00000000 0041b1 000ba6 00      0   0  1
  [15] .debug_aranges    PROGBITS        00000000 004d58 000370 00      0   0  8
  [16] .debug_rnglists   PROGBITS        00000000 0050c8 000272 00      0   0  1
  [17] .debug_macro      PROGBITS        00000000 00533a 0176f5 00      0   0  1
  [18] .debug_line       PROGBITS        00000000 01ca2f 003a17 00      0   0  1
  [19] .debug_str        PROGBITS        00000000 020446 089bcc 01  MS  0   0  1
  [20] .comment          PROGBITS        00000000 0aa012 000043 01  MS  0   0  1
  [21] .debug_frame      PROGBITS        00000000 0aa058 000bbc 00      0   0  4
  [22] .debug_line_str   PROGBITS        00000000 0aac14 000066 01  MS  0   0  1
  [23] .symtab           SYMTAB          00000000 0aac7c 000f40 10     24 134  4
  [24] .strtab           STRTAB          00000000 0abbbc 0009a3 00      0   0  1
  [25] .shstrtab         STRTAB          00000000 0ac55f 00011c 00      0   0  1
Key to Flags:
  W (write), A (alloc), X (execute), M (merge), S (strings), I (info),
  L (link order), O (extra OS processing required), G (group), T (TLS),
  C (compressed), x (unknown), o (OS specific), E (exclude),
  D (mbind), y (purecode), p (processor specific)

There are no section groups in this file.

Program Headers:
  Type           Offset   VirtAddr   PhysAddr   FileSiz MemSiz  Flg Align
  LOAD           0x001000 0x08000000 0x08000000 0x00e90 0x00e90 R E 0x1000
  LOAD           0x002000 0x20000000 0x08000e90 0x0000c 0x0002c RW  0x1000
  LOAD           0x00002c 0x2000002c 0x08000e9c 0x00000 0x00604 RW  0x1000

 Section to Segment mapping:
  Segment Sections...
   00     .isr_vector .text .rodata .init_array .fini_array 
   01     .data .bss 
   02     ._user_heap_stack 

There is no dynamic section in this file.

There are no relocations in this file.

There are no unwind sections in this file.

Symbol table '.symtab' contains 244 entries:
   Num:    Value  Size Type    Bind   Vis      Ndx Name
     0: 00000000     0 NOTYPE  LOCAL  DEFAULT  UND 
     1: 08000000     0 SECTION LOCAL  DEFAULT    1 .isr_vector
     2: 080001e4     0 SECTION LOCAL  DEFAULT    2 .text
     3: 08000e64     0 SECTION LOCAL  DEFAULT    3 .rodata
     4: 08000e88     0 SECTION LOCAL  DEFAULT    4 .ARM.extab
     5: 08000e88     0 SECTION LOCAL  DEFAULT    5 .ARM
     6: 08000e88     0 SECTION LOCAL  DEFAULT    6 .preinit_array
     7: 08000e88     0 SECTION LOCAL  DEFAULT    7 .init_array
     8: 08000e8c     0 SECTION LOCAL  DEFAULT    8 .fini_array
     9: 20000000     0 SECTION LOCAL  DEFAULT    9 .data
    10: 2000000c     0 SECTION LOCAL  DEFAULT   10 .bss
    11: 2000002c     0 SECTION LOCAL  DEFAULT   11 ._user_heap_stack
    12: 00000000     0 SECTION LOCAL  DEFAULT   12 .ARM.attributes
    13: 00000000     0 SECTION LOCAL  DEFAULT   13 .debug_info
    14: 00000000     0 SECTION LOCAL  DEFAULT   14 .debug_abbrev
    15: 00000000     0 SECTION LOCAL  DEFAULT   15 .debug_aranges
    16: 00000000     0 SECTION LOCAL  DEFAULT   16 .debug_rnglists
    17: 00000000     0 SECTION LOCAL  DEFAULT   17 .debug_macro
    18: 00000000     0 SECTION LOCAL  DEFAULT   18 .debug_line
    19: 00000000     0 SECTION LOCAL  DEFAULT   19 .debug_str
    20: 00000000     0 SECTION LOCAL  DEFAULT   20 .comment
    21: 00000000     0 SECTION LOCAL  DEFAULT   21 .debug_frame
    22: 00000000     0 SECTION LOCAL  DEFAULT   22 .debug_line_str
    23: 00000000     0 FILE    LOCAL  DEFAULT  ABS startup_stm32f10[...]
    24: f1e0f85f     0 NOTYPE  LOCAL  DEFAULT  ABS BootRAM
    25: 08000360     0 NOTYPE  LOCAL  DEFAULT    2 $t
    26: 08000374     0 NOTYPE  LOCAL  DEFAULT    2 LoopCopyDataInit
    27: 0800036e     0 NOTYPE  LOCAL  DEFAULT    2 CopyDataInit
    28: 08000386     0 NOTYPE  LOCAL  DEFAULT    2 LoopFillZerobss
    29: 08000382     0 NOTYPE  LOCAL  DEFAULT    2 FillZerobss
    30: 080003a8     0 NOTYPE  LOCAL  DEFAULT    2 Infinite_Loop
    31: 080003a8     0 NOTYPE  LOCAL  DEFAULT    2 $t
    32: 08000394     0 NOTYPE  LOCAL  DEFAULT    2 $d
    33: 00000000     0 FILE    LOCAL  DEFAULT  ABS crtbegin.o
    34: 08000e4c     0 OBJECT  LOCAL  DEFAULT    2 __EH_FRAME_BEGIN__
    35: 080001e4     0 NOTYPE  LOCAL  DEFAULT    2 $t
    36: 080001e5     0 FUNC    LOCAL  DEFAULT    2 __do_global_dtors_aux
    37: 080001fc     0 NOTYPE  LOCAL  DEFAULT    2 $d
    38: 2000000c     1 NOTYPE  LOCAL  DEFAULT   10 completed.1
    39: 08000e8c     0 NOTYPE  LOCAL  DEFAULT    8 $d
    40: 08000e8c     0 OBJECT  LOCAL  DEFAULT    8 __do_global_dtor[...]
    41: 08000208     0 NOTYPE  LOCAL  DEFAULT    2 $t
    42: 08000209     0 FUNC    LOCAL  DEFAULT    2 frame_dummy
    43: 08000218     0 NOTYPE  LOCAL  DEFAULT    2 $d
    44: 20000010    24 NOTYPE  LOCAL  DEFAULT   10 object.0
    45: 08000e88     0 NOTYPE  LOCAL  DEFAULT    7 $d
    46: 08000e88     0 OBJECT  LOCAL  DEFAULT    7 __frame_dummy_in[...]
    47: 2000000c     0 NOTYPE  LOCAL  DEFAULT   10 $d
    48: 00000000     0 FILE    LOCAL  DEFAULT  ABS main.c
    49: 08000224     0 NOTYPE  LOCAL  DEFAULT    2 $t
    50: 08000234     0 NOTYPE  LOCAL  DEFAULT    2 $t
    51: 080002aa     0 NOTYPE  LOCAL  DEFAULT    2 $t
    52: 00000000     0 FILE    LOCAL  DEFAULT  ABS stm32f1xx_hal_msp.c
    53: 080002b8     0 NOTYPE  LOCAL  DEFAULT    2 $t
    54: 080002f8     0 NOTYPE  LOCAL  DEFAULT    2 $d
    55: 00000000     0 FILE    LOCAL  DEFAULT  ABS stm32f1xx_it.c
    56: 080002fc     0 NOTYPE  LOCAL  DEFAULT    2 $t
    57: 08000304     0 NOTYPE  LOCAL  DEFAULT    2 $t
    58: 0800030c     0 NOTYPE  LOCAL  DEFAULT    2 $t
    59: 08000314     0 NOTYPE  LOCAL  DEFAULT    2 $t
    60: 0800031c     0 NOTYPE  LOCAL  DEFAULT    2 $t
    61: 08000324     0 NOTYPE  LOCAL  DEFAULT    2 $t
    62: 08000330     0 NOTYPE  LOCAL  DEFAULT    2 $t
    63: 0800033c     0 NOTYPE  LOCAL  DEFAULT    2 $t
    64: 08000348     0 NOTYPE  LOCAL  DEFAULT    2 $t
    65: 00000000     0 FILE    LOCAL  DEFAULT  ABS system_stm32f1xx.c
    66: 20000000     0 NOTYPE  LOCAL  DEFAULT    9 $d
    67: 08000e64     0 NOTYPE  LOCAL  DEFAULT    3 $d
    68: 08000354     0 NOTYPE  LOCAL  DEFAULT    2 $t
    69: 00000000     0 FILE    LOCAL  DEFAULT  ABS stm32f1xx_hal.c
    70: 20000028     0 NOTYPE  LOCAL  DEFAULT   10 $d
    71: 20000004     0 NOTYPE  LOCAL  DEFAULT    9 $d
    72: 080003ac     0 NOTYPE  LOCAL  DEFAULT    2 $t
    73: 080003d4     0 NOTYPE  LOCAL  DEFAULT    2 $d
    74: 080003d8     0 NOTYPE  LOCAL  DEFAULT    2 $t
    75: 0800042c     0 NOTYPE  LOCAL  DEFAULT    2 $d
    76: 08000438     0 NOTYPE  LOCAL  DEFAULT    2 $t
    77: 08000454     0 NOTYPE  LOCAL  DEFAULT    2 $d
    78: 0800045c     0 NOTYPE  LOCAL  DEFAULT    2 $t
    79: 0800046c     0 NOTYPE  LOCAL  DEFAULT    2 $d
    80: 00000000     0 FILE    LOCAL  DEFAULT  ABS stm32f1xx_hal_co[...]
    81: 08000470     0 NOTYPE  LOCAL  DEFAULT    2 $t
    82: 08000471    72 FUNC    LOCAL  DEFAULT    2 __NVIC_SetPriori[...]
    83: 080004b4     0 NOTYPE  LOCAL  DEFAULT    2 $d
    84: 080004b8     0 NOTYPE  LOCAL  DEFAULT    2 $t
    85: 080004b9    28 FUNC    LOCAL  DEFAULT    2 __NVIC_GetPriori[...]
    86: 080004d0     0 NOTYPE  LOCAL  DEFAULT    2 $d
    87: 080004d4     0 NOTYPE  LOCAL  DEFAULT    2 $t
    88: 080004d5    84 FUNC    LOCAL  DEFAULT    2 __NVIC_SetPriority
    89: 08000520     0 NOTYPE  LOCAL  DEFAULT    2 $d
    90: 08000528     0 NOTYPE  LOCAL  DEFAULT    2 $t
    91: 08000529   100 FUNC    LOCAL  DEFAULT    2 NVIC_EncodePriority
    92: 0800058c     0 NOTYPE  LOCAL  DEFAULT    2 $t
    93: 0800058d    68 FUNC    LOCAL  DEFAULT    2 SysTick_Config
    94: 080005cc     0 NOTYPE  LOCAL  DEFAULT    2 $d
    95: 080005d0     0 NOTYPE  LOCAL  DEFAULT    2 $t
    96: 080005e6     0 NOTYPE  LOCAL  DEFAULT    2 $t
    97: 0800061e     0 NOTYPE  LOCAL  DEFAULT    2 $t
    98: 00000000     0 FILE    LOCAL  DEFAULT  ABS stm32f1xx_hal_rcc.c
    99: 08000638     0 NOTYPE  LOCAL  DEFAULT    2 $t
   100: 08000db9    60 FUNC    LOCAL  DEFAULT    2 RCC_Delay
   101: 080008a4     0 NOTYPE  LOCAL  DEFAULT    2 $d
   102: 080008b0     0 NOTYPE  LOCAL  DEFAULT    2 $t
   103: 08000afc     0 NOTYPE  LOCAL  DEFAULT    2 $d
   104: 08000b08     0 NOTYPE  LOCAL  DEFAULT    2 $t
   105: 08000b38     0 NOTYPE  LOCAL  DEFAULT    2 $d
   106: 08000b3c     0 NOTYPE  LOCAL  DEFAULT    2 $t
   107: 08000cfc     0 NOTYPE  LOCAL  DEFAULT    2 $d
   108: 08000d10     0 NOTYPE  LOCAL  DEFAULT    2 $t
   109: 08000da4     0 NOTYPE  LOCAL  DEFAULT    2 $d
   110: 08000e74    16 OBJECT  LOCAL  DEFAULT    3 aPLLMULFactorTable.1
   111: 08000e84     2 OBJECT  LOCAL  DEFAULT    3 aPredivFactorTable.0
   112: 08000db8     0 NOTYPE  LOCAL  DEFAULT    2 $t
   113: 08000dec     0 NOTYPE  LOCAL  DEFAULT    2 $d
   114: 08000e74     0 NOTYPE  LOCAL  DEFAULT    3 $d
   115: 08000e84     0 NOTYPE  LOCAL  DEFAULT    3 $d
   116: 00000000     0 FILE    LOCAL  DEFAULT  ABS libc_a-memset.o
   117: 08000df4     0 NOTYPE  LOCAL  DEFAULT    2 $t
   118: 00000000     0 FILE    LOCAL  DEFAULT  ABS libc_a-init.o
   119: 08000e04     0 NOTYPE  LOCAL  DEFAULT    2 $t
   120: 08000e3c     0 NOTYPE  LOCAL  DEFAULT    2 $d
   121: 00000000     0 FILE    LOCAL  DEFAULT  ABS crti.o
   122: 08000e4c     0 NOTYPE  LOCAL  DEFAULT    2 $t
   123: 08000e58     0 NOTYPE  LOCAL  DEFAULT    2 $t
   124: 00000000     0 FILE    LOCAL  DEFAULT  ABS crtn.o
   125: 08000e50     0 NOTYPE  LOCAL  DEFAULT    2 $t
   126: 08000e5c     0 NOTYPE  LOCAL  DEFAULT    2 $t
   127: 00000000     0 FILE    LOCAL  DEFAULT  ABS 
   128: 08000e8c     0 NOTYPE  LOCAL  DEFAULT    7 __init_array_end
   129: 08000e88     0 NOTYPE  LOCAL  DEFAULT    6 __preinit_array_end
   130: 08000e88     0 NOTYPE  LOCAL  DEFAULT    7 __init_array_start
   131: 08000e88     0 NOTYPE  LOCAL  DEFAULT    6 __preinit_array_start
   132: 08000000     0 NOTYPE  LOCAL  DEFAULT    1 $d
   133: 20000008     0 NOTYPE  LOCAL  DEFAULT    9 $d
   134: 080003a9     2 FUNC    WEAK   DEFAULT    2 RTC_Alarm_IRQHandler
   135: 080003a9     2 FUNC    WEAK   DEFAULT    2 EXTI2_IRQHandler
   136: 080003a9     2 FUNC    WEAK   DEFAULT    2 TIM8_TRG_COM_IRQ[...]
   137: 080003a9     2 FUNC    WEAK   DEFAULT    2 TIM8_CC_IRQHandler
   138: 08000331    12 FUNC    GLOBAL DEFAULT    2 DebugMon_Handler
   139: 080005e7    56 FUNC    GLOBAL DEFAULT    2 HAL_NVIC_SetPriority
   140: 080003a9     2 FUNC    WEAK   DEFAULT    2 TIM1_CC_IRQHandler
   141: 08000305     8 FUNC    GLOBAL DEFAULT    2 HardFault_Handler
   142: 00000400     0 NOTYPE  GLOBAL DEFAULT  ABS _Min_Stack_Size
   143: 080003a9     2 FUNC    WEAK   DEFAULT    2 TIM6_IRQHandler
   144: 08000349    12 FUNC    GLOBAL DEFAULT    2 SysTick_Handler
   145: 080003a9     2 FUNC    WEAK   DEFAULT    2 PVD_IRQHandler
   146: 080003a9     2 FUNC    WEAK   DEFAULT    2 SDIO_IRQHandler
   147: 08000e90     0 NOTYPE  GLOBAL DEFAULT  ABS _sidata
   148: 0800033d    12 FUNC    GLOBAL DEFAULT    2 PendSV_Handler
   149: 080002fd     8 FUNC    GLOBAL DEFAULT    2 NMI_Handler
   150: 08000e88     0 NOTYPE  GLOBAL DEFAULT    5 __exidx_end
   151: 080003a9     2 FUNC    WEAK   DEFAULT    2 EXTI3_IRQHandler
   152: 08000d11   168 FUNC    GLOBAL DEFAULT    2 HAL_RCC_GetSysCl[...]
   153: 080002b9    68 FUNC    GLOBAL DEFAULT    2 HAL_MspInit
   154: 08000e64     0 NOTYPE  GLOBAL DEFAULT    2 _etext
   155: 2000000c     0 NOTYPE  GLOBAL DEFAULT   10 _sbss
   156: 080003a9     2 FUNC    WEAK   DEFAULT    2 EXTI0_IRQHandler
   157: 080003a9     2 FUNC    WEAK   DEFAULT    2 I2C2_EV_IRQHandler
   158: 20000000     4 OBJECT  GLOBAL DEFAULT    9 SystemCoreClock
   159: 20000008     1 OBJECT  GLOBAL DEFAULT    9 uwTickFreq
   160: 0800031d     8 FUNC    GLOBAL DEFAULT    2 UsageFault_Handler
   161: 080003a9     2 FUNC    WEAK   DEFAULT    2 ADC1_2_IRQHandler
   162: 2000000c     0 NOTYPE  GLOBAL DEFAULT   10 __bss_start__
   163: 20000000     0 NOTYPE  GLOBAL DEFAULT    9 _sdata
   164: 080003a9     2 FUNC    WEAK   DEFAULT    2 SPI1_IRQHandler
   165: 080003a9     2 FUNC    WEAK   DEFAULT    2 TAMPER_IRQHandler
   166: 20000028     4 OBJECT  GLOBAL DEFAULT   10 uwTick
   167: 08000235   118 FUNC    GLOBAL DEFAULT    2 SystemClock_Config
   168: 0800061f    24 FUNC    GLOBAL DEFAULT    2 HAL_SYSTICK_Config
   169: 080003a9     2 FUNC    WEAK   DEFAULT    2 TIM8_UP_IRQHandler
   170: 08000e88     0 NOTYPE  GLOBAL DEFAULT    5 __exidx_start
   171: 08000e05    72 FUNC    GLOBAL DEFAULT    2 __libc_init_array
   172: 080003a9     2 FUNC    WEAK   DEFAULT    2 DMA2_Channel2_IR[...]
   173: 080003a9     2 FUNC    WEAK   DEFAULT    2 DMA1_Channel4_IR[...]
   174: 08000e4d     0 FUNC    GLOBAL DEFAULT    2 _init
   175: 080003a9     2 FUNC    WEAK   DEFAULT    2 USART3_IRQHandler
   176: 080003a9     2 FUNC    WEAK   DEFAULT    2 RTC_IRQHandler
   177: 2000002c     0 NOTYPE  GLOBAL DEFAULT   10 _ebss
   178: 080003a9     2 FUNC    WEAK   DEFAULT    2 DMA1_Channel7_IR[...]
   179: 08000361    52 FUNC    WEAK   DEFAULT    2 Reset_Handler
   180: 080003a9     2 FUNC    WEAK   DEFAULT    2 CAN1_RX1_IRQHandler
   181: 080003a9     2 FUNC    WEAK   DEFAULT    2 UART5_IRQHandler
   182: 080003a9     2 FUNC    WEAK   DEFAULT    2 ADC3_IRQHandler
   183: 20000004     4 OBJECT  GLOBAL DEFAULT    9 uwTickPrio
   184: 080003ad    44 FUNC    GLOBAL DEFAULT    2 HAL_Init
   185: 080003a9     2 FUNC    WEAK   DEFAULT    2 TIM4_IRQHandler
   186: 080003a9     2 FUNC    WEAK   DEFAULT    2 DMA2_Channel1_IR[...]
   187: 080003a9     2 FUNC    WEAK   DEFAULT    2 I2C1_EV_IRQHandler
   188: 080003a9     2 FUNC    WEAK   DEFAULT    2 DMA1_Channel6_IR[...]
   189: 080003a9     2 FUNC    WEAK   DEFAULT    2 UART4_IRQHandler
   190: 2000002c     0 NOTYPE  GLOBAL DEFAULT   10 __bss_end__
   191: 080003a9     2 FUNC    WEAK   DEFAULT    2 TIM3_IRQHandler
   192: 080003a9     2 FUNC    WEAK   DEFAULT    2 RCC_IRQHandler
   193: 080003a9     2 FUNC    WEAK   DEFAULT    2 TIM1_TRG_COM_IRQ[...]
   194: 00000200     0 NOTYPE  GLOBAL DEFAULT  ABS _Min_Heap_Size
   195: 080003a9     2 FUNC    WEAK   DEFAULT    2 DMA1_Channel1_IR[...]
   196: 080003a8     2 NOTYPE  GLOBAL DEFAULT    2 Default_Handler
   197: 08000e64    16 OBJECT  GLOBAL DEFAULT    3 AHBPrescTable
   198: 080003a9     2 FUNC    WEAK   DEFAULT    2 EXTI15_10_IRQHandler
   199: 08000b3d   468 FUNC    GLOBAL DEFAULT    2 HAL_RCC_ClockConfig
   200: 080005d1    22 FUNC    GLOBAL DEFAULT    2 HAL_NVIC_SetPrio[...]
   201: 080003a9     2 FUNC    WEAK   DEFAULT    2 TIM7_IRQHandler
   202: 080003a9     2 FUNC    WEAK   DEFAULT    2 TIM5_IRQHandler
   203: 080003a9     2 FUNC    WEAK   DEFAULT    2 EXTI9_5_IRQHandler
   204: 0800045d    20 FUNC    WEAK   DEFAULT    2 HAL_GetTick
   205: 080003a9     2 FUNC    WEAK   DEFAULT    2 SPI2_IRQHandler
   206: 08000df5    16 FUNC    GLOBAL DEFAULT    2 memset
   207: 0800030d     8 FUNC    GLOBAL DEFAULT    2 MemManage_Handler
   208: 08000225    16 FUNC    GLOBAL DEFAULT    2 main
   209: 08000325    12 FUNC    GLOBAL DEFAULT    2 SVC_Handler
   210: 080003a9     2 FUNC    WEAK   DEFAULT    2 DMA1_Channel5_IR[...]
   211: 080003a9     2 FUNC    WEAK   DEFAULT    2 EXTI4_IRQHandler
   212: 080003a9     2 FUNC    WEAK   DEFAULT    2 USB_LP_CAN1_RX0_[...]
   213: 08000355    12 FUNC    GLOBAL DEFAULT    2 SystemInit
   214: 08000e59     0 FUNC    GLOBAL DEFAULT    2 _fini
   215: 080003a9     2 FUNC    WEAK   DEFAULT    2 USB_HP_CAN1_TX_I[...]
   216: 080003a9     2 FUNC    WEAK   DEFAULT    2 DMA1_Channel3_IR[...]
   217: 080003d9    96 FUNC    WEAK   DEFAULT    2 HAL_InitTick
   218: 080003a9     2 FUNC    WEAK   DEFAULT    2 FSMC_IRQHandler
   219: 080003a9     2 FUNC    WEAK   DEFAULT    2 TIM1_UP_IRQHandler
   220: 08000439    36 FUNC    WEAK   DEFAULT    2 HAL_IncTick
   221: 080003a9     2 FUNC    WEAK   DEFAULT    2 WWDG_IRQHandler
   222: 080003a9     2 FUNC    WEAK   DEFAULT    2 TIM2_IRQHandler
   223: 080003a9     2 FUNC    WEAK   DEFAULT    2 TIM1_BRK_IRQHandler
   224: 20010000     0 NOTYPE  GLOBAL DEFAULT    1 _estack
   225: 080003a9     2 FUNC    WEAK   DEFAULT    2 EXTI1_IRQHandler
   226: 2000000c     0 NOTYPE  GLOBAL DEFAULT    9 _edata
   227: 20000030     0 NOTYPE  GLOBAL DEFAULT   11 _end
   228: 080003a9     2 FUNC    WEAK   DEFAULT    2 DMA2_Channel4_5_[...]
   229: 080003a9     2 FUNC    WEAK   DEFAULT    2 USART2_IRQHandler
   230: 08000639  1284 FUNC    GLOBAL DEFAULT    2 HAL_RCC_OscConfig
   231: 08000000     0 OBJECT  GLOBAL DEFAULT    1 g_pfnVectors
   232: 080003a9     2 FUNC    WEAK   DEFAULT    2 I2C2_ER_IRQHandler
   233: 080003a9     2 FUNC    WEAK   DEFAULT    2 DMA1_Channel2_IR[...]
   234: 080003a9     2 FUNC    WEAK   DEFAULT    2 TIM8_BRK_IRQHandler
   235: 080003a9     2 FUNC    WEAK   DEFAULT    2 CAN1_SCE_IRQHandler
   236: 080003a9     2 FUNC    WEAK   DEFAULT    2 FLASH_IRQHandler
   237: 08000315     8 FUNC    GLOBAL DEFAULT    2 BusFault_Handler
   238: 080003a9     2 FUNC    WEAK   DEFAULT    2 USART1_IRQHandler
   239: 080003a9     2 FUNC    WEAK   DEFAULT    2 SPI3_IRQHandler
   240: 080003a9     2 FUNC    WEAK   DEFAULT    2 I2C1_ER_IRQHandler
   241: 080003a9     2 FUNC    WEAK   DEFAULT    2 USBWakeUp_IRQHandler
   242: 080003a9     2 FUNC    WEAK   DEFAULT    2 DMA2_Channel3_IR[...]
   243: 080002ab    12 FUNC    GLOBAL DEFAULT    2 Error_Handler

No version information found in this file.
Attribute Section: aeabi
File Attributes
  Tag_CPU_name: "7-M"
  Tag_CPU_arch: v7
  Tag_CPU_arch_profile: Microcontroller
  Tag_THUMB_ISA_use: Thumb-2
  Tag_ABI_PCS_wchar_t: 4
  Tag_ABI_FP_denormal: Needed
  Tag_ABI_FP_exceptions: Needed
  Tag_ABI_FP_number_model: IEEE 754
  Tag_ABI_align_needed: 8-byte

 

Core/Startup/startup_stm32f103retx.s

Reset_Handler:

/* Call the clock system initialization function.*/
    bl  SystemInit

/* Copy the data segment initializers from flash to SRAM */
  ldr r0, =_sdata
  ldr r1, =_edata
  ldr r2, =_sidata
  movs r3, #0
  b LoopCopyDataInit

CopyDataInit:
  ldr r4, [r2, r3]
  str r4, [r0, r3]
  adds r3, r3, #4

LoopCopyDataInit:
  adds r4, r0, r3
  cmp r4, r1
  bcc CopyDataInit

/* Zero fill the bss segment. */
  ldr r2, =_sbss
  ldr r4, =_ebss
  movs r3, #0
  b LoopFillZerobss

FillZerobss:
  str  r3, [r2]
  adds r2, r2, #4

LoopFillZerobss:
  cmp r2, r4
  bcc FillZerobss

/* Call static constructors */
    bl __libc_init_array
/* Call the application's entry point.*/
  bl main
  bx lr
.size Reset_Handler, .-Reset_Handler

 

.text.__libc_init_array
                0x08000e04       0x48 /opt/st/stm32cubeide_1.16.0/plugins/cohttp://m.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.linux64_1.0.200.202406132123/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-init.o)
                0x08000e04                __libc_init_array

 

Core/Src/system_stm32f1xx.c

void SystemInit (void)
{
#if defined(STM32F100xE) || defined(STM32F101xE) || defined(STM32F101xG) || defined(STM32F103xE) || defined(STM32F103xG)
  #ifdef DATA_IN_ExtSRAM
    SystemInit_ExtMemCtl(); 
  #endif /* DATA_IN_ExtSRAM */
#endif 

  /* Configure the Vector Table location -------------------------------------*/
#if defined(USER_VECT_TAB_ADDRESS)
  SCB->VTOR = VECT_TAB_BASE_ADDRESS | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM. */
#endif /* USER_VECT_TAB_ADDRESS */
}

 

---------------------

16:16:42 **** Build of configuration Debug for project cpptest ****
make -j8 all 
arm-none-eabi-gcc "../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c" -mcpu=cortex-m3 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F103xE -c -I../Core/Inc -I../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I../Drivers/STM32F1xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.d" -MT"Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o" --specs=nano.specs -mfloat-abi=soft -mthumb -o "Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o"
arm-none-eabi-gcc "../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c" -mcpu=cortex-m3 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F103xE -c -I../Core/Inc -I../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I../Drivers/STM32F1xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.d" -MT"Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o" --specs=nano.specs -mfloat-abi=soft -mthumb -o "Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o"
arm-none-eabi-gcc "../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c" -mcpu=cortex-m3 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F103xE -c -I../Core/Inc -I../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I../Drivers/STM32F1xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.d" -MT"Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o" --specs=nano.specs -mfloat-abi=soft -mthumb -o "Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o"
arm-none-eabi-gcc "../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c" -mcpu=cortex-m3 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F103xE -c -I../Core/Inc -I../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I../Drivers/STM32F1xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.d" -MT"Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o" --specs=nano.specs -mfloat-abi=soft -mthumb -o "Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o"
arm-none-eabi-gcc "../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c" -mcpu=cortex-m3 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F103xE -c -I../Core/Inc -I../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I../Drivers/STM32F1xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.d" -MT"Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o" --specs=nano.specs -mfloat-abi=soft -mthumb -o "Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o"
arm-none-eabi-gcc "../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c" -mcpu=cortex-m3 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F103xE -c -I../Core/Inc -I../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I../Drivers/STM32F1xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.d" -MT"Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o" --specs=nano.specs -mfloat-abi=soft -mthumb -o "Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o"
arm-none-eabi-gcc "../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c" -mcpu=cortex-m3 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F103xE -c -I../Core/Inc -I../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I../Drivers/STM32F1xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.d" -MT"Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o" --specs=nano.specs -mfloat-abi=soft -mthumb -o "Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o"
arm-none-eabi-gcc "../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c" -mcpu=cortex-m3 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F103xE -c -I../Core/Inc -I../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I../Drivers/STM32F1xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.d" -MT"Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o" --specs=nano.specs -mfloat-abi=soft -mthumb -o "Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o"
arm-none-eabi-gcc "../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c" -mcpu=cortex-m3 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F103xE -c -I../Core/Inc -I../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I../Drivers/STM32F1xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.d" -MT"Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o" --specs=nano.specs -mfloat-abi=soft -mthumb -o "Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o"
arm-none-eabi-gcc "../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c" -mcpu=cortex-m3 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F103xE -c -I../Core/Inc -I../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I../Drivers/STM32F1xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.d" -MT"Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o" --specs=nano.specs -mfloat-abi=soft -mthumb -o "Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o"
arm-none-eabi-gcc "../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c" -mcpu=cortex-m3 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F103xE -c -I../Core/Inc -I../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I../Drivers/STM32F1xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.d" -MT"Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o" --specs=nano.specs -mfloat-abi=soft -mthumb -o "Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o"
arm-none-eabi-gcc -mcpu=cortex-m3 -g3 -DDEBUG -c -x assembler-with-cpp -MMD -MP -MF"Core/Startup/startup_stm32f103retx.d" -MT"Core/Startup/startup_stm32f103retx.o" --specs=nano.specs -mfloat-abi=soft -mthumb -o "Core/Startup/startup_stm32f103retx.o" "../Core/Startup/startup_stm32f103retx.s"
arm-none-eabi-g++ "../Core/Src/main.cpp" -mcpu=cortex-m3 -std=gnu++14 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F103xE -c -I../Core/Inc -I../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I../Drivers/STM32F1xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -fno-exceptions -fno-rtti -fno-use-cxa-atexit -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Core/Src/main.d" -MT"Core/Src/main.o" --specs=nano.specs -mfloat-abi=soft -mthumb -o "Core/Src/main.o"
arm-none-eabi-gcc "../Core/Src/stm32f1xx_hal_msp.c" -mcpu=cortex-m3 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F103xE -c -I../Core/Inc -I../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I../Drivers/STM32F1xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Core/Src/stm32f1xx_hal_msp.d" -MT"Core/Src/stm32f1xx_hal_msp.o" --specs=nano.specs -mfloat-abi=soft -mthumb -o "Core/Src/stm32f1xx_hal_msp.o"
arm-none-eabi-gcc "../Core/Src/stm32f1xx_it.c" -mcpu=cortex-m3 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F103xE -c -I../Core/Inc -I../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I../Drivers/STM32F1xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Core/Src/stm32f1xx_it.d" -MT"Core/Src/stm32f1xx_it.o" --specs=nano.specs -mfloat-abi=soft -mthumb -o "Core/Src/stm32f1xx_it.o"
arm-none-eabi-gcc "../Core/Src/syscalls.c" -mcpu=cortex-m3 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F103xE -c -I../Core/Inc -I../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I../Drivers/STM32F1xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Core/Src/syscalls.d" -MT"Core/Src/syscalls.o" --specs=nano.specs -mfloat-abi=soft -mthumb -o "Core/Src/syscalls.o"
arm-none-eabi-gcc "../Core/Src/sysmem.c" -mcpu=cortex-m3 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F103xE -c -I../Core/Inc -I../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I../Drivers/STM32F1xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Core/Src/sysmem.d" -MT"Core/Src/sysmem.o" --specs=nano.specs -mfloat-abi=soft -mthumb -o "Core/Src/sysmem.o"
arm-none-eabi-gcc "../Core/Src/system_stm32f1xx.c" -mcpu=cortex-m3 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F103xE -c -I../Core/Inc -I../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I../Drivers/STM32F1xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Core/Src/system_stm32f1xx.d" -MT"Core/Src/system_stm32f1xx.o" --specs=nano.specs -mfloat-abi=soft -mthumb -o "Core/Src/system_stm32f1xx.o"
arm-none-eabi-g++ -o "cpptest.elf" @"objects.list"   -mcpu=cortex-m3 -T"/home/user/STM32CubeIDE/workspace_1.15.0_cpp/cpptest/STM32F103RETX_FLASH.ld" --specs=nosys.specs -Wl,-Map="cpptest.map" -Wl,--gc-sections -static --specs=nano.specs -mfloat-abi=soft -mthumb -Wl,--start-group -lc -lm -lstdc++ -lsupc++ -Wl,--end-group
Finished building target: cpptest.elf
 
arm-none-eabi-size  cpptest.elf 
arm-none-eabi-objdump -h -S cpptest.elf  > "cpptest.list"
   text    data     bss     dec     hex filename
   3748      12    1572    5332    14d4 cpptest.elf
Finished building: default.size.stdout
 
Finished building: cpptest.list
 

16:16:43 Build Finished. 0 errors, 0 warnings. (took 796ms)

 

main.c 일때 비해 용량이 늘었...나?

arm-none-eabi-objdump -h -S cpptest.elf  > "cpptest.list"
   text    data     bss     dec     hex filename
   3728      12    1572    5312    14c0 cpptest.elf
Finished building: default.size.stdout

 

main.cpp가 되고 나서 마지막 두줄이 생겼다?

$ arm-linux-gnueabihf-readelf -a cpptest.elf
ELF Header:
  Magic:   7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 
  Class:                             ELF32
  Data:                              2's complement, little endian
  Version:                           1 (current)
  OS/ABI:                            UNIX - System V
  ABI Version:                       0
  Type:                              EXEC (Executable file)
  Machine:                           ARM
  Version:                           0x1
  Entry point address:               0x8000375
  Start of program headers:          52 (bytes into file)
  Start of section headers:          714648 (bytes into file)
  Flags:                             0x5000200, Version5 EABI, soft-float ABI
  Size of this header:               52 (bytes)
  Size of program headers:           32 (bytes)
  Number of program headers:         3
  Size of section headers:           40 (bytes)
  Number of section headers:         26
  Section header string table index: 25

Section Headers:
  [Nr] Name              Type            Addr     Off    Size   ES Flg Lk Inf Al
  [ 0]                   NULL            00000000 000000 000000 00      0   0  0
  [ 1] .isr_vector       PROGBITS        08000000 001000 0001e4 00   A  0   0  1
  [ 2] .text             PROGBITS        080001e4 0011e4 000c94 00  AX  0   0  4
  [ 3] .rodata           PROGBITS        08000e78 001e78 000024 00   A  0   0  4
  [ 4] .ARM.extab        PROGBITS        08000e9c 00200c 000000 00   W  0   0  1
  [ 5] .ARM              PROGBITS        08000e9c 00200c 000000 00   W  0   0  1
  [ 6] .preinit_array    PREINIT_ARRAY   08000e9c 00200c 000000 04  WA  0   0  1
  [ 7] .init_array       INIT_ARRAY      08000e9c 001e9c 000004 04   A  0   0  4
  [ 8] .fini_array       FINI_ARRAY      08000ea0 001ea0 000004 04   A  0   0  4
  [ 9] .data             PROGBITS        20000000 002000 00000c 00  WA  0   0  4
  [10] .bss              NOBITS          2000000c 00200c 000020 00  WA  0   0  4
  [11] ._user_heap_stack NOBITS          2000002c 00202c 000604 00  WA  0   0  1
  [12] .ARM.attributes   ARM_ATTRIBUTES  00000000 00200c 000029 00      0   0  1
  [13] .debug_info       PROGBITS        00000000 002035 002195 00      0   0  1
  [14] .debug_abbrev     PROGBITS        00000000 0041ca 000ba7 00      0   0  1
  [15] .debug_aranges    PROGBITS        00000000 004d78 000370 00      0   0  8
  [16] .debug_rnglists   PROGBITS        00000000 0050e8 000273 00      0   0  1
  [17] .debug_macro      PROGBITS        00000000 00535b 019149 00      0   0  1
  [18] .debug_line       PROGBITS        00000000 01e4a4 003a21 00      0   0  1
  [19] .debug_str        PROGBITS        00000000 021ec5 08a262 01  MS  0   0  1
  [20] .comment          PROGBITS        00000000 0ac127 000043 01  MS  0   0  1
  [21] .debug_frame      PROGBITS        00000000 0ac16c 000bbc 00      0   0  4
  [22] .debug_line_str   PROGBITS        00000000 0acd28 000066 01  MS  0   0  1
  [23] .symtab           SYMTAB          00000000 0acd90 000f40 10     24 134  4
  [24] .strtab           STRTAB          00000000 0adcd0 0009aa 00      0   0  1
  [25] .shstrtab         STRTAB          00000000 0ae67a 00011c 00      0   0  1
Key to Flags:
  W (write), A (alloc), X (execute), M (merge), S (strings), I (info),
  L (link order), O (extra OS processing required), G (group), T (TLS),
  C (compressed), x (unknown), o (OS specific), E (exclude),
  D (mbind), y (purecode), p (processor specific)

There are no section groups in this file.

Program Headers:
  Type           Offset   VirtAddr   PhysAddr   FileSiz MemSiz  Flg Align
  LOAD           0x001000 0x08000000 0x08000000 0x00ea4 0x00ea4 R E 0x1000
  LOAD           0x002000 0x20000000 0x08000ea4 0x0000c 0x0002c RW  0x1000
  LOAD           0x00002c 0x2000002c 0x08000eb0 0x00000 0x00604 RW  0x1000

 Section to Segment mapping:
  Segment Sections...
   00     .isr_vector .text .rodata .init_array .fini_array 
   01     .data .bss 
   02     ._user_heap_stack 

There is no dynamic section in this file.

There are no relocations in this file.

There are no unwind sections in this file.

Symbol table '.symtab' contains 244 entries:
   Num:    Value  Size Type    Bind   Vis      Ndx Name
     0: 00000000     0 NOTYPE  LOCAL  DEFAULT  UND 
     1: 08000000     0 SECTION LOCAL  DEFAULT    1 .isr_vector
     2: 080001e4     0 SECTION LOCAL  DEFAULT    2 .text
     3: 08000e78     0 SECTION LOCAL  DEFAULT    3 .rodata
     4: 08000e9c     0 SECTION LOCAL  DEFAULT    4 .ARM.extab
     5: 08000e9c     0 SECTION LOCAL  DEFAULT    5 .ARM
     6: 08000e9c     0 SECTION LOCAL  DEFAULT    6 .preinit_array
     7: 08000e9c     0 SECTION LOCAL  DEFAULT    7 .init_array
     8: 08000ea0     0 SECTION LOCAL  DEFAULT    8 .fini_array
     9: 20000000     0 SECTION LOCAL  DEFAULT    9 .data
    10: 2000000c     0 SECTION LOCAL  DEFAULT   10 .bss
    11: 2000002c     0 SECTION LOCAL  DEFAULT   11 ._user_heap_stack
    12: 00000000     0 SECTION LOCAL  DEFAULT   12 .ARM.attributes
    13: 00000000     0 SECTION LOCAL  DEFAULT   13 .debug_info
    14: 00000000     0 SECTION LOCAL  DEFAULT   14 .debug_abbrev
    15: 00000000     0 SECTION LOCAL  DEFAULT   15 .debug_aranges
    16: 00000000     0 SECTION LOCAL  DEFAULT   16 .debug_rnglists
    17: 00000000     0 SECTION LOCAL  DEFAULT   17 .debug_macro
    18: 00000000     0 SECTION LOCAL  DEFAULT   18 .debug_line
    19: 00000000     0 SECTION LOCAL  DEFAULT   19 .debug_str
    20: 00000000     0 SECTION LOCAL  DEFAULT   20 .comment
    21: 00000000     0 SECTION LOCAL  DEFAULT   21 .debug_frame
    22: 00000000     0 SECTION LOCAL  DEFAULT   22 .debug_line_str
    23: 00000000     0 FILE    LOCAL  DEFAULT  ABS startup_stm32f10[...]
    24: f1e0f85f     0 NOTYPE  LOCAL  DEFAULT  ABS BootRAM
    25: 08000374     0 NOTYPE  LOCAL  DEFAULT    2 $t
    26: 08000388     0 NOTYPE  LOCAL  DEFAULT    2 LoopCopyDataInit
    27: 08000382     0 NOTYPE  LOCAL  DEFAULT    2 CopyDataInit
    28: 0800039a     0 NOTYPE  LOCAL  DEFAULT    2 LoopFillZerobss
    29: 08000396     0 NOTYPE  LOCAL  DEFAULT    2 FillZerobss
    30: 080003bc     0 NOTYPE  LOCAL  DEFAULT    2 Infinite_Loop
    31: 080003bc     0 NOTYPE  LOCAL  DEFAULT    2 $t
    32: 080003a8     0 NOTYPE  LOCAL  DEFAULT    2 $d
    33: 00000000     0 FILE    LOCAL  DEFAULT  ABS crtbegin.o
    34: 08000e60     0 OBJECT  LOCAL  DEFAULT    2 __EH_FRAME_BEGIN__
    35: 080001e4     0 NOTYPE  LOCAL  DEFAULT    2 $t
    36: 080001e5     0 FUNC    LOCAL  DEFAULT    2 __do_global_dtors_aux
    37: 080001fc     0 NOTYPE  LOCAL  DEFAULT    2 $d
    38: 2000000c     1 NOTYPE  LOCAL  DEFAULT   10 completed.1
    39: 08000ea0     0 NOTYPE  LOCAL  DEFAULT    8 $d
    40: 08000ea0     0 OBJECT  LOCAL  DEFAULT    8 __do_global_dtor[...]
    41: 08000208     0 NOTYPE  LOCAL  DEFAULT    2 $t
    42: 08000209     0 FUNC    LOCAL  DEFAULT    2 frame_dummy
    43: 08000218     0 NOTYPE  LOCAL  DEFAULT    2 $d
    44: 20000010    24 NOTYPE  LOCAL  DEFAULT   10 object.0
    45: 08000e9c     0 NOTYPE  LOCAL  DEFAULT    7 $d
    46: 08000e9c     0 OBJECT  LOCAL  DEFAULT    7 __frame_dummy_in[...]
    47: 2000000c     0 NOTYPE  LOCAL  DEFAULT   10 $d
    48: 00000000     0 FILE    LOCAL  DEFAULT  ABS main.cpp
    49: 08000224     0 NOTYPE  LOCAL  DEFAULT    2 $t
    50: 08000234     0 NOTYPE  LOCAL  DEFAULT    2 $t
    51: 080002be     0 NOTYPE  LOCAL  DEFAULT    2 $t
    52: 00000000     0 FILE    LOCAL  DEFAULT  ABS stm32f1xx_hal_msp.c
    53: 080002cc     0 NOTYPE  LOCAL  DEFAULT    2 $t
    54: 0800030c     0 NOTYPE  LOCAL  DEFAULT    2 $d
    55: 00000000     0 FILE    LOCAL  DEFAULT  ABS stm32f1xx_it.c
    56: 08000310     0 NOTYPE  LOCAL  DEFAULT    2 $t
    57: 08000318     0 NOTYPE  LOCAL  DEFAULT    2 $t
    58: 08000320     0 NOTYPE  LOCAL  DEFAULT    2 $t
    59: 08000328     0 NOTYPE  LOCAL  DEFAULT    2 $t
    60: 08000330     0 NOTYPE  LOCAL  DEFAULT    2 $t
    61: 08000338     0 NOTYPE  LOCAL  DEFAULT    2 $t
    62: 08000344     0 NOTYPE  LOCAL  DEFAULT    2 $t
    63: 08000350     0 NOTYPE  LOCAL  DEFAULT    2 $t
    64: 0800035c     0 NOTYPE  LOCAL  DEFAULT    2 $t
    65: 00000000     0 FILE    LOCAL  DEFAULT  ABS system_stm32f1xx.c
    66: 20000000     0 NOTYPE  LOCAL  DEFAULT    9 $d
    67: 08000e78     0 NOTYPE  LOCAL  DEFAULT    3 $d
    68: 08000368     0 NOTYPE  LOCAL  DEFAULT    2 $t
    69: 00000000     0 FILE    LOCAL  DEFAULT  ABS stm32f1xx_hal.c
    70: 20000028     0 NOTYPE  LOCAL  DEFAULT   10 $d
    71: 20000004     0 NOTYPE  LOCAL  DEFAULT    9 $d
    72: 080003c0     0 NOTYPE  LOCAL  DEFAULT    2 $t
    73: 080003e8     0 NOTYPE  LOCAL  DEFAULT    2 $d
    74: 080003ec     0 NOTYPE  LOCAL  DEFAULT    2 $t
    75: 08000440     0 NOTYPE  LOCAL  DEFAULT    2 $d
    76: 0800044c     0 NOTYPE  LOCAL  DEFAULT    2 $t
    77: 08000468     0 NOTYPE  LOCAL  DEFAULT    2 $d
    78: 08000470     0 NOTYPE  LOCAL  DEFAULT    2 $t
    79: 08000480     0 NOTYPE  LOCAL  DEFAULT    2 $d
    80: 00000000     0 FILE    LOCAL  DEFAULT  ABS stm32f1xx_hal_co[...]
    81: 08000484     0 NOTYPE  LOCAL  DEFAULT    2 $t
    82: 08000485    72 FUNC    LOCAL  DEFAULT    2 __NVIC_SetPriori[...]
    83: 080004c8     0 NOTYPE  LOCAL  DEFAULT    2 $d
    84: 080004cc     0 NOTYPE  LOCAL  DEFAULT    2 $t
    85: 080004cd    28 FUNC    LOCAL  DEFAULT    2 __NVIC_GetPriori[...]
    86: 080004e4     0 NOTYPE  LOCAL  DEFAULT    2 $d
    87: 080004e8     0 NOTYPE  LOCAL  DEFAULT    2 $t
    88: 080004e9    84 FUNC    LOCAL  DEFAULT    2 __NVIC_SetPriority
    89: 08000534     0 NOTYPE  LOCAL  DEFAULT    2 $d
    90: 0800053c     0 NOTYPE  LOCAL  DEFAULT    2 $t
    91: 0800053d   100 FUNC    LOCAL  DEFAULT    2 NVIC_EncodePriority
    92: 080005a0     0 NOTYPE  LOCAL  DEFAULT    2 $t
    93: 080005a1    68 FUNC    LOCAL  DEFAULT    2 SysTick_Config
    94: 080005e0     0 NOTYPE  LOCAL  DEFAULT    2 $d
    95: 080005e4     0 NOTYPE  LOCAL  DEFAULT    2 $t
    96: 080005fa     0 NOTYPE  LOCAL  DEFAULT    2 $t
    97: 08000632     0 NOTYPE  LOCAL  DEFAULT    2 $t
    98: 00000000     0 FILE    LOCAL  DEFAULT  ABS stm32f1xx_hal_rcc.c
    99: 0800064c     0 NOTYPE  LOCAL  DEFAULT    2 $t
   100: 08000dcd    60 FUNC    LOCAL  DEFAULT    2 RCC_Delay
   101: 080008b8     0 NOTYPE  LOCAL  DEFAULT    2 $d
   102: 080008c4     0 NOTYPE  LOCAL  DEFAULT    2 $t
   103: 08000b10     0 NOTYPE  LOCAL  DEFAULT    2 $d
   104: 08000b1c     0 NOTYPE  LOCAL  DEFAULT    2 $t
   105: 08000b4c     0 NOTYPE  LOCAL  DEFAULT    2 $d
   106: 08000b50     0 NOTYPE  LOCAL  DEFAULT    2 $t
   107: 08000d10     0 NOTYPE  LOCAL  DEFAULT    2 $d
   108: 08000d24     0 NOTYPE  LOCAL  DEFAULT    2 $t
   109: 08000db8     0 NOTYPE  LOCAL  DEFAULT    2 $d
   110: 08000e88    16 OBJECT  LOCAL  DEFAULT    3 aPLLMULFactorTable.1
   111: 08000e98     2 OBJECT  LOCAL  DEFAULT    3 aPredivFactorTable.0
   112: 08000dcc     0 NOTYPE  LOCAL  DEFAULT    2 $t
   113: 08000e00     0 NOTYPE  LOCAL  DEFAULT    2 $d
   114: 08000e88     0 NOTYPE  LOCAL  DEFAULT    3 $d
   115: 08000e98     0 NOTYPE  LOCAL  DEFAULT    3 $d
   116: 00000000     0 FILE    LOCAL  DEFAULT  ABS libc_a-memset.o
   117: 08000e08     0 NOTYPE  LOCAL  DEFAULT    2 $t
   118: 00000000     0 FILE    LOCAL  DEFAULT  ABS libc_a-init.o
   119: 08000e18     0 NOTYPE  LOCAL  DEFAULT    2 $t
   120: 08000e50     0 NOTYPE  LOCAL  DEFAULT    2 $d
   121: 00000000     0 FILE    LOCAL  DEFAULT  ABS crti.o
   122: 08000e60     0 NOTYPE  LOCAL  DEFAULT    2 $t
   123: 08000e6c     0 NOTYPE  LOCAL  DEFAULT    2 $t
   124: 00000000     0 FILE    LOCAL  DEFAULT  ABS crtn.o
   125: 08000e64     0 NOTYPE  LOCAL  DEFAULT    2 $t
   126: 08000e70     0 NOTYPE  LOCAL  DEFAULT    2 $t
   127: 00000000     0 FILE    LOCAL  DEFAULT  ABS 
   128: 08000ea0     0 NOTYPE  LOCAL  DEFAULT    7 __init_array_end
   129: 08000e9c     0 NOTYPE  LOCAL  DEFAULT    6 __preinit_array_end
   130: 08000e9c     0 NOTYPE  LOCAL  DEFAULT    7 __init_array_start
   131: 08000e9c     0 NOTYPE  LOCAL  DEFAULT    6 __preinit_array_start
   132: 08000000     0 NOTYPE  LOCAL  DEFAULT    1 $d
   133: 20000008     0 NOTYPE  LOCAL  DEFAULT    9 $d
   134: 080003bd     2 FUNC    WEAK   DEFAULT    2 RTC_Alarm_IRQHandler
   135: 080003bd     2 FUNC    WEAK   DEFAULT    2 EXTI2_IRQHandler
   136: 080003bd     2 FUNC    WEAK   DEFAULT    2 TIM8_TRG_COM_IRQ[...]
   137: 080003bd     2 FUNC    WEAK   DEFAULT    2 TIM8_CC_IRQHandler
   138: 08000345    12 FUNC    GLOBAL DEFAULT    2 DebugMon_Handler
   139: 080005fb    56 FUNC    GLOBAL DEFAULT    2 HAL_NVIC_SetPriority
   140: 080003bd     2 FUNC    WEAK   DEFAULT    2 TIM1_CC_IRQHandler
   141: 08000319     8 FUNC    GLOBAL DEFAULT    2 HardFault_Handler
   142: 00000400     0 NOTYPE  GLOBAL DEFAULT  ABS _Min_Stack_Size
   143: 080003bd     2 FUNC    WEAK   DEFAULT    2 TIM6_IRQHandler
   144: 0800035d    12 FUNC    GLOBAL DEFAULT    2 SysTick_Handler
   145: 080003bd     2 FUNC    WEAK   DEFAULT    2 PVD_IRQHandler
   146: 080003bd     2 FUNC    WEAK   DEFAULT    2 SDIO_IRQHandler
   147: 08000ea4     0 NOTYPE  GLOBAL DEFAULT  ABS _sidata
   148: 08000351    12 FUNC    GLOBAL DEFAULT    2 PendSV_Handler
   149: 08000311     8 FUNC    GLOBAL DEFAULT    2 NMI_Handler
   150: 08000e9c     0 NOTYPE  GLOBAL DEFAULT    5 __exidx_end
   151: 080003bd     2 FUNC    WEAK   DEFAULT    2 EXTI3_IRQHandler
   152: 08000d25   168 FUNC    GLOBAL DEFAULT    2 HAL_RCC_GetSysCl[...]
   153: 080002cd    68 FUNC    GLOBAL DEFAULT    2 HAL_MspInit
   154: 08000e78     0 NOTYPE  GLOBAL DEFAULT    2 _etext
   155: 2000000c     0 NOTYPE  GLOBAL DEFAULT   10 _sbss
   156: 080003bd     2 FUNC    WEAK   DEFAULT    2 EXTI0_IRQHandler
   157: 080003bd     2 FUNC    WEAK   DEFAULT    2 I2C2_EV_IRQHandler
   158: 20000000     4 OBJECT  GLOBAL DEFAULT    9 SystemCoreClock
   159: 20000008     1 OBJECT  GLOBAL DEFAULT    9 uwTickFreq
   160: 08000331     8 FUNC    GLOBAL DEFAULT    2 UsageFault_Handler
   161: 080003bd     2 FUNC    WEAK   DEFAULT    2 ADC1_2_IRQHandler
   162: 2000000c     0 NOTYPE  GLOBAL DEFAULT   10 __bss_start__
   163: 20000000     0 NOTYPE  GLOBAL DEFAULT    9 _sdata
   164: 080003bd     2 FUNC    WEAK   DEFAULT    2 SPI1_IRQHandler
   165: 080003bd     2 FUNC    WEAK   DEFAULT    2 TAMPER_IRQHandler
   166: 20000028     4 OBJECT  GLOBAL DEFAULT   10 uwTick
   167: 08000633    24 FUNC    GLOBAL DEFAULT    2 HAL_SYSTICK_Config
   168: 080003bd     2 FUNC    WEAK   DEFAULT    2 TIM8_UP_IRQHandler
   169: 08000e9c     0 NOTYPE  GLOBAL DEFAULT    5 __exidx_start
   170: 08000e19    72 FUNC    GLOBAL DEFAULT    2 __libc_init_array
   171: 080003bd     2 FUNC    WEAK   DEFAULT    2 DMA2_Channel2_IR[...]
   172: 080003bd     2 FUNC    WEAK   DEFAULT    2 DMA1_Channel4_IR[...]
   173: 08000e61     0 FUNC    GLOBAL DEFAULT    2 _init
   174: 080003bd     2 FUNC    WEAK   DEFAULT    2 USART3_IRQHandler
   175: 080003bd     2 FUNC    WEAK   DEFAULT    2 RTC_IRQHandler
   176: 2000002c     0 NOTYPE  GLOBAL DEFAULT   10 _ebss
   177: 080003bd     2 FUNC    WEAK   DEFAULT    2 DMA1_Channel7_IR[...]
   178: 08000375    52 FUNC    WEAK   DEFAULT    2 Reset_Handler
   179: 080003bd     2 FUNC    WEAK   DEFAULT    2 CAN1_RX1_IRQHandler
   180: 080003bd     2 FUNC    WEAK   DEFAULT    2 UART5_IRQHandler
   181: 080003bd     2 FUNC    WEAK   DEFAULT    2 ADC3_IRQHandler
   182: 20000004     4 OBJECT  GLOBAL DEFAULT    9 uwTickPrio
   183: 080003c1    44 FUNC    GLOBAL DEFAULT    2 HAL_Init
   184: 080003bd     2 FUNC    WEAK   DEFAULT    2 TIM4_IRQHandler
   185: 080003bd     2 FUNC    WEAK   DEFAULT    2 DMA2_Channel1_IR[...]
   186: 080003bd     2 FUNC    WEAK   DEFAULT    2 I2C1_EV_IRQHandler
   187: 080003bd     2 FUNC    WEAK   DEFAULT    2 DMA1_Channel6_IR[...]
   188: 080003bd     2 FUNC    WEAK   DEFAULT    2 UART4_IRQHandler
   189: 2000002c     0 NOTYPE  GLOBAL DEFAULT   10 __bss_end__
   190: 080003bd     2 FUNC    WEAK   DEFAULT    2 TIM3_IRQHandler
   191: 080003bd     2 FUNC    WEAK   DEFAULT    2 RCC_IRQHandler
   192: 080003bd     2 FUNC    WEAK   DEFAULT    2 TIM1_TRG_COM_IRQ[...]
   193: 00000200     0 NOTYPE  GLOBAL DEFAULT  ABS _Min_Heap_Size
   194: 080003bd     2 FUNC    WEAK   DEFAULT    2 DMA1_Channel1_IR[...]
   195: 080003bc     2 NOTYPE  GLOBAL DEFAULT    2 Default_Handler
   196: 08000e78    16 OBJECT  GLOBAL DEFAULT    3 AHBPrescTable
   197: 080003bd     2 FUNC    WEAK   DEFAULT    2 EXTI15_10_IRQHandler
   198: 08000b51   468 FUNC    GLOBAL DEFAULT    2 HAL_RCC_ClockConfig
   199: 080005e5    22 FUNC    GLOBAL DEFAULT    2 HAL_NVIC_SetPrio[...]
   200: 080003bd     2 FUNC    WEAK   DEFAULT    2 TIM7_IRQHandler
   201: 080003bd     2 FUNC    WEAK   DEFAULT    2 TIM5_IRQHandler
   202: 080003bd     2 FUNC    WEAK   DEFAULT    2 EXTI9_5_IRQHandler
   203: 08000471    20 FUNC    WEAK   DEFAULT    2 HAL_GetTick
   204: 080003bd     2 FUNC    WEAK   DEFAULT    2 SPI2_IRQHandler
   205: 08000e09    16 FUNC    GLOBAL DEFAULT    2 memset
   206: 08000321     8 FUNC    GLOBAL DEFAULT    2 MemManage_Handler
   207: 08000225    16 FUNC    GLOBAL DEFAULT    2 main
   208: 08000339    12 FUNC    GLOBAL DEFAULT    2 SVC_Handler
   209: 080003bd     2 FUNC    WEAK   DEFAULT    2 DMA1_Channel5_IR[...]
   210: 080003bd     2 FUNC    WEAK   DEFAULT    2 EXTI4_IRQHandler
   211: 080003bd     2 FUNC    WEAK   DEFAULT    2 USB_LP_CAN1_RX0_[...]
   212: 08000369    12 FUNC    GLOBAL DEFAULT    2 SystemInit
   213: 08000e6d     0 FUNC    GLOBAL DEFAULT    2 _fini
   214: 080003bd     2 FUNC    WEAK   DEFAULT    2 USB_HP_CAN1_TX_I[...]
   215: 080003bd     2 FUNC    WEAK   DEFAULT    2 DMA1_Channel3_IR[...]
   216: 080003ed    96 FUNC    WEAK   DEFAULT    2 HAL_InitTick
   217: 080003bd     2 FUNC    WEAK   DEFAULT    2 FSMC_IRQHandler
   218: 080003bd     2 FUNC    WEAK   DEFAULT    2 TIM1_UP_IRQHandler
   219: 0800044d    36 FUNC    WEAK   DEFAULT    2 HAL_IncTick
   220: 080003bd     2 FUNC    WEAK   DEFAULT    2 WWDG_IRQHandler
   221: 080003bd     2 FUNC    WEAK   DEFAULT    2 TIM2_IRQHandler
   222: 080003bd     2 FUNC    WEAK   DEFAULT    2 TIM1_BRK_IRQHandler
   223: 20010000     0 NOTYPE  GLOBAL DEFAULT    1 _estack
   224: 080003bd     2 FUNC    WEAK   DEFAULT    2 EXTI1_IRQHandler
   225: 2000000c     0 NOTYPE  GLOBAL DEFAULT    9 _edata
   226: 20000030     0 NOTYPE  GLOBAL DEFAULT   11 _end
   227: 080003bd     2 FUNC    WEAK   DEFAULT    2 DMA2_Channel4_5_[...]
   228: 080003bd     2 FUNC    WEAK   DEFAULT    2 USART2_IRQHandler
   229: 0800064d  1284 FUNC    GLOBAL DEFAULT    2 HAL_RCC_OscConfig
   230: 08000000     0 OBJECT  GLOBAL DEFAULT    1 g_pfnVectors
   231: 08000235   138 FUNC    GLOBAL DEFAULT    2 _Z18SystemClock_[...]
   232: 080003bd     2 FUNC    WEAK   DEFAULT    2 I2C2_ER_IRQHandler
   233: 080003bd     2 FUNC    WEAK   DEFAULT    2 DMA1_Channel2_IR[...]
   234: 080003bd     2 FUNC    WEAK   DEFAULT    2 TIM8_BRK_IRQHandler
   235: 080003bd     2 FUNC    WEAK   DEFAULT    2 CAN1_SCE_IRQHandler
   236: 080003bd     2 FUNC    WEAK   DEFAULT    2 FLASH_IRQHandler
   237: 08000329     8 FUNC    GLOBAL DEFAULT    2 BusFault_Handler
   238: 080003bd     2 FUNC    WEAK   DEFAULT    2 USART1_IRQHandler
   239: 080003bd     2 FUNC    WEAK   DEFAULT    2 SPI3_IRQHandler
   240: 080003bd     2 FUNC    WEAK   DEFAULT    2 I2C1_ER_IRQHandler
   241: 080003bd     2 FUNC    WEAK   DEFAULT    2 USBWakeUp_IRQHandler
   242: 080003bd     2 FUNC    WEAK   DEFAULT    2 DMA2_Channel3_IR[...]
   243: 080002bf    12 FUNC    GLOBAL DEFAULT    2 Error_Handler

No version information found in this file.
Attribute Section: aeabi
File Attributes
  Tag_CPU_name: "7-M"
  Tag_CPU_arch: v7
  Tag_CPU_arch_profile: Microcontroller
  Tag_THUMB_ISA_use: Thumb-2
  Tag_ABI_PCS_wchar_t: 4
  Tag_ABI_FP_denormal: Needed
  Tag_ABI_FP_exceptions: Needed
  Tag_ABI_FP_number_model: IEEE 754
  Tag_ABI_align_needed: 8-byte
  Tag_ABI_enum_size: small
  Tag_CPU_unaligned_access: v6

 

맹글링 되면서 이름이 바뀌었을 뿐 크게 달라지는 건 없는 것 같다.

main.c main.cpp
__bss_end__
__exidx_start
__libc_init_array
_ebss
_edata
_end
_estack
_fini
_init
_Min_Heap_Size

ADC3_IRQHandler
AHBPrescTable
BusFault_Handler
CAN1_RX1_IRQHandler
CAN1_SCE_IRQHandler
Default_Handler
DMA1_Channel1_IR[...]
DMA1_Channel2_IR[...]
DMA1_Channel3_IR[...]
DMA1_Channel4_IR[...]
DMA1_Channel5_IR[...]
DMA1_Channel6_IR[...]
DMA1_Channel7_IR[...]
DMA2_Channel1_IR[...]
DMA2_Channel2_IR[...]
DMA2_Channel3_IR[...]
DMA2_Channel4_5_[...]
Error_Handler
EXTI1_IRQHandler
EXTI15_10_IRQHandler
EXTI4_IRQHandler
EXTI9_5_IRQHandler
FLASH_IRQHandler
FSMC_IRQHandler
g_pfnVectors
HAL_GetTick
HAL_IncTick
HAL_Init
HAL_InitTick
HAL_NVIC_SetPrio[...]
HAL_RCC_ClockConfig
HAL_RCC_OscConfig
HAL_SYSTICK_Config
I2C1_ER_IRQHandler
I2C1_EV_IRQHandler
I2C2_ER_IRQHandler
main
MemManage_Handler
memset
RCC_IRQHandler
Reset_Handler
RTC_IRQHandler
SPI2_IRQHandler
SPI3_IRQHandler
SVC_Handler
SystemClock_Config
SystemInit
TIM1_BRK_IRQHandler
TIM1_TRG_COM_IRQ[...]
TIM1_UP_IRQHandler
TIM2_IRQHandler
TIM3_IRQHandler
TIM4_IRQHandler
TIM5_IRQHandler
TIM7_IRQHandler
TIM8_BRK_IRQHandler
TIM8_UP_IRQHandler
UART4_IRQHandler
UART5_IRQHandler
USART1_IRQHandler
USART2_IRQHandler
USART3_IRQHandler
USB_HP_CAN1_TX_I[...]
USB_LP_CAN1_RX0_[...]
USBWakeUp_IRQHandler
uwTickPrio
WWDG_IRQHandler
__bss_end__
__exidx_start
__libc_init_array
_ebss
_edata
_end
_estack
_fini
_init
_Min_Heap_Size
_Z18SystemClock_[...]
ADC3_IRQHandler
AHBPrescTable
BusFault_Handler
CAN1_RX1_IRQHandler
CAN1_SCE_IRQHandler
Default_Handler
DMA1_Channel1_IR[...]
DMA1_Channel2_IR[...]
DMA1_Channel3_IR[...]
DMA1_Channel4_IR[...]
DMA1_Channel5_IR[...]
DMA1_Channel6_IR[...]
DMA1_Channel7_IR[...]
DMA2_Channel1_IR[...]
DMA2_Channel2_IR[...]
DMA2_Channel3_IR[...]
DMA2_Channel4_5_[...]
Error_Handler
EXTI1_IRQHandler
EXTI15_10_IRQHandler
EXTI4_IRQHandler
EXTI9_5_IRQHandler
FLASH_IRQHandler
FSMC_IRQHandler
g_pfnVectors
HAL_GetTick
HAL_IncTick
HAL_Init
HAL_InitTick
HAL_NVIC_SetPrio[...]
HAL_RCC_ClockConfig
HAL_RCC_OscConfig
HAL_SYSTICK_Config
I2C1_ER_IRQHandler
I2C1_EV_IRQHandler
I2C2_ER_IRQHandler
main
MemManage_Handler
memset
RCC_IRQHandler
Reset_Handler
RTC_IRQHandler
SPI2_IRQHandler
SPI3_IRQHandler
SVC_Handler

SystemInit
TIM1_BRK_IRQHandler
TIM1_TRG_COM_IRQ[...]
TIM1_UP_IRQHandler
TIM2_IRQHandler
TIM3_IRQHandler
TIM4_IRQHandler
TIM5_IRQHandler
TIM7_IRQHandler
TIM8_BRK_IRQHandler
TIM8_UP_IRQHandler
UART4_IRQHandler
UART5_IRQHandler
USART1_IRQHandler
USART2_IRQHandler
USART3_IRQHandler
USB_HP_CAN1_TX_I[...]
USB_LP_CAN1_RX0_[...]
USBWakeUp_IRQHandler
uwTickPrio
WWDG_IRQHandler

'embeded > Cortex-M3 STM' 카테고리의 다른 글

stm32 eeprom emulation  (0) 2025.07.29
stm32f103ret flash program / erase 테스트  (0) 2025.07.28
HAL_FLASH_Program  (0) 2025.07.21
stm32cubeide build analyzer  (0) 2025.07.21
stm32 wwdg, iwdg 차이  (0) 2025.06.30
Posted by 구차니
embeded/arduino(genuino)2025. 8. 7. 18:19

예전에 파트명이랑 데이터 시트도 찾지 못했던 부품인데

이래저래 안되서 과감하게 파괴!

우측에 빨간색 원이 있는 쪽이 캔의 구멍을 통해 들어오는 소리에 반응을 하나보다.

그리고 좌측의 6개 구멍을 통해 무엇을 하는거 같진 않고

FET를 통해 전기가 증폭되어 출력을 하는걸려나?

 

FET 로 추정되는 녀석 파트번호

 

온세미꺼라는 보장은 없지만 마킹은 맞는거 같기도..

 

B 랭크 부품인가?

Drain Current 150~240uA 전류가 더 높게 출력되네? 범위도 넓고

다만 gain 쪽은 -3.8 dB로 A 랭크의 -5.0 dB에 비하면 낮다.

 

[링크 : https://www.alldatasheet.com/datasheet-pdf/view/546130/ONSEMI/2SK596S-B.html]

'embeded > arduino(genuino)' 카테고리의 다른 글

HW-504 이상해..  (0) 2025.08.02
ads1115 복수 장치 읽기  (0) 2025.08.02
패시브 부저  (0) 2025.08.01
nRF24L01 복수 장치 통신  (0) 2025.07.29
오랫만에 부품지름  (0) 2025.07.29
Posted by 구차니