Mouse code for the MacroRat

Dependencies:   ITG3200 QEI

Committer:
sahilmgandhi
Date:
Sat Jun 03 00:22:44 2017 +0000
Revision:
46:b156ef445742
Parent:
18:6a4db94011d3
Final code for internal battlebot competition.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sahilmgandhi 18:6a4db94011d3 1 /*
sahilmgandhi 18:6a4db94011d3 2 * PackageLicenseDeclared: Apache-2.0
sahilmgandhi 18:6a4db94011d3 3 * Copyright (c) 2015 ARM Limited
sahilmgandhi 18:6a4db94011d3 4 *
sahilmgandhi 18:6a4db94011d3 5 * Licensed under the Apache License, Version 2.0 (the "License");
sahilmgandhi 18:6a4db94011d3 6 * you may not use this file except in compliance with the License.
sahilmgandhi 18:6a4db94011d3 7 * You may obtain a copy of the License at
sahilmgandhi 18:6a4db94011d3 8 *
sahilmgandhi 18:6a4db94011d3 9 * http://www.apache.org/licenses/LICENSE-2.0
sahilmgandhi 18:6a4db94011d3 10 *
sahilmgandhi 18:6a4db94011d3 11 * Unless required by applicable law or agreed to in writing, software
sahilmgandhi 18:6a4db94011d3 12 * distributed under the License is distributed on an "AS IS" BASIS,
sahilmgandhi 18:6a4db94011d3 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
sahilmgandhi 18:6a4db94011d3 14 * See the License for the specific language governing permissions and
sahilmgandhi 18:6a4db94011d3 15 * limitations under the License.
sahilmgandhi 18:6a4db94011d3 16 */
sahilmgandhi 18:6a4db94011d3 17
sahilmgandhi 18:6a4db94011d3 18 #ifdef __cplusplus
sahilmgandhi 18:6a4db94011d3 19 extern "C" {
sahilmgandhi 18:6a4db94011d3 20 #endif
sahilmgandhi 18:6a4db94011d3 21
sahilmgandhi 18:6a4db94011d3 22 #include <rt_misc.h>
sahilmgandhi 18:6a4db94011d3 23 #include <stdint.h>
sahilmgandhi 18:6a4db94011d3 24
sahilmgandhi 18:6a4db94011d3 25 /* Get RW_IRAM1 from scatter definition */
sahilmgandhi 18:6a4db94011d3 26 extern char Image$$RW_IRAM1$$ZI$$Limit[];
sahilmgandhi 18:6a4db94011d3 27
sahilmgandhi 18:6a4db94011d3 28 extern __value_in_regs struct __initial_stackheap __user_setup_stackheap(uint32_t R0, uint32_t R1, uint32_t R2, uint32_t R3) {
sahilmgandhi 18:6a4db94011d3 29 uint32_t beetle_zi_limit = (uint32_t)Image$$RW_IRAM1$$ZI$$Limit;
sahilmgandhi 18:6a4db94011d3 30 uint32_t beetle_sp_limit = __current_sp();
sahilmgandhi 18:6a4db94011d3 31
sahilmgandhi 18:6a4db94011d3 32 /* beetle_zi_limit has to be 8-byte aligned */
sahilmgandhi 18:6a4db94011d3 33 beetle_zi_limit = (beetle_zi_limit + 7) & ~0x7;
sahilmgandhi 18:6a4db94011d3 34
sahilmgandhi 18:6a4db94011d3 35 struct __initial_stackheap r;
sahilmgandhi 18:6a4db94011d3 36 r.heap_base = beetle_zi_limit;
sahilmgandhi 18:6a4db94011d3 37 r.heap_limit = beetle_sp_limit;
sahilmgandhi 18:6a4db94011d3 38 return r;
sahilmgandhi 18:6a4db94011d3 39 }
sahilmgandhi 18:6a4db94011d3 40
sahilmgandhi 18:6a4db94011d3 41 #ifdef __cplusplus
sahilmgandhi 18:6a4db94011d3 42 }
sahilmgandhi 18:6a4db94011d3 43 #endif