Products       Learn       Buy       Support       Company
 
  Home > Products > Kernel > smxCF
   
 
Kernel Products


smxCF™


ColdFire RTOS Kernel

smxCF is the smx real-time multitasking RTOS kernel for ColdFire processors. This datasheet only lists details for this architecture. For full information see:


Processors Supported
  • 52xxx, 53xxx, 54xxx

See www.smxrtos.com/processors for Processors Supported chart.
See www.smxrtos.com/eval for free Evaluation Kits for common boards.


Development Tools Supported

  • Metrowerks CodeWarrior
  • Diab Data C/C++ Compiler and visionCLICK.

Development System Requirements

  • Windows 9x, 2000, ME, NT 4, or XP
  • BDM interface (e.g. P&E Micro "wiggler" or Multilink ; typically supplied with evaluation boards)

smxCF Development Kit Contents

  • Pre-built smxCF kernel library (ELF)
  • Source code platform (Protosystem) for an easy start (configured for an eval board)
  • smxBSP
  • SMX Quick Start, smx Target Guide, smx User's Guide, and smx Reference Manual
  • Site development license
  • Royalty-free license for one developed product

smxBSP and Startup Code

The Protosystem supplied with smxCF includes BSP routines, startup code, and drivers for on-chip peripherals, such as timers and UART's. smxFS, smxNS, smxUSB, etc. have drivers to support on‑chip and external controllers. For CodeWarrior, we supply project files based on the stationery supplied and augment it with our own code for common evaluation boards. For your project, you would start with the closest BSP and adapt it, as necessary for your board. See the smxBSP brochure for more information.

Easy Change to/from Other Processors

smxCF shares the same code base with smxARM and smxPPC. Therefore it is easy to migrate between smxCF and other processor versions of smx. If you have experience with smx on one processor then you are already down the learning curve for new projects.

Debugger Support

smxCF supports symbolic debugging for any debugger or emulator that can read the ELF/DWARF or COFF file format. In particular, CodeWarrior's integrated debugger and visionCLICK are recommended. smxAware supports these two debuggers.

smxAware is a DLL that adds smx kernel-awareness to the debugger. With it, the debugger is aware of all tasks and smx objects running in the system, and you can:

  • Display information about kernel specific objects such as tasks, lsr's, semaphores, exchanges, messages, events, heaps, stacks, etc. from an entry added to the main menu.
  • View errors, profiling, and other diagnostic information.
  • View a graphical window that shows event timelines, profiling, resource allocation, stack usage, and memory overview.
  • View a Thread window and Registers for each task. Shows where suspended tasks will resume. (CodeWarrior only)
  • Display a trace log created by simple string markers output by the code.
  • Set task-specific breakpoints. The breakpoint will be triggered only if it is hit while the specified task is running. (Not all debuggers support this.)

Please refer to the smxAware datasheet for further information.


Performance
max interrupt latency:


isr to lsr time:


task switch time:
58 clocks (==0.88 microsec on 66 MHz CPU; 0.29 microsec on 200 MHz CPU)

6.4 microsec (measured on 66 MHz 5282 running in SRAM; 2.1 microsec at 200 MHz)

11.4 microsec (measured on 66 MHz 5282 running in SRAM; 3.6 microsec at 200 MHz)

RAM Usage
  1. smx global variables: 575 bytes
  2. stack space: num stacks * stack size (typical stack size is 2000 bytes)
  3. heap space: space for control blocks + lsr queue + heap stacks (if any) + error buffer + handle table

Notes
  1. Space for control blocks depends on the number of smx objects used. Control blocks range from 12 to 76 bytes.
  2. The lsr queue size is the number of lsr's that can be enqueued * 8 bytes per entry. Typically 20 to 100 elements.
  3. The error buffer is optional. Its size is the number of entries * 12 bytes per entry.
  4. The event buffer is optional. Its size is the number of entries * 24 bytes per entry.
  5. The handle table is optional. Its size is the number of entries * 8 bytes per entry. The handle table is used only by smxAware.
   
  smxCF Function Sizes (v3.7)
       
  smx function

cw
dc
       
  bump_msg

540
542
  bump_task
1055
1066
  clear_q
2044
1930
  clear_mutex
456
434
  count
644
572
  count_stop
760
662
  create_cx
232
218
  create_dpool
988
928
  create_eq
160
148
  create_et
132
126
+
create_fbpool
172
180
  create_hmsgn
388
356
  create_hpooln
560
514
  create_mutex
344
336
+
create_rq
248
230
+
create_sema
408
380
+
create_taskn
500
434
+
create_xchga
676
600
  delete_cx
244
220
  delete_eq
196
176
  delete_et
420
388
  delete_hmsg
288
250
  delete_hpool
368
356
  delete_mutex
152
140
  delete_sem
292
278
  delete_task
588
520
  delete_xchg
336
328
  dq_msg
188
158
+
error manager
1388
1288
  find_next
324
228
  find_pool
196
172
  free_mutex
468
422
  get_block
268
230
+
get_fblocks
408
370
  get_msg
216
188
  get_mutex
884
798
+
go_smx
2368
2600
  handle table
864
833
  hook
160
142
+
invoke
168
152
+
keep_time
652
686
  locate
528
496
  lsrs_on
40
34
  miscl
1048
830
  ncallocx
68
64
  nfreex
236
202
  nheapchkx
40
36
+
nheapinix
352
314
  nheapsetx
292
302
  nheapwalkx
484
500
+
nmallocx
440
392
  nreallocx
480
440
  num_in_pipe
172
156
  pget_char
872
788
  pget_char_stop
1076
964
  pput_char
880
816
  pput_char_stop
1080
992
  put_msg
328
304
  qsize
864
874
  read_timer
232
236
+
receive
1076
952
  receive_stop
1004
914
  rel_all_blocks
148
120
  rel_all_msgs
192
178
  rel_block
104
92
+
rel_fblock
164
136
  rel_mutex
848
722
  reset_flags
108
106
+
resume
580
492
  resume_pget
420
368
  resume_pput
436
382
+
sendx
868
780
  set_flags
408
376
+
signalx
840
740
  sleepx
324
294
  sleep_stop
324
282
  sort_fblocks
244
254
+
startx
892
770
  start_timer
344
326
  stop
640
538
  stop_timer
240
232
  suspend
608
512
+
test
592
550
  test_flags
636
568
  test_flags_stop
628
556
  test_stop
824
766
  unhook
128
106
+
unlockx
148
128
+
scheduler
3268
3009
 
+
min kernel
17256
16013
max kernel
48291
44568
   
  Notes
  1. cw = CodeWarrior v5.1.1; dc = Diab Data C++ v5.2.1.
  2. smx v3.7.0 library built with full optimizations for speed (not size). SMX_EVB = 0; SMX_PROFILING = 0. Test Mode enabled (smx error testing).
   


     back to top
 
  Register for More Info
 
 

 
Free Evaluation Kits for common boards
 
 
Home       Sitemap       Contact