Add *_Msk for each bit field and avoid duplicate fields in the output file
Этот коммит содержится в:
		
							родитель
							
								
									f9293645af
								
							
						
					
					
						коммит
						d2963b153e
					
				
					 1 изменённых файлов: 18 добавлений и 2 удалений
				
			
		|  | @ -358,6 +358,7 @@ var ({{range .peripherals}} | |||
| 				} | ||||
| 				fmt.Fprintf(w, "\n") | ||||
| 			} | ||||
| 			allBits := map[string]interface{}{} | ||||
| 			for _, bitfield := range register.Bitfields { | ||||
| 				if bits.OnesCount(bitfield.Mask) == 1 { | ||||
| 					fmt.Fprintf(w, "\t%s = 0x%x", bitfield.Name, bitfield.Mask) | ||||
|  | @ -365,19 +366,34 @@ var ({{range .peripherals}} | |||
| 						fmt.Fprintf(w, " // %s", bitfield.Caption) | ||||
| 					} | ||||
| 					fmt.Fprintf(w, "\n") | ||||
| 					fmt.Fprintf(w, "\t%s_Msk = 0x%x", bitfield.Name, bitfield.Mask) | ||||
| 					if len(bitfield.Caption) != 0 { | ||||
| 						fmt.Fprintf(w, " // %s", bitfield.Caption) | ||||
| 					} | ||||
| 					fmt.Fprintf(w, "\n") | ||||
| 					allBits[bitfield.Name] = nil | ||||
| 				} else { | ||||
| 					n := 0 | ||||
| 					for i := uint(0); i < 8; i++ { | ||||
| 						if (bitfield.Mask>>i)&1 == 0 { | ||||
| 							continue | ||||
| 						} | ||||
| 						fmt.Fprintf(w, "\t%s%d = 0x%x", bitfield.Name, n, 1<<i) | ||||
| 						name := fmt.Sprintf("%s%d", bitfield.Name, n) | ||||
| 						if _, ok := allBits[name]; !ok { | ||||
| 							fmt.Fprintf(w, "\t%s = 0x%x", name, 1<<i) | ||||
| 						if len(bitfield.Caption) != 0 { | ||||
| 							fmt.Fprintf(w, " // %s", bitfield.Caption) | ||||
| 						} | ||||
| 						n++ | ||||
| 						fmt.Fprintf(w, "\n") | ||||
| 							allBits[name] = nil | ||||
| 						} | ||||
| 						n++ | ||||
| 					} | ||||
| 					fmt.Fprintf(w, "\t%s_Msk = 0x%x", bitfield.Name, bitfield.Mask) | ||||
| 					if len(bitfield.Caption) != 0 { | ||||
| 						fmt.Fprintf(w, " // %s", bitfield.Caption) | ||||
| 					} | ||||
| 					fmt.Fprintf(w, "\n") | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
|  |  | |||
		Загрузка…
	
	Создание таблицы
		
		Сослаться в новой задаче
	
	 Dmitriy
						Dmitriy