Skip to content

Commit

Permalink
Few changes.
Browse files Browse the repository at this point in the history
  • Loading branch information
simone-machetti committed Mar 4, 2024
1 parent 76bc6ff commit 58732b5
Show file tree
Hide file tree
Showing 5 changed files with 46 additions and 19 deletions.
4 changes: 2 additions & 2 deletions sw/arm/apps/virtual_ddr/virtual_ddr.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,11 @@
if ddr_read[a] != expected:
test_passed = False
break

if test_passed:
print("Test Passed!")
else:
print("Test Failed!")

# Release the allocated DDR memory
x_heep.release_mem(ddr)
x_heep.release_mem(ddr)
17 changes: 10 additions & 7 deletions sw/arm/sdk/x_heep_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -205,28 +205,31 @@ def read_adc_mem(self, adc_mem):
def init_ddr_mem(self, mem_size):

# Allocate DDR memory
# Default DDR dtype is 32 bit unsigned, which is of size 4B.
# Default DDR dtype is 32 bit unsigned, which is of size 4B.
ddr = allocate(shape=(int(1048576*mem_size/4),))
#Write DDR memory base address to AXI address adder

# Write DDR memory base address to AXI address adder
axi_address_adder = MMIO(OBI_AXI_ADDRESS_ADDER_OFFSET, 0x4)
axi_address_adder.write(0x0, ddr.physical_address)

# Reset DDR memory
ddr[:] = 0

return ddr



def read_ddr_mem(self, ddr):

# Read DDR memory
return list(ddr)



def release_mem(self, mem_buffer):

# Free all the memory. Must be paired when a init_xxx_mem() function is present.
mem_buffer.freebuffer()



def init_obi_mem(self):

# Allocate OBI memory
Expand Down
10 changes: 9 additions & 1 deletion sw/riscv/apps/virtual_ddr/virtual_ddr.c
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
/*
* Copyright 2023 EPFL
* Solderpad Hardware License, Version 2.1, see LICENSE.md for details.
* SPDX-License-Identifier: Apache-2.0 WITH SHL-2.1
*
* Author: Deniz Kasap - deniz.kasap@epfl.ch
*/

#include <stdio.h>
#include <stdlib.h>

Expand All @@ -10,4 +18,4 @@ int main(int argc, char *argv[])
printf("0x%X", (unsigned int)test_array[i]);
}
return EXIT_SUCCESS;
}
}
18 changes: 13 additions & 5 deletions sw/riscv/apps/virtual_gpio_read/virtual_gpio_read.c
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
/*
* Copyright 2023 EPFL
* Solderpad Hardware License, Version 2.1, see LICENSE.md for details.
* SPDX-License-Identifier: Apache-2.0 WITH SHL-2.1
*
* Author: Deniz Kasap - deniz.kasap@epfl.ch
*/

#include <stdio.h>
#include <stdlib.h>
#include "csr.h"
Expand All @@ -11,11 +19,11 @@ int main(int argc, char *argv[])
gpio_params_t gpio_params;
gpio_t gpio;
gpio_result_t gpio_res;

//Start writing to GPIO of Always-On Peripheral [7:0]
gpio_params.base_addr = mmio_region_from_addr((uintptr_t)GPIO_AO_START_ADDRESS);
bool read_from_pin;

for (int i=2; i < 8; i++){ //Skip first 2 GPIO's since they are alread used
gpio_res = gpio_init(gpio_params, &gpio);
gpio_res = gpio_input_enabled(&gpio, i, true);
Expand All @@ -26,10 +34,10 @@ int main(int argc, char *argv[])
return EXIT_FAILURE;
}
}

//Start writing to GPIO of Peripheral [31:8]
gpio_params.base_addr = mmio_region_from_addr((uintptr_t)GPIO_START_ADDRESS);

for (int i=8; i < 32; i++){
gpio_res = gpio_init(gpio_params, &gpio);
gpio_res = gpio_input_enabled(&gpio, i, true);
Expand All @@ -40,7 +48,7 @@ int main(int argc, char *argv[])
return EXIT_FAILURE;
}
}

printf("Read operation successful.");

return EXIT_SUCCESS;
Expand Down
16 changes: 12 additions & 4 deletions sw/riscv/apps/virtual_gpio_write/virtual_gpio_write.c
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
/*
* Copyright 2023 EPFL
* Solderpad Hardware License, Version 2.1, see LICENSE.md for details.
* SPDX-License-Identifier: Apache-2.0 WITH SHL-2.1
*
* Author: Deniz Kasap - deniz.kasap@epfl.ch
*/

#include <stdio.h>
#include <stdlib.h>
#include "csr.h"
Expand All @@ -11,10 +19,10 @@ int main(int argc, char *argv[])
gpio_params_t gpio_params;
gpio_t gpio;
gpio_result_t gpio_res;

//Start writing to GPIO of Always-On Peripheral [7:0]
gpio_params.base_addr = mmio_region_from_addr((uintptr_t)GPIO_AO_START_ADDRESS);

for (int i=2; i < 8; i++){ //Skip first 2 GPIO's since they are alread used
gpio_res = gpio_init(gpio_params, &gpio);
gpio_res = gpio_output_set_enabled(&gpio, i, true);
Expand All @@ -26,10 +34,10 @@ int main(int argc, char *argv[])
printf("Written false to pin %i \n", i);
}
}

//Start writing to GPIO of Peripheral [31:8]
gpio_params.base_addr = mmio_region_from_addr((uintptr_t)GPIO_START_ADDRESS);

for (int i=8; i < 32; i++){
gpio_res = gpio_init(gpio_params, &gpio);
gpio_res = gpio_output_set_enabled(&gpio, i, true);
Expand Down

0 comments on commit 58732b5

Please sign in to comment.