This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

casting pointers

Hello!

I've bumped into the issue with casting...

main.c:
static ble_gap_addr_t addr0;
static uint16_t *p_host0;

int main(void) {
    p_host0 = (void*)&addr0.addr[0];

works fine, but...

beacon.c:
static ble_gap_addr_t addr1;
static uint16_t *p_host1;

void init_beacon(void) {
   p_host1 = (void*)&addr1.addr[0];

hungs in assignment when I call init_beacon() from main()

Where is rake?

Parents
  • it will surely work, but slightly estrange me from the goal. initial purpose of using 16 bit pointer is simplification of code. What I need, is to distinguish a subset of addresses, which may consist of more than 255 ones (a resolution, provided by one octet). So I decided to use 48 bit address, expressed by uint8_t array, in manner of IP: a "network mask" part, as higher 32 bits (conveniently accessed by uint32_t pointer) and "host" part - remaining 16 bits for . So not to bother myself with traveling across 8-bit array, proposed solution had been chosen. And it is true, that the issue is solely alignment related, so, respecting the alignment restrictions of ARM arch., it will work.

Reply
  • it will surely work, but slightly estrange me from the goal. initial purpose of using 16 bit pointer is simplification of code. What I need, is to distinguish a subset of addresses, which may consist of more than 255 ones (a resolution, provided by one octet). So I decided to use 48 bit address, expressed by uint8_t array, in manner of IP: a "network mask" part, as higher 32 bits (conveniently accessed by uint32_t pointer) and "host" part - remaining 16 bits for . So not to bother myself with traveling across 8-bit array, proposed solution had been chosen. And it is true, that the issue is solely alignment related, so, respecting the alignment restrictions of ARM arch., it will work.

Children
No Data
Related