Changeset 154 for uKadecot/trunk/ssp/arch/rx630_ccrx/prc_sil.h
- Timestamp:
- Feb 2, 2016, 9:54:35 PM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uKadecot/trunk/ssp/arch/rx630_ccrx/prc_sil.h
r108 r154 43 43 #define TOPPERS_PRC_SIL_H 44 44 45 #define TOPPERS_OMIT_SIL_ACCESS 45 46 46 47 #ifndef TOPPERS_MACRO_ONLY … … 106 107 * プロセッサのエンディアン 107 108 */ 109 #ifdef __LIT 108 110 #define SIL_ENDIAN_LITTLE /* リトルエンディアン */ 109 111 #endif 112 #ifdef __BIG 113 #define SIL_ENDIAN_BIG /* ビッグエンディアン */ 114 #endif 115 116 117 /* 118 * 8ビット単位の読出し/書込み 119 */ 120 #ifdef UINT8_MAX 121 122 #pragma inline(sil_reb_mem) 123 static uint8_t 124 sil_reb_mem(const volatile uint8_t __evenaccess *mem) 125 { 126 uint8_t data; 127 128 data = *mem; 129 return(data); 130 } 131 132 #pragma inline(sil_wrb_mem) 133 static void 134 sil_wrb_mem(volatile uint8_t __evenaccess *mem, uint8_t data) 135 { 136 *mem = data; 137 } 138 139 #endif /* UINT8_MAX */ 140 141 /* 142 * 16ビット単位の読出し/書込み 143 */ 144 145 #pragma inline(sil_reh_mem) 146 static uint16_t 147 sil_reh_mem(const volatile uint16_t __evenaccess *mem) 148 { 149 uint16_t data; 150 151 data = *mem; 152 return(data); 153 } 154 155 #pragma inline(sil_wrh_mem) 156 static void 157 sil_wrh_mem(volatile uint16_t __evenaccess *mem, uint16_t data) 158 { 159 *mem = data; 160 } 161 162 #ifdef SIL_ENDIAN_BIG /* ビッグエンディアンプロセッサ */ 163 164 #define sil_reh_bem(mem) sil_reh_mem(mem) 165 #define sil_wrh_bem(mem, data) sil_wrh_mem(mem, data) 166 167 #ifndef TOPPERS_OMIT_SIL_REH_LEM 168 169 #pragma inline(sil_reh_lem) 170 static uint16_t 171 sil_reh_lem(const volatile uint16_t __evenaccess *mem) 172 { 173 uint16_t data; 174 175 data = *mem; 176 return(TOPPERS_SIL_REV_ENDIAN_UINT16(data)); 177 } 178 179 #endif /* TOPPERS_OMIT_SIL_REH_LEM */ 180 #ifndef TOPPERS_OMIT_SIL_WRH_LEM 181 182 #pragma inline(sil_wrh_lem) 183 static void 184 sil_wrh_lem(volatile uint16_t __evenaccess *mem, uint16_t data) 185 { 186 *mem = TOPPERS_SIL_REV_ENDIAN_UINT16(data); 187 } 188 189 #endif /* TOPPERS_OMIT_SIL_WRH_LEM */ 190 #else /* SIL_ENDIAN_BIG */ 191 #ifdef SIL_ENDIAN_LITTLE /* リトルエンディアンプロセッサ */ 192 193 #define sil_reh_lem(mem) sil_reh_mem(mem) 194 #define sil_wrh_lem(mem, data) sil_wrh_mem(mem, data) 195 196 #ifndef TOPPERS_OMIT_SIL_REH_BEM 197 198 #pragma inline(sil_reh_bem) 199 static uint16_t 200 sil_reh_bem(const volatile uint16_t __evenaccess *mem) 201 { 202 uint16_t data; 203 204 data = *mem; 205 return(TOPPERS_SIL_REV_ENDIAN_UINT16(data)); 206 } 207 208 #endif /* TOPPERS_OMIT_SIL_REH_BEM */ 209 #ifndef TOPPERS_OMIT_SIL_WRH_BEM 210 211 #pragma inline(sil_wrh_bem) 212 static void 213 sil_wrh_bem(volatile uint16_t __evenaccess *mem, uint16_t data) 214 { 215 *mem = TOPPERS_SIL_REV_ENDIAN_UINT16(data); 216 } 217 218 #endif /* TOPPERS_OMIT_SIL_WRH_BEM */ 219 #else /* SIL_ENDIAN_LITTLE */ 220 221 #error Neither SIL_ENDIAN_BIG nor SIL_ENDIAN_LITTLE is defined. 222 223 #endif /* SIL_ENDIAN_LITTLE */ 224 #endif /* SIL_ENDIAN_BIG */ 225 226 /* 227 * 32ビット単位の読出し/書込み 228 */ 229 230 #pragma inline(sil_rew_mem) 231 static uint32_t 232 sil_rew_mem(const volatile uint32_t __evenaccess *mem) 233 { 234 uint32_t data; 235 236 data = *mem; 237 return(data); 238 } 239 240 #pragma inline(sil_wrw_mem) 241 static void 242 sil_wrw_mem(volatile uint32_t __evenaccess *mem, uint32_t data) 243 { 244 *mem = data; 245 } 246 247 #ifdef SIL_ENDIAN_BIG /* ビッグエンディアンプロセッサ */ 248 249 #define sil_rew_bem(mem) sil_rew_mem(mem) 250 #define sil_wrw_bem(mem, data) sil_wrw_mem(mem, data) 251 252 #ifndef TOPPERS_OMIT_SIL_REW_LEM 253 254 #pragma inline(sil_rew_lem) 255 static uint32_t 256 sil_rew_lem(const volatile uint32_t __evenaccess *mem) 257 { 258 uint32_t data; 259 260 data = *mem; 261 return(TOPPERS_SIL_REV_ENDIAN_UINT32(data)); 262 } 263 264 #endif /* TOPPERS_OMIT_SIL_REW_LEM */ 265 #ifndef TOPPERS_OMIT_SIL_WRW_LEM 266 267 #pragma inline(sil_wrw_lem) 268 static void 269 sil_wrw_lem(volatile uint32_t __evenaccess *mem, uint32_t data) 270 { 271 *mem = TOPPERS_SIL_REV_ENDIAN_UINT32(data); 272 } 273 274 #endif /* TOPPERS_OMIT_SIL_WRW_LEM */ 275 #else /* SIL_ENDIAN_BIG */ /* リトルエンディアンプロセッサ */ 276 277 #define sil_rew_lem(mem) sil_rew_mem(mem) 278 #define sil_wrw_lem(mem, data) sil_wrw_mem(mem, data) 279 280 #ifndef TOPPERS_OMIT_SIL_REW_BEM 281 282 #pragma inline(sil_rew_bem) 283 static uint32_t 284 sil_rew_bem(const volatile uint32_t __evenaccess *mem) 285 { 286 uint32_t data; 287 288 data = *mem; 289 return(TOPPERS_SIL_REV_ENDIAN_UINT32(data)); 290 } 291 292 #endif /* TOPPERS_OMIT_SIL_REW_BEM */ 293 #ifndef TOPPERS_OMIT_SIL_WRW_BEM 294 295 #pragma inline(sil_wrw_bem) 296 static void 297 sil_wrw_bem(volatile uint32_t __evenaccess *mem, uint32_t data) 298 { 299 *mem = TOPPERS_SIL_REV_ENDIAN_UINT32(data); 300 } 301 302 #endif /* TOPPERS_OMIT_SIL_WRW_BEM */ 303 #endif /* SIL_ENDIAN_BIG */ 110 304 111 305 #endif /* TOPPERS_PRC_SIL_H */
Note:
See TracChangeset
for help on using the changeset viewer.