ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
23 ноября
1020592 Топик полностью
Гyдвин, волшебник (24.07.2020 12:21, просмотров: 729) ответил fk0 на Косяк -- это твой говнокод. Даже комментарии на русском языке не осилил. А поведение результат работы оптимизатора, который считает, что тип int (U32 -- самодельные типы -- 100% говнокод) никак не может лежать по невыравненному адресу. Ты можешь в структуру положить другие packed структуры и тогда оно заработает нормально.
Комментарии - твои проблемы, да и не важны они в этой теме. До v5 оптимизатор ARMCC считал, что все пучком касаемо Cortex M3 - все может лежать там, куда положили. И делал то, что указали конкретно. "Самодельные типы" "придуманы" не мной, а самим Keil. Так шта без эмоций... 
*----------------------------------------------------------------------------
 *      RL-ARM - A P I
 *----------------------------------------------------------------------------
 *      Name:    RTL.H
 *      Purpose: Application Programming Interface
 *      Rev.:    V4.73
 *----------------------------------------------------------------------------
 *      This code is part of the RealView Run-Time Library.
 *      Copyright (c) 2004-2014 KEIL - An ARM Company. All rights reserved.
 *---------------------------------------------------------------------------*/

#ifndef __RTL_H__
#define __RTL_H__

/* RL-ARM version number. */
#define __RL_ARM_VER    473
 
#define __task          __declspec(noreturn)
#define __used          __attribute__((used))

#ifndef NULL
 #ifdef __cplusplus
  #define NULL          0
 #else
  #define NULL          ((void *) 0)
 #endif
#endif

#ifndef EOF
 #define EOF            (-1)
#endif

#ifndef __size_t
 #define __size_t       1
 typedef unsigned int   size_t;
#endif

typedef signed char     S8;
typedef unsigned char   U8;
typedef short           S16;
typedef unsigned short  U16;
typedef int             S32;
typedef unsigned int    U32;
typedef long long       S64;
typedef unsigned long long U64;
typedef unsigned char   BIT;
typedef u