About HEAP error

2021-02-28 Thread Richi Dubey
Hi,

I get this error on sp02:

*** FATAL ***
fatal source: 13 (RTEMS_FATAL_SOURCE_HEAP)
CPU: 0
fatal code: 2125180 (0x00206d7c)
RTEMS version: 6.0.0.44ae183090f3bc1a4ee281ff98525209b3fda7a7-modified
RTEMS tools: 10.2.1 20210125 (RTEMS 6, RSB
ade089253e70d75105a8311844f82f6d20cc30a8, Newlib cb41c37)
executing thread ID: 0x08a010001
executing thread name: UI1

On checking docs, it says the fatal code indicates address of heap context.
I could not find any further information about this. How do I use 2125180
(0x00206d7c) to get more information about my error? Please advise.
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

[PATCH] score: Simplify _Objects_Name_to_id_u32()

2021-02-28 Thread Sebastian Huber
Remove superfluous check for the objects maximum since the maximum is
also used as a loop limit.

Fix formatting.
---
 cpukit/score/src/objectnametoid.c | 41 ---
 1 file changed, 21 insertions(+), 20 deletions(-)

diff --git a/cpukit/score/src/objectnametoid.c 
b/cpukit/score/src/objectnametoid.c
index da5cbabbc4..c70410d955 100644
--- a/cpukit/score/src/objectnametoid.c
+++ b/cpukit/score/src/objectnametoid.c
@@ -22,6 +22,11 @@
 
 #include 
 
+static bool _Objects_Is_local_node_search( uint32_t node )
+{
+  return node == OBJECTS_SEARCH_LOCAL_NODE || _Objects_Is_local_node( node );
+}
+
 Objects_Name_or_id_lookup_errors _Objects_Name_to_id_u32(
   uint32_t   name,
   uint32_t   node,
@@ -29,36 +34,31 @@ Objects_Name_or_id_lookup_errors _Objects_Name_to_id_u32(
   const Objects_Information *information
 )
 {
-  bool   search_local_node;
-  const Objects_Control *the_object;
-  Objects_Maximummaximum;
-  Objects_Maximumindex;
 #if defined(RTEMS_MULTIPROCESSING)
-  Objects_Name   name_for_mp;
+  Objects_Name name_for_mp;
 #endif
 
-  /* ASSERT: information->is_string == false */
+  _Assert( !_Objects_Has_string_name( information ) );
 
-  if ( !id )
+  if ( id == NULL ) {
 return OBJECTS_INVALID_ADDRESS;
+  }
 
-  maximum = _Objects_Get_maximum_index( information );
-  search_local_node = false;
+  if (
+node == OBJECTS_SEARCH_ALL_NODES ||
+_Objects_Is_local_node_search( node )
+  ) {
+Objects_Maximum maximum;
+Objects_Maximum index;
 
-  if ( maximum > 0 &&
-  (node == OBJECTS_SEARCH_ALL_NODES ||
-   node == OBJECTS_SEARCH_LOCAL_NODE ||
-   _Objects_Is_local_node( node )
-  ))
-   search_local_node = true;
+maximum = _Objects_Get_maximum_index( information );
 
-  if ( search_local_node ) {
 for ( index = 0; index < maximum; ++index ) {
+  const Objects_Control *the_object;
+
   the_object = information->local_table[ index ];
-  if ( !the_object )
-continue;
 
-  if ( name == the_object->name.name_u32 ) {
+  if ( the_object != NULL && name == the_object->name.name_u32 ) {
 *id = the_object->id;
 _Assert( name != 0 );
 return OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL;
@@ -67,8 +67,9 @@ Objects_Name_or_id_lookup_errors _Objects_Name_to_id_u32(
   }
 
 #if defined(RTEMS_MULTIPROCESSING)
-  if ( _Objects_Is_local_node( node ) || node == OBJECTS_SEARCH_LOCAL_NODE )
+  if ( _Objects_Is_local_node_search( node ) ) {
 return OBJECTS_INVALID_NAME;
+  }
 
   name_for_mp.name_u32 = name;
   return _Objects_MP_Global_name_search( information, name_for_mp, node, id );
-- 
2.26.2

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel